Hey! How is it going? I am currently wondering how it would be possible to create a camera system similar to Animal Crossing New Horizons / New Leaf. If you have some ideas, please let me know.
Thanks! WE
Hey! How is it going? I am currently wondering how it would be possible to create a camera system similar to Animal Crossing New Horizons / New Leaf. If you have some ideas, please let me know.
Thanks! WE
its really possible because i saw a person in the devforum did this kind of camera for his game
also edit: its called isometric camera system
This is a script I used for a 2D camera, maybe you could work off of this:
local player = game.Players.LocalPlayer
local camera = workspace.CurrentCamera
player.CharacterAdded:Wait()
player.Character:WaitForChild(âHumanoidRootPartâ)
camera.CameraSubject = player.Character.HumanoidRootPart
camera.CameraType = Enum.CameraType.Attach
camera.FieldOfView = 60
game:GetService(âRunServiceâ).Stepped:Connect(function()
camera.CFrame = CFrame.new(player.Character.HumanoidRootPart.Position) * CFrame.new(0,15,30)
end)
(put in serverscriptservice btw)
this doesnt help him at all the camera system hes making is soooo different from 2d game camera
also you are putting that script in server script service which is wrong you should put this in a local script inside starterplayer scripts
and no you cant just rotate the camera downwards to get the exact effect of isometric camera
you can rotate the camera downwards and itâll work pretty similarly to animal crossing
yeah that would be better, i just used this for a singleplayer thing, its just something to start off of
https://education.roblox.com/en-us/resources/arcade-game-top-down-camera
You could use this as a reference perhaps
This method is a good start, but this doesnât lock the camera like I want it to.
This method is similar to what @Tychee101 did. The script I use for my top-down game is this
--This is located in StarterPlayerScripts
repeat wait()
until game:IsLoaded() == true
local offset = Vector3.new(0, 30, -15) --EDIT: Change these numbers here to change the direction and orientation of the camera
local FOV = 70
local player = script.Parent.Parent
local camera = game.Workspace.CurrentCamera
local runService = game:GetService("RunService")
camera.FieldOfView = FOV
runService.RenderStepped:Connect(function(step)
local playerPosition = player.Character.HumanoidRootPart.Position
local cameraPosition = playerPosition + offset
camera.CoordinateFrame = CFrame.new(cameraPosition, playerPosition)
end)
runService:BindToRenderStep("Camera", Enum.RenderPriority.Camera.Value, runService.RenderStepped)
I just want to clarify that this script is from a tutorial in 2017 (found here), as Iâm not super familiar with manupulating the camera and such.
Also, when you ask for an Animal Crossing style camera, besides it being top-down, do you also mean to replicate how the world is on a sort of cylinder? Because if so that would be great if you could clarify in your post.
EDIT: Sometimes this will throw an error. If so, just ignore it, as nothing actually happens.
Yes. Kind of.
Remove the bottom line, and there should no longer be an error.
Since youâre going for something like walking on a cylinder I would think that youâd need more than just a camera script, since AC:NH actually takes place on a cylinder that rotates.
One thing you could do is just not actually have the player move up or down, but have the island/map rotate instead; I have no idea what this would do for performance though.
You could also attempt to research and try and find out how the Animal Crossing devs did it as well.
Also thanks for fixing my script lol