Fighting Game · Guides & deep dives

Sequencer Curve Editor

the focused track's first-to-last keyframe span, maps those values into graph coordinates, and attaches tangent handle positions derived from the resolved interpolation spec.

4sections1 minread

On this page

Task: TODOS.phase-72.72.15.2.4

The sequencer curve editor is represented by a V2Editor TimelineVisualizer panel spec and deterministic sampled model. It visualizes interpolation curves from FV2SequencerTrackSpec keyframes and FV2SequencerInterpolationSpec presets, then exposes sampled points, tangent handles, and preset curves for editor UI rendering.

Runtime API#

  • Panel spec: FV2SequencerCurveEditorPanelSpec
  • Viewport spec: FV2SequencerCurveEditorViewportSpec
  • Sampled point: FV2SequencerCurvePoint
  • Tangent handle: FV2SequencerCurveHandleSpec
  • Preset: FV2SequencerCurvePresetSpec
  • Model: FV2SequencerCurveEditorModel
  • Issue enum: EV2SequencerCurveEditorIssueType

BuildSequencerCurveEditorModel samples evaluated interpolation values across the focused track's first-to-last keyframe span, maps those values into graph coordinates, and attaches tangent handle positions derived from the resolved interpolation spec.

Behavior#

  • Curve visualization samples EvaluateSequencerKeyframeInterpolation into stable CurvePoints.
  • Tangent handles expose arrive/leave control points and graph-space handle positions for each keyframe.
  • Preset curves include linear, step, cubic ease-in-out, and custom camera ease.
  • Selected keyframe focus resolves the interpolation spec that should drive the curve display.
  • Validation reports invalid sequences, missing tracks, missing keyframes, unsupported value types, bad value bounds, and invalid sample counts.

The default QA fixture uses Seq.DataModel.CouncilIntro, Track.HeroCamera.FOV, nine samples, midpoint frame 60, and four preset curves.

QA Inventory#

  • Visualization: sample the camera FOV curve into nine viewport-mapped points and verify the midpoint sample.
  • Tangent handles: expose one handle per keyframe using resolved cubic control points.
  • Presets: expose linear, step, cubic ease-in-out, and custom camera ease.
  • Off-path: reject invalid sample counts, missing tracks, missing keyframes, and unsupported event/name curves.

js_repl Playwright interaction was unavailable in this session and the affected surface is Unreal editor data rather than browser-rendered UI, so verification is through UE editor automation and contract gates.

Verification#

  • python3 V2/ue/Tools/check-v2-sequencer-curve-editor.py
  • V2.Editor.Sequencer.CurveEditor
  • python3 V2/ue/Tools/check-v2-editor-module.py
  • python3 V2/ue/Tools/check-v2-ci-workflow.py