Fighting Game · Guides & deep dives

Aja Bellona Frame-Snap Live Link Export

V2 accepts Aja-cleaned and Aja-retargeted motion only after Bellona turns it into a rollback-deterministic animation import artifact:

3sections1 minread

On this page

Scope#

V2 accepts Aja-cleaned and Aja-retargeted motion only after Bellona turns it into a rollback-deterministic animation import artifact:

  1. @aja/neural-retargeting emits the accepted V2 skeleton clip.
  2. @bellona/mocap resamples the clip to 60 Hz, snaps every exported frame to an integer frame number, and normalizes notify segments to the same grid.
  3. @bellona/unreal receives an editor-only Live Link handoff for import under /Game/V2/Animation/Mocap/FrameSnap.

Rollback Contract#

The V2 contract rejects any notify segment whose start or end lands between 60 Hz frames. hit-active, armor, cancel-window, root-motion, and foot-contact segments must use integer frame boundaries before the animation can enter cook.

V2 keeps Unreal Live Link runtime plugins disabled. The Live Link payload in this path is an editor/cook handoff generated by @bellona/unreal, and the runtime artifact is a cooked AnimSequence plus notify-segment alignment evidence.

Validation#

V2/ue/Tools/check-v2-aja-bellona-livelink.py enforces:

  • @bellona/mocap exports the frame-snap manifest builder.
  • @v2/aja-bellona-livelink-export depends on @bellona/mocap, @bellona/unreal, and @v2/aja-studio-mocap-pipeline.
  • V2Services registers @bellona/mocap.
  • docs/domains/aja/deep-dive/specifications.md and docs/domains/bellona/deep-dive/specifications.md contain the reciprocal Aja + Bellona contract.
  • V2 TODOs mark the frame-snap and reciprocal task complete.