Skip to content

Cinematic

The one-command film

Scelo.CityCinematic tornado     (or: cyclone, quake — no argument = tornado)

ASceloCinematicDirector plays the whole film hands-off — no live console driving:

  1. Establishing — the camera dollies over the intact, window-lit skyline.
  2. The disaster — at ~15 s it triggers the chosen peril and tracks it low through the city as buildings collapse and the loss counter climbs.
  3. The payoff — at ~46 s the EP-curve overlay drops in: the event you just watched marked on the aggregate curve from a 40,000-year Monte Carlo of the demo city catalog, with AAL / TVaR-99 / 1-in-250.
  4. The aftermath — the camera pulls back over the rubble with the overlay up, ending at ~66 s.
The payoff: this event on the EP curve

Tune DisasterTime / EPTime / TotalTime and the camera keyframes in SceloCinematicDirector.cpp.

Set the stage first (one-time, ~2 minutes)

The film plays over the plugin's procedural city, so the level needs one — in an empty level the command logs Scelo.CityCinematic: no city. and does nothing. Setup:

  1. Place a city: drag a Scelo City Visualizer (ASceloCityVisualizer) from the Place Actors panel (search "Scelo") into any level.
  2. Assign a portfolio: in its Details panel set Portfolio to the bundled sample Data Asset DA_Ekhaya2 (Content Browser → enable Show Plugin ContentSceloAtlas Content/SceloAtlas/Sample/) — or any portfolio asset you have created (Data formats). The city builds itself from the portfolio.
  3. Press Play.

This same stage unlocks the whole city-hazard family: Scelo.CityStrike, Scelo.CityTornado, Scelo.CityQuake, Scelo.CityEPCurve, recovery.

Press-Play-and-go: drop an ASceloCinematicDirector in the level, set its City property to the city visualizer and enable bAutoPlayOnBeginPlay. Pressing Play runs the film by itself — useful for kiosk demos and unattended capture. Camera shake from the destruction controller is auto-disabled while the director owns the camera, so they don't fight.

Building blocks

The director composes commands you can also run individually (all need the placed city):

Command Effect
Scelo.CityStrike [DeltaP=110] [SweepDeg=35] [Duration=8] Destruction sweep over the city (front-of-collapse)
Scelo.CityTornado [PeakWind=95] [Heading=38] [Duration=7] Narrow vortex + funnel across the city
Scelo.CityQuake [Magnitude=7.0] [DepthKm=8] [Duration=6] Earthquake with concentric collapse rings
Scelo.CityEPCurve [Years=40000] [EventLoss] EP-curve overlay marking the last event; Scelo.EPCurveHide closes it
Scelo.CityReset Back to intact (clears damage colouring)
Scelo.StormGloom / Scelo.StormGloomOff Storm murk in / authored sky back
Scelo.StartRecovery [YearsPerSecond] The illustrative recovery timeline over the ruins

For the classic portfolio demo (exposure skyline + Holland-field cyclone + live counters reconciling to the analytic engine to the cent), follow the build in the plugin's Docs/DEMO_SCRIPT.md — about five minutes of editor work using the bundled DA_Ekhaya2 sample and the bundled NS_SceloRain Niagara system (its SceloIntensity / SceloWind / SceloRainRate user parameters come pre-wired).

Recording

  • Quick: any screen recorder (OBS, ffmpeg screen grab) over the PIE / -game window. The film is deterministic, so a single take is reproducible.
  • Film-grade: Movie Render Queue. The director is a code path, not a Level Sequence — so author a Sequencer Level Sequence that keys the same camera beats and calls the same triggers via event tracks, then render through MRQ for anti-aliased, fixed-timestep, deterministic frames. Scelo.FilmOverlay shows the counter overlay in a UMG layer that MRQ's UI renderer captures.
  • Offscreen stills of the live panels, no window focus needed: Scelo.DemoPanelShot, Scelo.LabPanelShot, Scelo.LabDashShot, Scelo.StudioPanelShot — each takes [file] [w] [h].