Fighting Game · Guides & deep dives

Sequencer Actor Bindings

sequencer data model.

5sections2 minread

On this page

This document records the TODOS.phase-72.72.15.1.9 cinematic sequencer actor binding contract. Actor bindings let tracks keep stable binding ids while a sequence is reused against different scene entities, cameras, components, or spawnables.

Runtime Ownership#

  • Runtime module: V2Cinematics
  • Override spec: FV2SequencerBindingOverrideSpec
  • Resolved binding spec: FV2SequencerResolvedBinding
  • Track evaluation: FV2SequencerActorBindingEvaluation
  • Issue enum: EV2SequencerActorBindingIssueType
  • Issue struct: FV2SequencerActorBindingIssue
  • Automation: V2.Cinematics.Sequencer.ActorBindings
  • CI checker: V2/ue/Tools/check-v2-sequencer-actor-bindings.py

Binding Model#

FV2SequencerBindingSpec remains the authoring-time binding table used by the sequencer data model. FV2SequencerBindingOverrideSpec adds a reusable override layer with an override id, source binding id, target binding kind, target entity id, target component id, target spawnable class path, and optional target binding path.

EvaluateSequencerActorBindings resolves the sequence binding table plus any overrides into FV2SequencerResolvedBinding entries. The resolved rows preserve stable binding ids such as Binding.Actor.Cassia, but can redirect the scene target to Entity.Fighter.PlayerTwo or Camera.Cinematic.ReplayHero for a reused sequence instance.

Default Fixture#

BuildDefaultSequencerBindingOverrides creates two default overrides for Seq.DataModel.CouncilIntro:

  • Override.Binding.CassiaToPlayerTwo redirects Binding.Actor.Cassia to Entity.Fighter.PlayerTwo at World.Arena.FighterB.
  • Override.Binding.HeroCameraToReplay redirects Binding.Camera.Hero to Camera.Cinematic.ReplayHero at World.Cameras.ReplayHero.

The evaluation resolves three bindings, marks Track.Cassia.Transform and Track.HeroCamera.FOV rebound, and leaves Binding.Global.Cinematic unmodified.

Validation#

Actor binding evaluation reports blocking issues for missing override ids, missing source bindings, duplicate override ids, invalid override targets, non-rebindable source bindings, non-rebindable tracks, and tracks whose binding id no longer resolves. Binding-level and track-level bRebindable flags are checked independently so reusable sequences can lock specific scene targets or tracks while keeping other bindings replaceable.

Verification#

Run:

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

Adjacent verification should include 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.