Best way to create cutscene without buying from the asset store?

I am working on a project and i want a cutscene which is about 20-30 seconds long… And I will have many, the longest I guess will be for about 1-2 minutes… Is there a way to create cutscenes and not make an giant animation? Or is it best to make a giant animation? The cutscene will include the world and running and jumping so t me it seems easiest to not have to create an animation ad animate that you walk

I did something like that as well. I have a main class DialogSystem (weird name as it was initially only intended to do the messages). You can call Add() with implementations of an interface (DialogStep in my case) which has methods like: Update(), IsAsynchronous(), IsFinished(), CanBeSkipped(), StepOver() (to finalize some values in case the whole step is skipped before it was even started).

The DialogSystem has a queue of all added steps and gets a new one if all synchronous steps are finished. In its Update() method it calls Update() on all current steps (zero or one synchronous and zero or more asynchronous).

I have several implementations, like:

WalkTo: Moves the player across some waypoints to a destination.

Transition: Has a callback that is called with a float from 0 to 1 to animate just anything.

Callback: For a oneshot thing like turning something on/off

I use this for a lot of things inside of the game. In case of a real cutscene the first step is always to show the cutscene camera overlay (black bars) and disable player input. And the last one undos those steps to give the control back to the player.

If the cutscene gets complicated it can be quite troublesome to get the timing right, because you will have to check it out in play mode again and again as there is no time slider like in the Unity animation (unless you make one yourself), but what I did to improve this situation is to add a method to be able to skip to a specific step in my animation, so I won’t have to play it from the beginning while testing.