CONTENT CONTRACT · VERSION 1
CutsceneDefinition
A personal cutscene: duration, skip rule, cast and a declarative visual timeline.
Signature
{ camera_script: (ScriptId)?, cast: {CastMember}, duration_ticks: PositiveTicks, id: ContentId, name: TextKey, places: {ScenePlace}, skip: CutsceneSkip, staging: {SceneStep}, timeline: {VisualStep} }Fields
| Name | Type | Meaning |
|---|---|---|
camera_script | ScriptId | Presentation script evaluated per frame of a viewer's cutscene (`VisualFrame -> VisualResult`); the timeline stands in wherever it cannot run. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: script |
cast | {CastMember} | NPCs that must be present, by unique role. Items: 0…16; Unique entries |
duration_ticks | PositiveTicks | Host duration of the cutscene. Range: 1…2147483647; Unit: tick |
id | ContentId | Package-qualified identity; unique within its declaring namespace. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$ |
name | TextKey | Localization key for the displayed name. Length: 1…129; Pattern: ^[a-z][a-z0-9_]{0,31}:[a-z][a-z0-9_]{0,95}$; Reference: text |
places | {ScenePlace} | Places its staging uses. Items: 0…64; Unique entries |
skip | CutsceneSkip | Whether the player may skip it. |
staging | {SceneStep} | Staging of the cast and camera shots, played with the timeline. Items: 0…256 |
timeline | {VisualStep} | Camera, subtitle and fade steps; camera spans never overlap. The complete fallback of a camera script. Items: 0…256 |