Camera

Camera-eigenschappen

EigenschappenDetails
CameraTypeBepaalt het gedrag van de camera (bijv. Vast, Scriptable).
CFrameVertegenwoordigt de positie en oriëntatie van de camera.
FieldOfViewBeheert het zoomniveau van de camera.
FocusHet punt in de ruimte waarop de camera is gefocust.

CameraTypes

CameraTypesDetails
Enum.CameraType.FixedDe camera blijft op een vaste positie en oriëntatie.
Enum.CameraType.ScriptableDe positie en oriëntatie van de camera kunnen via scripts worden bestuurd.
Enum.CameraType.AttachDe camera is bevestigd aan een object en volgt zijn bewegingen.
Enum.CameraType.FollowDe camera volgt het personage van de speler en draait om het in beeld te houden.
Enum.CameraType.TrackDe camera volgt het personage van de speler vanuit een vaste positie.
Enum.CameraType.CustomHet standaard cameragedrag met aanpasbare opties.

Een vaste camera instellen

Image 1
Roblox Studio
wait(2)
print("Camera position updating")
local camera = workspace.CurrentCamera
camera.CameraType = Enum.CameraType.Fixed
--Positioned 50 studs above the origin, looking at the origin
camera.CFrame = CFrame.new(Vector3.new(0, 50, 0), Vector3.new(0, 0, 0))
print("Camera position updated")

Aangepast camerascript dat de speler volgt.

Image 1
Roblox Studio
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()

local camera = workspace.CurrentCamera
camera.CameraType = Enum.CameraType.Scriptable

game:GetService("RunService").RenderStepped:Connect(function()
	local targetPart = character:WaitForChild("HumanoidRootPart")
	local targetPosition = targetPart.Position + Vector3.new(0, 10, 10)  -- Offset above and behind the player
	camera.CFrame = CFrame.new(targetPosition, targetPart.Position) -- Camera looks at the player
end)

Camera wisselen

Image 1
Roblox Studio
local function switchToCamera(cameraName)
	local camera = workspace:FindFirstChild(cameraName)
	if camera then
		workspace.CurrentCamera.CameraType = Enum.CameraType.Scriptable
		workspace.CurrentCamera.CFrame = camera.CFrame
		print("Switched to camera: " .. cameraName)
	else
		warn("Camera not found: " .. cameraName)
	end
end

local topDownCamera = Instance.new("Camera")
topDownCamera.Name = "TopDownCamera"
topDownCamera.CFrame = CFrame.new(Vector3.new(0, 50, 0), Vector3.new(0, 0, 0))
topDownCamera.Parent = workspace
switchToCamera("Camera")

local UserInputService = game:GetService("UserInputService")

UserInputService.InputBegan:Connect(function(input)
	if input.KeyCode == Enum.KeyCode.L then
		switchToCamera("TopDownCamera")
	elseif input.KeyCode == Enum.KeyCode.P then
		workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
		workspace.CurrentCamera.CFrame = workspace.Camera.CFrame
		print("Switched back to default Camera")
	end
end)

Camera wisselen met TweenService

Image 1
Roblox Studio
local TweenService = game:GetService("TweenService")
local UserInputService = game:GetService("UserInputService")

-- Function to switch to a specific camera by name with tweening
local function switchToCamera(cameraName)
    local camera = workspace:FindFirstChild(cameraName)
    if camera then
        workspace.CurrentCamera.CameraType = Enum.CameraType.Scriptable
        
        -- Create the tween for camera transition
        local tweenInfo = TweenInfo.new(
            2, -- Time (seconds)
            Enum.EasingStyle.Quad,
            Enum.EasingDirection.Out
        )

        local goal = {}
        goal.CFrame = camera.CFrame

        local tween = TweenService:Create(workspace.CurrentCamera, tweenInfo, goal)
        tween:Play()

        print("Switched to camera: " .. cameraName)
    else
        warn("Camera not found: " .. cameraName)
    end
end

-- Create a new camera at start that looks at the origin from above (y=50)
local topDownCamera = Instance.new("Camera")
topDownCamera.Name = "TopDownCamera"
topDownCamera.CFrame = CFrame.new(Vector3.new(0, 50, 0), Vector3.new(0, 0, 0))
topDownCamera.Parent = workspace

-- Set "Camera" as the default camera
workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
workspace.CurrentCamera.CFrame = workspace.Camera.CFrame

-- Key press detection
UserInputService.InputBegan:Connect(function(input)
    if input.KeyCode == Enum.KeyCode.L then
        switchToCamera("TopDownCamera")
    elseif input.KeyCode == Enum.KeyCode.P then
        -- Revert to the default camera instantly
        local defaultCamera = workspace:FindFirstChild("Camera")
        if defaultCamera then
            workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
            workspace.CurrentCamera.CFrame = defaultCamera.CFrame
            print("Switched back to default Camera")
        end
    end
end)

Als u deze tutorial nuttig vond en mijn werk wilt ondersteunen, overweeg dan om mij een kop koffie te kopen.

Hartelijk dank voor uw steun!

Koop een kop koffie voor mij