how to make a camera manipulation in roblox studios code example
Example 1: how to make a camera manipulation in roblox studio
local player = game.Players.LocalPlayer -- Checks the player it is in.
local character = player.Character or player.CharacterAdded:Wait() -- Finds the character but if its not found it waits for it.
local camera = workspace.CurrentCamera -- Finds the current camera from the workspace.
local RunService = game:GetService("RunService") -- When were going to step the simulation it will go very fast and will make gitters. So we add RunService. If you want it once you can remove this.
repeat
camera.CameraType = Enum.CameraType.Scriptable -- Sets the camera to Scriptable.
wait() -- Waits for a frame. (0.033 seconds.)
until camera.CameraType == Enum.CameraType.Scriptable -- Waits for the camera to be Scriptable.
--[[ You can have these 2 types if you want it to run forever or Run it once.
RunService.RenderStepped:Connect(function() -- Steps into each simulation.
camera.CFrame = game.Workspace.CameraPart -- Rename camerapart to your camera.
end)
-- Or you can have this
camera.CFrame = game.Workspace.CameraPart -- Rename camerapart to your camera.
]]--
Example 2: Roblox camera manipulation
local TweenService = game:GetService("TweenService")local RunService = game:GetService("RunService") local target = workspace:FindFirstChild("Part") -- The object to rotate aroundlocal camera = workspace.CurrentCameracamera.CameraType = Enum.CameraType.Scriptablelocal rotationAngle = Instance.new("NumberValue")local tweenComplete = false local cameraOffset = Vector3.new(0, 10, 12)local rotationTime = 15 -- Time in secondslocal rotationDegrees = 360local rotationRepeatCount = -1 -- Use -1 for infinite repeatslocal lookAtTarget = true -- Whether the camera tilts to point directly at the target local function updateCamera() if not target then return end camera.Focus = target.CFrame local rotatedCFrame = CFrame.Angles(0, math.rad(rotationAngle.Value), 0) rotatedCFrame = CFrame.new(target.Position) * rotatedCFrame camera.CFrame = rotatedCFrame:ToWorldSpace(CFrame.new(cameraOffset)) if lookAtTarget == true then camera.CFrame = CFrame.new(camera.CFrame.Position, target.Position) endend -- Set up and start rotation tweenlocal tweenInfo = TweenInfo.new(rotationTime, Enum.EasingStyle.Linear, Enum.EasingDirection.InOut, rotationRepeatCount)local tween = TweenService:Create(rotationAngle, tweenInfo, {Value=rotationDegrees})tween.Completed:Connect(function() tweenComplete = trueend)tween:Play() -- Update camera position while tween runsRunService.RenderStepped:Connect(function() if tweenComplete == false then updateCamera() endend)