Kameraeigenschaften
Eigenschaften | Details |
---|---|
Kameratyp | Definiert das Verhalten der Kamera (z.B. Fest, Skriptbar). |
CFrame | Repräsentiert die Position und Orientierung der Kamera. |
Sichtfeld | Steuert das Zoomlevel der Kamera. |
Fokus | Der Punkt im Raum, auf den die Kamera fokussiert ist. |
Kameratypen
Kameratypen | Details |
---|---|
Enum.Kameratyp.Fest | Die Kamera bleibt an einer festen Position und Ausrichtung. |
Enum.Kameratyp.Skriptbar | Die Position und Ausrichtung der Kamera kann über Skripte gesteuert werden. |
Enum.Kameratyp.Befestigt | Die Kamera ist an einem Objekt befestigt und folgt dessen Bewegungen. |
Enum.Kameratyp.Folgen | Die Kamera folgt dem Charakter des Spielers und dreht sich, um ihn im Blick zu behalten. |
Enum.Kameratyp.Verfolgen | Die Kamera verfolgt den Charakter des Spielers von einer festen Position aus. |
Enum.Kameratyp.Benutzerdefiniert | Das Standard-Kameraverhalten mit anpassbaren Optionen. |
Einrichten einer festen Kamera
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")
Benutzerdefiniertes Kameraskript, das dem Spieler folgt.
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)
Kamera wechseln
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)
Kamerawechsel mit TweenService
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)
Wenn Sie dieses Tutorial hilfreich fanden und meine Arbeit unterstützen möchten, können Sie mir gerne einen Kaffee spendieren.
Vielen Dank für Ihre Unterstützung!
Kaufen Sie mir einen Kaffee