The Director's Chair: Scrub, Speed & Reverse
Tutorial intermediate compiles

The Director's Chair: Scrub, Speed & Reverse

Updated intermediate Scene Graph Animation Cinematic Code verified

The Director's Chair: Scrub, Speed & Reverse

Part 2 pressed play on a cinematic. A real director does more than that. They call for a slow-mo replay, freeze on the hero shot, skip to the climax, and ask "where are we in the take right now?" The Cinematic Sequence device exposes its entire timeline to Verse — so all of that is just a few calls away.

A replay-room console: four labelled buttons facing a cinematic stage

The director's controls

<!-- section-art:the-director-s-controls --> The Director's Chair: Scrub, Speed & Reverse: The director's controls

Director Controls

On top of Play/PlayReverse/Stop, the device gives you a full editing desk:

Cine.SetPlayRate(2.0)          # speed dial: 1.0 normal, 0.5 slow-mo, negative = backward
Cine.SetPlaybackTime(0.0)      # teleport the playhead to a time in seconds
Now := Cine.GetPlaybackTime()  # read where the playhead is now
Cine.TogglePause()             # flip between playing and paused, keeping position
Cine.GoToEndAndStop()          # snap to the final frame and stop

Two of these change how it plays, two of these jump or read the playhead, and TogglePause is the freeze-frame. Combine them and you can script any "director" move you've seen in a montage.

A few things to internalize:

  • SetPlayRate is a multiplier on top of the authored timeline. 0.5 is slow motion, 2.0 is fast-forward, and a negative rate plays it backward — another way to reverse, with speed control.
  • SetPlaybackTime is instant. It doesn't animate to that time; it teleports the playhead there. Pair it with Play() to "start the replay from 0," or with Pause to land on an exact frozen frame.
  • GetPlaybackTime is your sync hook. Read it to drive other systems: "once the camera passes 4 seconds, open the gate."

A four-button replay room

This device wires four buttons to four director moves over a single cinematic — a replay-room control panel you can drop into any island.

Read the four moves:

  • Slow-moSetPlaybackTime(0.0) rewinds the playhead to the start, SetPlayRate(0.5) halves the speed, then Play(). A clean slow-motion replay from the top.
  • FreezeTogglePause() flips play↔pause and keeps the playhead exactly where it is. Press again to resume. That's your freeze-frame.
  • SkipGoToEndAndStop() snaps to the final frame and stops (and, from Part 2, fires StoppedEvent). Great for an impatient "show me the result" button.
  • Inspect — reads GetPlaybackTime() and GetPlayRate() and prints them. In a real island you'd branch on that value to trigger other systems in sync with the shot.

This device is compile-verified in UEFN 5.8 (the whole project builds clean with it installed). Grab it as 03-device.verse and wire one Cinematic Sequence device plus four Buttons into the @editable slots.

Why "scrub" beats "re-author"

<!-- section-art:why-scrub-beats-re-author --> The Director's Chair: Scrub, Speed & Reverse: Why "scrub" beats "re-author"

Dynamic Timeline

Every move here works on one authored cinematic. You don't make a "slow version" and a "fast version" in Sequencer — you author it once and let Verse re-time, re-position, and re-play it however the moment needs. That's the whole point of putting the timeline under code: the content is fixed, the performance is dynamic.

Recap

  • The device exposes its whole timeline: SetPlayRate, SetPlaybackTime, GetPlaybackTime, TogglePause, GoToEndAndStop (plus GetPlayRate).
  • SetPlayRate is a multiplier: 0.5 slow-mo, 2.0 fast, negative plays backward.
  • SetPlaybackTime teleports the playhead instantly — it doesn't animate there.
  • TogglePause is a freeze-frame: it keeps the playhead in place.
  • GetPlaybackTime is your sync hook to fire other systems in step with the shot.

Next — Part 4: The Grand Reveal — the capstone: we choreograph the animated mesh, the cinematic, and a character emote into one timed, multi-beat show, orchestrated by a <suspends> coroutine.

Get the complete code — free

You've read the full walkthrough. The complete, copy-paste-ready Verse solution is free for members — sign in to unlock it.

Free with your BrainDead.TV / BrainDeadGuild Discord account. The walkthrough above is always free.

Verse source files

Check your understanding

Test yourself with an interactive quiz and track your progress + earn XP — free for members.

Up next · Scene Graph: Skeletal & Sequenced Animation The Grand Reveal: Orchestrating a Sequenced Show Continue →

Turn this into a guided course

Add UEFN Verse cinematics — SetPlayRate, SetPlaybackTime, GetPlaybackTime, TogglePause, GoToEndAndStop, freeze-frame and slow-mo to your free study plan — we'll suggest related pages and stitch the lot into one compile-checked, self-guided lesson with worked examples and quizzes.

Original tutorial generated by Verse Island from the Verse/UEFN knowledge base, with references to the Epic Games sources above. Code is validated against the knowledge base.

Comments

    Sign in to vote, comment, or suggest an edit. Sign in