GS_Cinematics
Categories:
GS_Cinematics is the narrative and staging gem for GS_Play. It provides a node-based dialogue graph system backed by .dialoguedb assets, extensible polymorphic conditions, effects, and performances, world-space and screen-space dialogue UI with typewriter effects, audio babble, cinematic stage marker management, and a full localization pipeline. The gem depends on GS_Core, LyShine, and RecastNavigation.
For usage guides and setup examples, see The Basics: GS_Cinematics.
Contents
Cinematics Manager
The top-level cinematic lifecycle controller. The Cinematics Manager is a GS_Play manager that enters and exits cinematic mode for the current level. Stage Marker components are placed in the scene as named anchor points that performances and sequences can reference at runtime.
| Component | Purpose |
|---|---|
| GS_CinematicsManagerComponent | Begins and ends cinematic mode. Registers and retrieves stage markers. Broadcasts EnterCinematic / ExitCinematic notifications. |
| CinematicStageMarkerComponent | Named world-space anchor placed in the level. Retrieved by the manager and referenced by sequences and performances. |
Dialogue System
The core playback engine. The Dialogue Manager owns the active .dialoguedb asset and performer registry. The Dialogue Sequencer executes sequences node-by-node, issuing performances, conditions, and effects as it traverses the graph. The system is fully extensible — custom conditions, effects, and performances are discovered automatically through O3DE serialization at startup.
| Component / Asset | Purpose |
|---|---|
| GS_DialogueManagerComponent | GS_Play manager. Loads and swaps dialogue databases. Registers performer markers by name. |
| DialogueSequencerComponent | Executes a DialogueSequence node graph. Manages runtime tokens and signals sequence completion. |
| DialogueDatabase (.dialoguedb) | Persistent asset. Contains actor definitions, sequences, and all node data. |
| Node Types | TextNodeData, SelectionNodeData, RandomNodeData, EffectsNodeData, PerformanceNodeData. |
| Conditions | Polymorphic DialogueCondition hierarchy. Built-in: Boolean_DialogueCondition, Record_DialogueCondition. |
| Effects | Polymorphic DialogueEffect hierarchy. Built-in: SetRecords_DialogueEffect, ToggleEntitiesActive_DialogueEffect. |
| LocalizedStringId | Reference to a localizable string with a key and default fallback text. Resolved at runtime. |
| LocalizedStringTable | Runtime string lookup table loaded alongside the active database. |
Dialogue UI
Screen-space and world-space presentation layer. The UI Bridge routes active dialogue to whichever UI component is registered — swapping from screen-space to world-space at runtime requires no sequencer changes. The Typewriter and Babble components provide character-by-character text reveal and procedural audio babble respectively.
| Component | Purpose |
|---|---|
| DialogueUIComponent | Screen-space dialogue text display. Shows speaker name, portrait, and text lines. |
| WorldDialogueUIComponent | World-space dialogue display (speech bubbles). Extends DialogueUIComponent. |
| DialogueUISelectionComponent | Screen-space player choice display. Builds selection buttons from SelectionOption data. |
| WorldDialogueUISelectionComponent | World-space selection display. Extends DialogueUISelectionComponent. |
| DialogueUIBridgeComponent | Routes active dialogue to whichever UI is registered. Decouples sequencer from presentation. |
| TypewriterComponent | Character-by-character text reveal with configurable speed. Fires OnTypeFired and OnTypewriterComplete notifications. |
| BabbleComponent | Procedural audio babble synchronized to typewriter output. Driven by BabbleToneEvent / SpeakerBabbleEvents data. |
Performances
Polymorphic, async performance types executed from PerformanceNodeData within a sequence. Each performance drives a performer entity in the world and signals completion back to the sequencer. External gems register additional performance types automatically by extending the base class.
| Component | Purpose |
|---|---|
| MoveTo_PerformanceComponent | Moves a performer entity to a named stage marker over time. |
| PathTo_PerformanceComponent | Navigates a performer to a marker along a RecastNavigation navmesh path. |
Installation
GS_Cinematics requires GS_Core, LyShine, and RecastNavigation to be enabled in your project first.
- Enable GS_Cinematics, GS_Core, LyShine, and RecastNavigation in your O3DE project’s gem list.
- Add a GS_CinematicsManagerComponent to your Game Manager prefab and register it in the Startup Managers list.
- Create a
.dialoguedbasset using the Dialogue Editor and assign it to the Dialogue Manager component. - Place CinematicStageMarkerComponent entities in your level and register them by name.
- Add a DialogueSequencerComponent to the entity that will drive dialogue playback.
- Add a DialogueUIBridgeComponent and connect it to your chosen
DialogueUIComponentvariant.
See Also
For conceptual overviews and usage guides:
For sub-system references:
For related resources:
Get GS_Cinematics
GS_Cinematics — Explore this gem on the product page and add it to your project.