Tutorial: scene authoring
Zones are how you tell NameFrame where things may appear, where the camera may stand, and what it should look at. This tutorial covers the five helper actors and the population contract that governs them.
The five helpers#
| Helper | Purpose | Typical use |
|---|---|---|
| Spawn Zone | An area where target actors may be placed | The beach where people appear |
| Target Zone | An area the camera aims at | Keeping the camera on the interesting part of a big map |
| Exclusion Zone | An area where nothing may spawn | Water, roads, the inside of a building |
| Camera Zone | An area the camera may occupy | A drone flight corridor |
| Flight Path | An editable spline the camera follows | A repeatable inspection sweep |
All five are created from Scene → Spatial rules, at the location of whatever you had selected in the viewport. After that they behave like ordinary level actors: move, rotate, scale, and edit their settings in the Details panel. They are saved with the level.
Show / Hide toggles the visibility of every NameFrame helper at once, so you can get them out of the way while working on the scene itself.
Configuring a spawn zone#
Select the zone and open the Details panel. The parts that matter:
| Setting | What it controls |
|---|---|
| Zone Name | The name you reference from a recipe. Give it a real one, like beach_people_area rather than SpawnZone_3. |
| Enabled | Turn a zone off without deleting it. Useful for A/B runs. |
| Spawn Groups | The heart of it. Each group has a Label, a Count, and a pool of Actor Classes and/or Static Meshes. |
| Preview Count | How many temporary actors the Preview Spawns button places. Keep it small. |
| Ground Actor Prefix / Ground Actors | What counts as ground for the placement trace. Defaults to Landscape. |
| Require Ground Hit | Reject placements that find no ground, rather than leaving something floating. |
| Shuffle Per Frame | Re-place the population every frame instead of once for the run. |
A zone can hold multiple spawn groups with different labels. One "street" zone can produce pedestrians and parked cars with independent counts and pools.
The population contract#
The Spawner contract section on the Scene page holds the global placement rules. They apply to every zone.
| Field | Default | What it prevents |
|---|---|---|
| Ground actor prefix | empty (any ground) | Spawning on the wrong surface |
| Max ground clearance (m) | 2.0 | Actors hovering above the surface |
| Scatter radius (m) | unset | Everything landing in one spot |
| Scatter yaw (deg) | unset | Every actor facing the same way |
| Min spacing (m) | 0.5 | Actors intersecting each other |
| Max slope (deg) | 30 | Actors standing on cliff faces |
| Max attempts | 120 | Infinite retries when a zone is too crowded to satisfy |
If Min spacing is large relative to the zone area, the placer runs out of attempts and you get fewer actors than you asked for. Either enlarge the zone, lower the count, or reduce the spacing. Validate Setup reports this.
Classes and assignment#
A class is a label plus a rule for which actors carry it. In the panel you assign actors two ways:
- Assign Selected tags exactly the actors you have selected. Precise, and good for a handful.
- Assign Prefix tags every actor whose name starts with the string you
typed. Good for
BP_Character_-style naming.
Press Select on a class row to select its actors back in the viewport. That is the quickest way to confirm an assignment did what you meant.
Look-alikes
Anything that looks like a positive but is not labelled teaches the model that such objects are background. Two ways to handle it:
- Ignore Selected marks actors explicitly as non-targets.
- A visibility rule hides non-target actors entirely for the capture, producing a clean subset dataset.
Advanced population rules#
The advanced population editor on the Scene page takes YAML for rules the buttons do not cover: clustered spawning, spawning relative to another class, inter-class minimum distances, nested groups, and named spatial distribution profiles.
The fastest way to learn the format is to press one of the example buttons: Numeric example, Spatial example, Anchors example or Groups example. Each loads a complete working recipe into every Studio control, advanced editor included. Read what it loaded, then edit it.
A cluster rule, for instance:
cluster_spawn:
- label: person
cluster_count: [2, 5]
actors_per_cluster: [2, 6]
cluster_radius_m: [3, 12]
zone: main_spawn
And placement relative to another class:
relative_spawn:
- label: person
relative_to: vehicle
count: [2, 8]
distance_m: [3, 20]
Press Save & Validate to write the recipe and check it, or Save & Dry Run to also produce the deterministic population plan so you can read the actual numbers the rules generate. Full syntax is in the recipe reference.
Capture performance#
The Capture Performance section, at the bottom of the Capture
page, trades render quality against throughput. Press one of the preset buttons
(Safe, Balanced, Fast) or set the
Profile field to safe, balanced, fast or
custom.
| Profile | Use it when |
|---|---|
safe | Default. Waits for assets, shaders and streaming before every capture. Slowest and most correct. |
balanced | Long runs on a scene you have already proved out. |
fast | Throughput runs where you have verified nothing pops in late. |
custom | You are setting the individual checkboxes yourself. |
Skipping the wait steps can produce frames rendered before textures or shaders finished
compiling: grey, blurry or untextured targets, with perfectly correct labels. The labels are
right and the images are useless. If you move off safe, smoke-test again and
look at the images.
The per-effect checkboxes (anti-aliasing, bloom, global illumination, Lumen, shadows, reflections, fog, particles, translucency) turn individual RGB features off. Turning them off is faster and changes what the images look like, which is fine if it matches your target domain and a problem if it does not.