I am trying to make a top-down camera. My camera works, but it is not truly top down. There is a slight angle the camera is at which allows the player to see object depth, thus removing the 2D feel I am going for. This is my current script:
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Player = Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:wait()
local Camera = workspace.CurrentCamera
Camera.CameraType = Enum.CameraType.Scriptable
RunService.Stepped:Connect(function()
local Head = Character:FindFirstChild("Head")
local Distance = script.Zoom.Value
Camera.CoordinateFrame = CFrame.new(Head.Position + Distance, Head.Position)
end)
How do I make it so that the camera is actually looking straight down?
Do you want to remove perspective from the camera? Because you can do that by
Setting Camera.FieldOfView = 1
Backing the Distance up a lot (like 20x further back)
Also, use BindToRenderStepped instead of Stepped for this:
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Player = Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:wait()
local Camera = workspace.CurrentCamera
Camera.CameraType = Enum.CameraType.Scriptable
Camera.FieldOfView = 1
game:GetService("RunService"):BindToRenderStep("Camera2D", Enum.RenderPriority.Camera.Value + 1, function()
local Head = Character:FindFirstChild("Head")
local Distance = script.Zoom.Value
Camera.CFrame = CFrame.new(Head.Position + 20*Distance, Head.Position)
end)