Skip to content

Shot Modes

There are three ways to open a ShotContext. Pick based on whether you need the set and how many actors you're placing.

Mode Open with Placement Set loaded? Use when
Anchor-based with loc.Sub.Anchor as shot: implicit (the anchor) yes one actor at a named spot
Location-based with loc as shot: explicit at= per actor yes choosing anchors / multi-actor
Bare scene with bare_scene as shot: explicit at= (tuple ok) no isolating actors/cameras/lights

Anchor-based

A named shot point sets position and facing automatically — no at= needed.

with canal_bridge.Tree1.A1 as shot:
    shot.add(hero)
    shot.camera("static", mode="medium", R=3.0, theta=15)
    shot.clip(1/24)

anchor-based

Warning

In an anchor-based shot, more than one actor requires shot.block(...) — bare placement is ambiguous and rejected.

Location-based

Open the whole location, then place each actor explicitly with at= (an anchor or a raw tuple). This is the form for multi-actor staging.

with canal_bridge as shot:
    shot.add(hero, at=canal_bridge.Tree2.C1)
    shot.camera("static", mode="medium", R=3.0, theta=15)
    shot.clip(1/24)

location-based

Bare scene

No .blend at all (actor_scale = 1.0). The actor stands alone — ideal for testing a camera move or a light without the heavy set load.

from dsl.set_metadata import bare_scene

with bare_scene as shot:
    shot.add(hero, at=(0, 0, 0))
    shot.camera("static", mode="medium", R=3.0)
    shot.clip(1/24)

bare scene

The set adds nothing here by design — grey void, actor only.