There is a lot of ways you can do this, some are using my favorite “Development tricks”.
I’m making a game with a ton of first-person cutscenes, so I understand how to make them. There are 2 ways you can handle this.
1: Cinematic Cutscenes
Cinematic cutscenes can be done pretty easily. Usually, before the cutscene is started, you should have a screen fade into black, then fade back out of black to start the cutscene.
The first step is to copy the player model by ticking the archivable property to on.
PlayerModel.Archivable = true
Once copied, you want to write code to play the animation onto the model.
PlayerModel.Archivable = true
local cloneplayer = PlayerModel:Clone()
local animation = --put the animation object directory right here
local loadanimation = cloneplayer.Humanoid:LoadAnimation(animation)
loadanimation:Play()
Now the animation is playing, but the camera isn’t updating to it. This can be easily fixed by using RunService.
PlayerModel.Archivable = true
local cloneplayer = PlayerModel:Clone()
local animation = --put the animation object directory right here
local loadanimation = cloneplayer.Humanoid:LoadAnimation(animation)
loadanimation:Play()
local function updateCamera()
Camera.CFrame = cloneplayer.Head.CFrame + Vector3.new(0,.2,.2)
loadanimation.Stopped:Connect(function()
Connection:Disconnect()
end)
end
Connection = RunService.RenderStepped:Connect(updateCamera)
2: Loading Animations onto the Player Model
This is for things like interacting with the objects around the player. For instance, a sink. I’m not going to go into full like the last time, but do what @zhenjie2003 said. First, modify the local transparency modifier, tutorials on youtube can explain how to do this.
Load the animation onto the player humanoid, and use the update camera function I showed. Pretty simple
.
If I helped, it’d be greatly appreciated to leave me with solution. Thanks!