Fighting Game · Guides & deep dives

Sequencer Serialization

version, storage path, deterministic payload, payload checksum, compression flag, deterministic flag, and the embedded FV2SequencerSequenceSpec.

5sections2 minread

On this page

This document records the TODOS.phase-72.72.15.1.12 cinematic sequencer save/load serialization contract. Sequence serialization captures deterministic payload metadata, embedded sequence data, schema versioning, storage path, and a checksum so snapshots can be validated before loading.

Runtime Ownership#

  • Runtime module: V2Cinematics
  • Snapshot spec: FV2SequencerSequenceSnapshotSpec
  • Serialization result: FV2SequencerSerializationResult
  • Issue enum: EV2SequencerSerializationIssueType
  • Issue struct: FV2SequencerSerializationIssue
  • Automation: V2.Cinematics.Sequencer.Serialization
  • CI checker: V2/ue/Tools/check-v2-sequencer-serialization.py

Snapshot Model#

FV2SequencerSequenceSnapshotSpec stores a snapshot id, sequence id, schema version, storage path, deterministic payload, payload checksum, compression flag, deterministic flag, and the embedded FV2SequencerSequenceSpec. The embedded sequence data gives load a full in-memory restore target while the payload/checksum fields provide deterministic save/load validation.

BuildDefaultSequencerSerializedPayload emits a compact deterministic payload for identity, timing, binding count, track count, sub-sequence count, and keyframe count. FV2SequencerSequenceSnapshotSpec::ComputeChecksum calculates a stable checksum for that payload.

Save/Load Flow#

SaveSequencerSequenceSnapshot creates a Snapshot.<SequenceId>.Schema1 snapshot, writes schema version 1, records the requested storage path, embeds the source sequence data, and validates the result.

LoadSequencerSequenceSnapshot validates snapshot id, sequence id, storage path, schema version, serialized payload, payload checksum, and embedded sequence id before copying the embedded sequence into the output sequence.

The default fixture round-trips Seq.DataModel.CouncilIntro at /Game/Cinematics/Sequences/CouncilIntro.v2seq with three bindings, three tracks, and four keyframes. The composition fixture preserves two nested sub-sequences.

Validation#

Serialization reports blocking issues for missing snapshot ids, missing sequence ids, missing storage paths, missing serialized payloads, unsupported schema versions, invalid checksums, and payload sequence mismatches.

Verification#

Run:

bash
python3 V2/ue/Tools/check-v2-sequencer-serialization.py

Adjacent verification should include python3 V2/ue/Tools/check-v2-sequencer-gameplay-blend.py, python3 V2/ue/Tools/check-v2-sequencer-sub-sequence-composition.py, python3 V2/ue/Tools/check-v2-sequencer-actor-bindings.py, python3 V2/ue/Tools/check-v2-sequencer-camera-tracks.py, python3 V2/ue/Tools/check-v2-sequencer-event-tracks.py, python3 V2/ue/Tools/check-v2-sequencer-audio-tracks.py, python3 V2/ue/Tools/check-v2-sequencer-animation-clip-tracks.py, python3 V2/ue/Tools/check-v2-sequencer-property-tracks.py, python3 V2/ue/Tools/check-v2-sequencer-keyframe-interpolation.py, python3 V2/ue/Tools/check-v2-sequencer-timeline-playback.py, python3 V2/ue/Tools/check-v2-sequencer-data-model.py, and python3 V2/ue/Tools/check-v2-cinematics-module.py.