Cinematic¶
The one-command film¶
ASceloCinematicDirector plays the whole film hands-off — no live console driving:
- Establishing — the camera dollies over the intact, window-lit skyline.
- 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.
- 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.
- The aftermath — the camera pulls back over the rubble with the overlay up, ending at ~66 s.
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:
- Place a city: drag a Scelo City Visualizer (
ASceloCityVisualizer) from the Place Actors panel (search "Scelo") into any level. - Assign a portfolio: in its Details panel set Portfolio to the bundled sample Data Asset
DA_Ekhaya2(Content Browser → enable Show Plugin Content →SceloAtlas Content/SceloAtlas/Sample/) — or any portfolio asset you have created (Data formats). The city builds itself from the portfolio. - 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,
ffmpegscreen grab) over the PIE /-gamewindow. 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.FilmOverlayshows 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].