CutsceneService - Smooth cutscenes using Bézier curves

Very interesting! Will definitely have to give this a try when I am in need of cut scenes within my game.

1 Like

I just released version 1.4.0!

A breaking change for you might be the removal of some special functions. Update your script like this:

"EndWithCurrentCamera" -> "CurrentCameraPoint"
"StartFromCurrentCamera" -> "CurrentCameraPoint", 1
"EndWithDefaultCamera" -> "DefaultCameraPoint"
1 Like

Is there any way to control the curve factor? It’s kind of annoying how much it curves.

What do you mean by that? Can you explain it in more detail?

I want it to curve from part to part a bit less.

That isn’t possible due to the nature of Bézier curves. You have to modify your control points.
If you want a curve that goes through every point, you can check out Catmull-Rom splines.

1 Like

Hey there, just used your module and it’s amazing, however there’s one thing that should be looked at.

If you have cutscenes very far away from the world’s center point, the lighting near the camera won’t be correct as compared to if you were closer to the camera (tested on a game with Future lighting specifically). I’ve already implemented a fix for myself (as hacky as it is): just set the camera’s Focus to the camera’s CFrame. If you’re able to integrate it inside of your module then it would help with lighting near the camera immensely.

Thanks for the module; it’s an absolute lifesaver!

2 Likes

This is cool

1 Like

Hey there,
Unfortunately I couldn’t reproduce your problem. As far as I understood, the area which the graphics engine prioritizes is still at the character during the cutscene.
However, the camera’s Focus is the whole time in front of the camera’s CFrame while testing (although the documentation says it shouldn’t be), even very far away from the world’s center point.
Could you tell me more precisely how you found the bug?

1 Like

I just released a new plugin which helps enormously with building cutscenes!

https://www.roblox.com/library/9288927730

In the following days I’ll create a YouTube tutorial on how to use the module and plugin, the topic will be updated as well.

1 Like

New version!

Additionally I published a tutorial video which showcases the module and plugin:

5 Likes

hello how can i wanna make camera stay at the same position at the end i tried to use pause for it but it wasnt landing very well is there any functions to detect which point it is i tried some but i couldnt

Hello! :slightly_smiling_face:
You can find this in the “Advanced tips & tricks” guide.

cutscene:Play()
cutscene.PreviousCameraType = Enum.CameraType.Scriptable

Maybe I should also change the name of the property so it isn’t that confusing.

Thank you so much for answer great module keep going man :+1:

1 Like

Is it easier to make a cutscene with this module?

There are several different types of cutscenes and ways to create them, it depends on what quality you want.

For example, you can create very high-quality cutscenes with the animation editor, but it requires more skill and time (I haven’t seen any popular game that uses them).

In my opinion, CutsceneService is the best choice since it is as easy to use as TweenService and creates much better cutscenes.

I probably should get more experience with TweenService first before I use this.

you can just create multiple parts in a folder which goes like 1-2-3 or you can create only one block and tween it from one place to other so tweens are not must for using the module

Apologies if this is an obvious issue on my end, but I’m trying to make a cutscene loop. I tried using the example in the post:

local cutscene = CutsceneService:Create(points, 8 * #points)
cutscene:Play()
cutscene.Next = cutscene

…but when the cutscene finishes, it errors out saying there’s already a cutscene playing:

  00:24:13.894  ReplicatedStorage.Packages.CutsceneService:363: Error while calling Play - A cutscene was already playing  -  Client - CutsceneService:363
  00:24:13.895  Stack Begin  -  Studio
  00:24:13.895  Script 'ReplicatedStorage.Packages.CutsceneService', Line 363 - function Play  -  Studio - CutsceneService:363
  00:24:13.895  Script 'ReplicatedStorage.Packages.CutsceneService', Line 345  -  Studio - CutsceneService:345
  00:24:13.895  Stack End  -  Studio

I’m going to lean towards this being a genuine issue rather than a thing on my end (the error implies that .Next doesn’t work with any cutscene?), but do correct me if I’m wrong.

Thanks for the good bug report, this was a small mistake which I just fixed. Please update the module to the newest version.