Smooth Cutscenes | Plugin

Can you add a demo of it? like either a uncopylocked game or .rbxl file?

1 Like

Definitely! I hadnā€™t thought of this so I apologize for the delay and lack of documentation for users.

1 Like

Update

  • Added a Pivot to Cutscenes
  • Fixed ā€œstartā€ Argument in Cutscene.Play
  • Fixed Open failing to open previously made Cutsceneā€™s
1 Like

Iā€™ll be releasing better documentation in the future but for now you can use the type definitions and notes to determine how you run a cutscene.

If you find any other issues, errors, or concerns please feel free to share them as I am just as much a user as everyone else!

Update

  • Fixed Destroy & Cut leaving unsorted segments

Do you have a game to check this out ?

1 Like

Update

  • Added Pause to Cutscenes
  • Added Reoriginate to Cutscenes
  • Added RespectHumanoidCameraOffset to Cutscenes
  • Fixed potential issues with replaying a Cutscene

Note

With this update it is much easier to develop a Cutscene for skills! You can use Cutscene.Pause to stop a Cutscene when an effect is finished but before the next effect has played, allowing for a smooth and reliable Cutscene experience.

You can also now use Cutscene.Reoriginate to offset Cutscene segments differently and modify them entirely. For example, I used this new function to force a Cutscene to end at the original Camera CFrame the Player had to smoothly transition off the Cutscene.

I hope all of you enjoy this QOL update!

Update

  • Added SegmentReached to Cutscenes
  • Improved Stopped event in Cutscenes
  • Fixed Signal implementations .Wait erroring

Notes

Forgot about the events I had improved / added, oops!

Update

  • Fixed Hermite Preview errors
  • Fixed Hermite Cutscene.Run errors
  • Fixed creating Bezier & Hermite segments in-between other segments
  • Removed Debug Prints
  • Moved Segment Object creation to internal :UpdateSegment

Notes

I recently ran into a problem in my own code while using Cutscene.Reoriginate and wanted to inform the readers here on how I solved it. If you wish to reoriginate the same cutscene more than once then you will experience slight offsetting from the original positions over time, more usage the more offsetting. This is to be expected but in order to fix this you simply need to clone the original segment and replace it with that segment after itā€™s done running:

-- Cutscene.Reoriginate | Offset Fix
local index = 3
						
local points = table.clone(cutscene.Segments[index].Points)
cutscene:Reoriginate(index, ...)
cutscene.Stopped:Once(function()
	local segment = cutscene.Segments[index]
	segment.Points = points
	segment.Bezier = nil
	segment.Rom = nil

	segment.Pivot = nil -- most important
end)

I may eventually simplify this via a new Cutscene API but this is unintended usage of Cutscene.Reoriginate, and how most use the plugin. I may also have a fix for this offsetting so if I implement such a fix I will update all of you here as well.

Update

  • Made all Bezier nodes affect Camera rotation

Notes

I would seriously consider upgrading (Update Plugin, Open Scene ā†’ Save Scene) all cutscenes developed from older versions to this latest change. This is currently the only plugin, module, library, that supports this mechanic.

Updates

  • Fixed Bezier splines occasionally rotating backwards throughout a Cutscene

Notes

This update requires a new package, Quaternion, which will be auto-injected into your game for you.

Warning

If you use sleitnickā€™s Quaternion module you must remove it and let the plugin auto-inject a new version into the game. You can also replace the source by inspecting the pluginā€™s source and replacing your modules source with the plugins source.

This plugin has a great start but also has a few issues that need to be addressed before Iā€™d fully recommend purchasing this plugin.

Positives

  • You can add keyframes and edit properties on individual keyframes just like any other keyframe system Iā€™ve worked with. Easy to use and get started.

  • The UI is clean and is intuitive to navigate.

  • Cutscenes are overall quite easy to make especially considering other plugins Iā€™ve tried. A major factor to this is the keyframe system that I have not seen anywhere else from a dedicated cutscene plugin.

  • There is a lot more features than any other plugin Iā€™ve tried for cutscenes. My favorite one being able to use a Bezier curve in cutscenes for more dynamic camera paths.

