..

Sequence Editor

About

When prototyping our isometric game in Unity, we initially used some asset store tools to develop quickly. However when doing this, we had to follow the workflow of these assets. One such asset that we used was the Dialogue System for Unity.

Sequence Editor 2

It’s a great asset and used by incredible games such as Disco Elysium and other hit games. I’m not saying this asset is bad, but you need to adopt your workflow and work with any limitations the asset might have. One such workflow is the cutscene system which they call as their Sequences and the Sequencer Commands. You need to use Lua in the inspector without any type checking which is error prone and cumbersome to remember.

Sequence Editor 1

Additionally to view the cutscene, the game needs to played everytime which takes time to start. What I’m looking for is a cutscene system that works in the Editor as well as in Play mode and is easy to edit and modify.

Credit

When we were search for a nicer way to create our cutscenes or even the just NPC dialogues, we stumbled on the talk of CrossCode developer Felix Klein. He talked about presenting sequences of commands like the same way as the Event Editor in RPG Maker as they used RPG Maker extensively before. In this way, errors can be isolated to individual sequences and these sequences can be turned off/on and reordered on command.

Sequence Editor 3

So the idea of combining the Step/Event Editor to the Sequence and Sequencer Commands was born.

Sequence Editor

Sequence Editor 5

A sequence can be added through the sequence searcher. This then adds the sequence to the sequence data scriptable object which is displayed in the editor. Custom sequences can be made by inheriting from the abstract class of Sequence which will be automatically picked up in the sequence searcher.

Sequence Editor 4

Sequences can also implement their own custom editor which can manipulate the data of the particular sequence. This enables sequences to be easily modified by non-programmers. Similar to the Sequences in the Dialogue System, sequences can block the processing of sequences and wait for messages that other sequences can emit. Additionally, the sequence manager can speed up or slow down the speed/time, can store variables which can be used for programming and can be run in the editor without going into playmode.

Lastly, the sequence editor is great at modifying sequences as it is able to reorder, disable and edit the data in sequences. Additionally, within the editor you can safely create new sequences and sequence data SO through it. Dialogue is also parsed which can be great for looking at branching dialogue and eventually localization support can be added. Lastly, the sequence editor can help debug the sequences by slowing down the playing of sequences, showing what is active and currently running. Upon the end of the sequence, the scenes, objects and other assets are automatically disposed as needed.

Sequence Editor 61

Closing Thoughts

Creating cutscenes became much easier and the workflow became much more robust. Iteration also became quicker and it was easier to integrate other assets like the Bone Animation System and the Text Animator for Unity. For future improvements, this system can probably be modified for driving other systems such as the AI of the game and the custom inspectors could be generated automatically or with the help of another tool.

  1. Credits to Radical Fish Games for the placeholder sprite in the dialogue box 

Copyright © Sean. All Rights Reserved. View Source.