I know this is kinda late, but I have always been interested in how Fifteam manipulated the camera for the Ready Player One event. Anybody know how to do this?
I know this is kinda late, but I have always been interested in how Fifteam manipulated the camera for the Ready Player One event. Anybody know how to do this?
2 Likes
I am not sure how this was realized either but probably by tweening the camera around and messing with the FOV settings.
1 Like
FOV maxes out at 120, so it cant be.
1 Like
Here’s the code for the camera effects for heartbeats and the zoom/spiral
-- (...)
-- setup camera and distort
local cam = workspace.CurrentCamera
cam.CameraType = Enum.CameraType.Scriptable
local start = cam.CoordinateFrame
local distort = Instance.new("NumberValue")
distort.Value = 1
-- camera spiral handler
game:GetService("RunService").RenderStepped:connect(function()
cam.CoordinateFrame = start*CFrame.new(0,0,0,distort.Value,0,0,0,distort.Value,0,0,0,1)
end)
-- heartbeats
for i = 1,4 do
wait(.3)
script.Heartbeat.Volume = i/4
script.Heartbeat:Play()
local tween = game:GetService("TweenService"):Create(distort, TweenInfo.new(0.275, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, 1, true), {Value = 1 + .06 * i})
tween:Play()
tween.Completed:Wait()
script.Heartbeat:Stop()
end
-- play zoom
script.Zoom:Play()
game:GetService("TweenService"):Create(script.Zoom, TweenInfo.new(10, Enum.EasingStyle.Quad), {Volume = 0.7}):Play()
-- play distort towards fov 120
game:GetService("TweenService"):Create(distort, TweenInfo.new(4, Enum.EasingStyle.Quart, Enum.EasingDirection.Out), {Value = 0.0000001}):Play()
-- play spiral
local startTime = tick()
game:GetService("RunService").RenderStepped:connect(function()
local speed = math.min(tick()-startTime, 20)
start = start*CFrame.Angles(0, 0, math.rad(speed))
end)
-- (...)
10 Likes