Skip to content

Extending the Story Sequence tool

The Story Sequence tool can be extended in a number of ways:

Actors

You may wish to add new types of Actors to match the needs of your Project. In order to do so you will need to create:

  • An Actor Class which implements IActor. This is the instantiated Actor.

  • A MonoBehaviour Component which lives on the actual Actor Prefab. This executes any animations or behaviour for the IActor.

  • A Serializable Data class that implements IActorData.

  • A Scriptable Object Data Asset that inherits Actor Data Asset and has a Serialized property of your IActorData class implementation.

This may seem like a lot, but the individual pieces are fairly small. You should be able to have something up and running in less than a day. The SpriteActor class is a good example of a small implementation that will help you get started.

Text Styles

Text Styles are the appearance and configuration for Dialog in a Frame. For your Project you may want to add additional Text Styles. To do so you will need to create:

  • Text Style Class that implements ITextStyle

  • Serializable Data Class that implements ITextStyleData

  • A Scriptable Object Data Asset that inherits TextStyleDataAssetBase and has a Serialized property of your ITextStyleData class implementation.

  • Custom Editor class that inherits TextStyleArgumentsEditorBase and is tagged with the CustomTextStyleArgumentsEditor Attribute

CaptionTextStyle and SpeechBubble are good examples to reference while making your new Text Style.

New Text Styles can be added in any namespace. But make sure the Assembly for any new Text Styles you create is defined in the Story Sequence Editor Config.

Text Style Decorators

Text Style Decorators are Components you can attach to Text Style Prefabs and assign to ITextStyle Components to modify the Activate and Deactivate behavior of your Text Styles. Typically, this will be some sort of “Appear Animation” effects, and Decorators are modular so how you achieve those effects can be made to fit what you need for your project. For your Project you may want to add additional Text Style Decorators. To do so you will need to create:

  • A Component class that inherits TextStyleDecoratorBase.

TextStyleAnimationDecorator and TextStyleTweenDecorator are good examples to reference while making your new TextStyleDecorator.

Camera Animation Modules

Camera Animation Modules modify the behaviour of a Camera Animation in a custom way. For your Project you may want to add additional Camera Animation Modules. To do so you will need to create:

  • Module class that implements ICameraAnimationModule

  • Serializable Data Class that implements ICameraAnimationModuleData

  • A Scriptable Object Data Asset that inherits CameraAnimationModuleDataAssetBase and has a Serialized property of your ICameraAnimationModuleData class implementation.

Handheld Drift is a good example to reference (it can be found in the Samples) while making your new Camera Animation Module.

Plugins

Plugins You can add new Plugins to the Timeline Editor Window by creating a new class that implements the IStorySequenceEditorPlugin interface.

You can put this new Plugin in an existing Tab by ensuring its TagName string returns an existing Tab (i.e. “Reports”, “Utilities”, etc.)

You can also add Tabs to the Plugin Tabs row by having your new class’ TagName return a new string (i.e. “My Project Plugins”).

!!!! Note If you are adding new Plugins to existing tabs (Reports, utilities, etc) note Copy to Clipboard and shared Hearer settings.