Task: TODOS.phase-72.72.15.2.5
The sequencer viewport preview is represented by a V2Editor TimelineVisualizer panel spec, frame request, and deterministic preview model. It lets editor UI show real-time preview in the 3D viewport while the timeline is playing or scrubbing.
Runtime API#
- Panel spec:
FV2SequencerViewportPreviewPanelSpec - Request:
FV2SequencerViewportPreviewRequest - Camera state:
FV2SequencerViewportPreviewCameraState - Track state:
FV2SequencerViewportPreviewTrackState - Audio cue state:
FV2SequencerViewportPreviewAudioCueState - Event state:
FV2SequencerViewportPreviewEventState - Model:
FV2SequencerViewportPreviewModel - Issue enum:
EV2SequencerViewportPreviewIssueType
BuildSequencerViewportPreviewModel evaluates the current frame against
FV2SequencerSequenceSpec and FV2SequencerInterpolationSpec data. It exposes
the active camera binding and FOV, evaluated keyframed track states, active
audio cues, crossed event markers, timeline frame/time, and validation issues
for the 3D viewport overlay.
Behavior#
- Real-time preview marks
bRealtimePreviewActivefrom the request's playing state while preserving scrubbed preview through the same model. - Timeline sync records current and previous frames, normalized position, time, playback rate, and looping state.
- Camera preview resolves full camera tracks through
EvaluateSequencerCameraTrackand falls back to camera keyframe/property tracks such asTrack.HeroCamera.FOV. - Track states use
EvaluateSequencerKeyframeInterpolationfor transform, camera, property, and keyframed event tracks. - Audio overlays use
EvaluateSequencerAudioTrackto expose active cues, bus, local frame, volume, pitch, and trigger state. - Event overlays use
EvaluateSequencerEventTrackwhen event trigger tracks are present and also surface crossed keyframed event markers from the default data model. - Validation reports invalid sequences, invalid requests, out-of-range frames, missing camera preview state, and failed track evaluations.
The default QA fixture uses Seq.DataModel.CouncilIntro, frame 60, previous
frame 20, active camera binding Binding.Camera.Hero, audio cue
Cue.CouncilTrial.OminousMusicSwell, and event keyframe
Key.Global.Event.CameraCut.
QA Inventory#
- Timeline sync: verify frame
60, previous frame20, time1.0, realtime active state, and looping state. - Camera: verify active camera binding and evaluated FOV from the hero camera FOV track.
- Track states: verify Cassia transform interpolation at frame
60. - Audio overlays: verify the active music cue and cinematic audio bus.
- Event overlays: verify the crossed camera cut event keyframe.
- Off-path: reject invalid frames, invalid playback rates, and missing camera tracks.
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-viewport-preview.pyV2.Editor.Sequencer.ViewportPreviewpython3 V2/ue/Tools/check-v2-editor-module.pypython3 V2/ue/Tools/check-v2-ci-workflow.py