Fighting Game · Guides & deep dives

Sequencer Camera Tracks

time, interpolation id, and optional rail-lock metadata.

5sections2 minread

On this page

This document records the TODOS.phase-72.72.15.1.8 cinematic sequencer camera track contract. Camera tracks evaluate camera position, rotation, and FOV keyframes, dispatch camera cuts between camera bindings, and expose rail cameras for dolly-style movement.

Runtime Ownership#

  • Runtime module: V2Cinematics
  • Camera keyframe spec: FV2SequencerCameraKeyframeSpec
  • Camera cut spec: FV2SequencerCameraCutSpec
  • Rail camera spec: FV2SequencerRailCameraSpec
  • Track evaluation: FV2SequencerCameraTrackEvaluation
  • Issue enum: EV2SequencerCameraTrackIssueType
  • Issue struct: FV2SequencerCameraTrackIssue
  • Automation: V2.Cinematics.Sequencer.CameraTracks
  • CI checker: V2/ue/Tools/check-v2-sequencer-camera-tracks.py

Camera Model#

FV2SequencerCameraKeyframeSpec stores camera position, rotation, FOV, frame, time, interpolation id, and optional rail-lock metadata. FV2SequencerCameraCutSpec stores camera cut timing, target camera binding, hard-cut state, and blend frame metadata. FV2SequencerRailCameraSpec stores a rail id, spline path id, active frame range, distance range, and rail orientation flag.

FV2SequencerTrackSpec now carries CameraKeyframes, CameraCuts, and CameraRails for EV2SequencerTrackType::Camera tracks. This keeps dedicated camera sequencing beside the earlier generic camera FOV keyframe fixture used by the data-model tests.

Default Fixture#

BuildDefaultSequencerCameraTrack creates Track.Camera.CouncilTrial.Hero, bound to Binding.Camera.Hero. The track contains:

  • Three transform/FOV keyframes at frames 0, 90, and 180.
  • Cut.Camera.HeroToCloseup, cutting to Binding.Camera.Closeup at frame 90.
  • Cut.Camera.CloseupToRainWide, cutting to Binding.Camera.RainWide at frame 135 with a 12-frame blend metadata window.
  • Rail.CouncilTrial.Dolly, using Spline.CouncilTrial.JuryDolly from frames 60 to 150.

At frame 45, FOV interpolates to 43.5. At frame 90, the closeup cut fires and the dolly rail distance is 240. At frame 120, the dolly rail distance is 480.

Evaluation#

EvaluateSequencerCameraTrack validates camera-track type, camera binding id, camera keyframes, duplicate keyframe frames, camera cuts, and rail camera specs. At a frame it returns the evaluated camera location, rotation, FOV, interpolation alpha, active camera binding, camera cut fired this frame, active cut id, active rail id, active rail spline path, rail alpha, and rail distance.

Verification#

Run:

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

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