However, there are some issues that need to be resolved. And while Iā€™m about to mention some negatives in regards to this plugin, this is meant to be constructive and used to make this plugin even better by the developer.

Negatives

  • Iā€™m not sure if there is something Iā€™m missing but the framerate, timeline, and length seemed to have no effect to the result of the cutscene. For example, Iā€™d move keyframes further apart and it would not take their spacing into account when playing the cutscene

  • There is also an issue with the Quaternion module used. It is supposed to inject the module directly into the game automatically, but I never received a copy in my studio file I was using when using your plugin. Instead, I had to find it through the plugin files manually.

  • The lack of documentation can make it very difficult for anyone who doesnā€™t have some programming knowledge to get it working. I did get it to work by reading through the cutscene code it generated, but it did take longer than it shouldā€™ve and I had to change a few things in the main module script as well.

Final Thoughts
Overall itā€™s a great start, but feels like a late beta build and not a final release with some of the bugs I experienced and lack of proper documentation. Most of the issues on their own are minor, but since there are several, they add up reducing the UX and quality from a users perspective. Thatā€™s not to say I dislike this plugin. I actually will probably continue using it as even with a few bugs, itā€™s still easier to use than some other plugins Iā€™ve used.

I used it and it doesnā€™t inject the Quaternion module.

Hi,
Do you have an guidance on the scripting, or some snippets of getting it to work, and different features? I have posted 2 replyā€™s here to see if we could get a working .rbxl file and or even a demo game to check out. (and EDIT would be nice), plus documentation, but it seems to go into a black wholeā€¦ seems like this ā€˜simpleā€™ request might boost the usage of the pluginā€¦
Thanks

Hereā€™s how I got the plugin to work:

Step 1: Create the cutscene. Use the working part of the plugin to create and save the cutscene.

Step 2: Import the Quaternion module. Since the plugin fails to do this when you save a cutscene, you have to load the plugin contents from your plugins folder, and manually copy the Quaternion module into the proper location. After you have the module, you can delete the plugin contents if you wish.

Step 3: The module it generates when it saves a cutscene needs some minor edits. You have to add self = m under the run function.


Then at the bottom of the script, add: run(m.Segments)
Step2
This will allow you to make the cutscene run easily. To run the cutscene, you simply require the cutscene module.

-- Code
if TimeToPlayCutscene then
    require(ReplicatedStorage:WaitForChild("Cutscene"))
end

Then the cutscene should play.

For future readers, do not get this plugin unless the developer actually fixes it up or you are okay with dealing with this. So far, there has be silence from the developer despite the issues.

Hopefully this helps you and anyone else who isnā€™t sure on how to make the plugin work!

2 Likes

bought this plugin today and adjusting was painful as thereā€™s constant lag while moving point if thereā€™s more than 3 points, bezier is fine but i almost have no controls over itself and theyā€™re always too fast and not timed by dopesheet editor and instead by the settings, i also got into where at the middle playtime itā€™ll start to get slower and moves pretty fast at the end (basically InOut Easing)

one issue is that points are on MOVETO instead of line from the bezier path, This is getting me confused and i cannot tell which one is the first segments so im forced to move those points outside

With the recent implementation of the Spring module the dopesheet can no longer benefit the user other than the ordering, and potential timing, of the points. When you select a key in the dopesheet it will only display the points that pertain to that segment (ie. if you created a bezier with 3 points you will only see those 3 points it created for the bezier).

I have not been able to replicate lag with the plugin so if you could send over your test cutscene that would be appreciated!

I appreciate your aid in the comments, however I do want to make a note that besides the glaring bug with the Quaternion module you do not need to add the other steps for the generated cutscenes to work. This is simply to make requiring a cutscene automatically run the cutscene, which was not my goal with these cutscenes.

It slipped my mind but here is a working example of a few cutscenes that I scrapped:

cutscene.rbxl (119.7 KB)

I understand this was not the intended use case for the plugin. This was just the only way I was able to get it to work since there is no instructions on how to properly use the plugin.