I’m currently working on a script in Roblox that involves moving characters to a specific position, playing an animation, and zooming into the character. When it’s done playing the animation, it’s meant to stop zooming and moves onto the next character.
However, I’m facing some difficulties with the zooming and playing an animation.
Skipping and not loading animations on time, camera glitching back to player
Here’s the code behind this:
local function ZoomIn(targetObject, startDistance, endDistance, speed)
local camera = game.Workspace.CurrentCamera
local currentDistance = startDistance
local function zoomIn()
currentDistance = currentDistance - speed
if currentDistance <= endDistance then
return
end
local cameraPosition = targetObject.Position - targetObject.CFrame.LookVector * currentDistance
local lookAtPosition = targetObject.Position
camera.CFrame = CFrame.new(cameraPosition, lookAtPosition)
camera.CameraSubject = nil
end
local connection
connection = game:GetService("RunService").RenderStepped:Connect(function()
zoomIn()
if currentDistance <= endDistance then
connection:Disconnect()
end
end)
end
local function loadChar(model, animation, startDistance, endDistance, speed)
local humanoid = model.Humanoid
model:SetPrimaryPartCFrame(CFrame.new(0, 0, 0))
local dancing = humanoid:LoadAnimation(animation)
dancing:Play()
dancing:AdjustSpeed(0.7)
ZoomIn(model.Forward, startDistance, endDistance, speed)
while dancing.IsPlaying do
wait()
end
model:SetPrimaryPartCFrame(CFrame.new(-31.855, -0.8, -127.423))
end
while true do
loadChar(game.Workspace.builderman, script.Building, 7, 2, 0.1)
loadChar(game.Workspace.Coeptus, script.Shrug, 7, 2, 0.1)
loadChar(game.Workspace.Dued1, script.Run, 7, 2, 0.1)
end
Any solutions are immensely appreciated!