Chapter 08

Recipes

The tracks chapter says what every setting does. This one starts from what you want and tells you which settings get you there.

Each recipe names the track, the settings to change in order, and the thing that most often goes wrong.

Make an object appear and leave with an effect#

Track: Cue.

  1. Turn the object off in the Inspector so it starts hidden.
  1. Right-click the Cue track and add a Cue at the time you want.
  1. On the General tab, set Object.
  1. Set Start Time and End Time.
  1. On the Transition tab, under In Effect, set Motion. Choose from Spin, Bounce, Fly, Scale and Shake.
  1. Under Out Effect, set Motion the same way.

Style, next to Motion, changes the feel of the effect without changing its direction, distance, height, axes or duration. Classic is the plain version.

Watch for

Motion starts at None on both sides, and None means the object appears and disappears instantly. This is the single most common reason an entrance looks like nothing happened.

Fly also needs a direction. If Fly In Direction is left unset, the object arrives in place with no motion, and Lint says so.

Make an object drift in, wait, then go back#

Track: Move.

In the Motion section, set:

  1. Smooth Move Start on, and Start Duration to the seconds you want the glide out to take.
  1. Return When Done on.
  1. Hold Duration to the length of the whole move.
  1. Smooth Move End on, and Return Duration to the seconds you want the ease back to take.

Under Destination, set Position to where it should travel.

Hold Duration is the length of the whole move, not the pause. The glide and the return are carved out of it. Hold 8 with a 2 second start and a 2 second return leaves 4 seconds standing still. Computed End Time in the Timing section shows the result.

Watch for

Hold Duration starts at 0. Turn Return When Done on and leave it at 0 and the node collapses to no length at all, and Lint reports an error.

Make an object move where it stands#

Track: FX.

  1. Add an FX node on the object, over the span you want it moving.
  1. In Behavior + Style, press one or more of Hover, Pulsate, Sway, Jitter, Rotate and Orbit. They stack.
  1. Open the Customize foldout and set that behaviour's numbers.

Starting Recipe gives you a shaped starting point: Magical Float, Breathing Prop, Nervous Energy, Playful Bob, Turntable and Companion Orbit.

Watch for

the six buttons only switch a behaviour on. Its numbers are inside the Customize foldout, and if you never open it you get whatever the defaults are.

Orbit is different from the other five. It orbits each viewer rather than a point in the world, so every person sees it going around themselves. Turn on Colliders off during motion when you use it, or it can push people about.

Put a caption in front of every viewer#

Track: Text.

  1. Add a Text node and set Start Time and End Time.
  1. In Content, type into Text (supports multi-line).
  1. Set Font Size, and Color if you want one.
  1. Leave Show Background on unless the text sits against something dark already.

Text is not wrapped for you. A long line stays one long line until you put a line break in yourself.

Watch for

bright text with Show Background off can vanish against a bright sky. Lint warns about that combination.

Ask a question and branch the show on the answer#

Tracks: Prompt, then a condition on whatever you want to gate.

First the question:

  1. Add a Prompt node. Give it room, several seconds at least.
  1. In Content, type the question into Prompt Text.
  1. In Answers, set Answer Count to 2, 3 or 4 and fill in each answer.
  1. Set Default Answer, which is what a viewer gets if they say nothing before the node ends.

Then the branch. The condition goes on the node you want to gate, not on the prompt:

  1. Select the node that should only play for one answer.
  1. At the bottom of its Properties panel, press Add Condition.
  1. Set Match to Prompt Answer.
  1. Set Prompt to your prompt, and Answer to the answer that lets the node play.

Add another way this can happen gives you an OR. Also require adds a second requirement to the same way, which is an AND.

Watch for

only prompts that finish before the gated node starts appear in the Prompt list. A condition can never point at an answer that has not been given yet. If your prompt is missing from the list, it ends too late, so move it earlier.

A condition that is switched on but left empty plays for nobody. Lint warns about that one.

Fade a viewer's sight to black#

Track: Vision FX.

  1. Add a Vision FX node and set Start Time and End Time.
  1. Leave Type on Fade to Black.
  1. Set Darkness. 1 is full black, and at full black nothing shows through at all.
  1. Set Fade in (seconds) for the darkening and Fade out (seconds) for the clearing. 0 is a hard cut.

The fade happens to each viewer's own eyes, so a condition on the node blacks out one person and nobody else.

To end the show on black, set Fade out to 0. The view then holds at full darkness to the node's end instead of clearing again.

Watch for

Preview does not show the fade. It is the one track with no preview, so judge it in Play mode or in the world.

Overlapping Vision FX nodes are fine. The darkest one wins, and they do not add up: two nodes at Darkness 0.5 give you 0.5, not full black.

Change the sky#

Track: Skybox.

  1. Add a Skybox node.
  1. Set Skybox to a material that uses a Skybox-family shader.
  1. Set Starts at.
  1. Under Transition, choose Cut or Spin. Spin turns the sky a full circle and swaps at the halfway point.

A skybox row has no end. It has one time, and the sky it sets holds until the next change. The read-only Persists until line tells you which one, or says end of dream.

The sky does not go back when the show finishes. It returns to your world's own sky in four cases only: you scrub back before the first change, a condition leaves no sky to show, the Skybox track is turned off, or the Dream goes dormant.

To give one person their own sky, press Add Condition at the bottom of the panel and set Match to Player Name. Names are matched exactly, capitals included.

Watch for

Spin needs a _Rotation property on the shader. The default Skybox/Cubemap does not have one, so use Skybox/Procedural or a custom variant.

Watch for

skybox materials are not copied while the Dream runs. Two rows pointing at the same material share its rotation, so give each spinning sky its own material.

Teleport the audience and arrange them#

Track: Teleport.

  1. Add a Teleport node and set Destination Transform. Its forward direction is the way people face, and its right axis is the direction a row spreads along.
  1. Leave Curved off for a straight row. Turn on Custom Spacing to set Spacing (m), or leave it off for the default.
  1. Turn Curved on for an arc, then set Radius (m) and Angle Span.
  1. Under Facing, Curved: Face Inward turns an arc into a huddle. Facing Offset, in degrees, rotates everyone together, and works either way.
  1. Under Exclusions, Exclude Instance Master keeps the host where they are, and Excluded Display Names skips people by name.

Preview does simulate this one. Preview Players sets how many people it draws, and the scene gizmos show the shape before you ever build.

Excluded people are skipped and the rest close up, so there are no gaps in the row.

Watch for

a teleport inside a Camera shot is skipped completely, not delayed. Lint says so on the Camera node.

Watch for

a teleport at 00:00:00:0 fires while the room is still waiting for the show to begin. Start it a little later.

Run a presenter-paced talk#

  1. Open the cog on the Timeline bar and go to Video. Under Playback, set Non-hosted.
  1. Turn on Slideshow. This turns Autoplay on as well.
  1. A row of slide tabs appears under the Dream tabs. The "+" at the end adds a slide.
  1. The cog on the open tab sets that slide's Name, Loop, Auto-advance and loop points.
  1. Build each slide as its own timeline. Everything you add lands on the tab you are looking at.
  1. In the world, the presenter steps through with the arrows beside the slide counter.

To move a node to another slide, cut it, switch tabs, then right-click the time you want and paste.

Watch for

a Dream whose player was built before the slide controls existed has no arrows, so nobody in the world can advance it. Run Dreamer Pro then Rebuild Dream Player. Lint does not catch this one, so check it yourself.

Watch for

Who May Control decides who gets the arrows. Left unset, only the person holding the clock can advance the slides, and everyone else just watches.

Watch for

Non-hosted means non-hosted. A slideshow cannot ride hosted video or hosted audio.

Turning Slideshow off again puts every slide back on one timeline at once.

Put a recorded performer on stage#

Track: Presence, plus a Dreamwalker set up in the Dream's settings.

  1. Open the cog on the Timeline bar, go to Video, find Dreamwalkers and press Add Dreamwalker.
  1. Set Puppet to a Humanoid avatar in your scene. That avatar is also where the performer stands.
  1. Add a Presence node to the timeline and set its Dreamwalker to the one you just made.
  1. Set Recording on the node, or press Arm and record the performance in the world.

The performer is on stage while a Presence node is playing, and off stage the rest of the time. A Dreamwalker with no Presence nodes at all is on stage from the start.

Watch for

with no Puppet, nothing appears at all. With a Puppet but no Recording, the performer stands there without moving. Those are two different faults with two different fixes.

Watch for

the avatar has to be a Humanoid rig, and Optimize Game Objects has to be off. Both strip what a performance drives, and the editor offers to fix the second one for you.

Watch for

turning the Presence track off does not take the performer off stage. It removes the hiding, so they stand there for the whole Dream.

Quest plays at most three performers at once. Any beyond three stay visible but stop moving.

When something does not happen#

Press Lint before changing anything. It names the node and the reason, and it catches the silent cases that the timeline cannot show you.

One habit saves a lot of confusion: do not start anything at exactly 00:00:00:0. The tracks do not agree about that instant. A cue stays hidden until the show begins, and so does a fade, but a caption and a teleport fire straight away while the room is still waiting. Start a little after zero and they all behave the same.

Lint groups by track, and a few of its names differ from the names on the timeline. Cue appears as Cues, FX appears as FX (SE), and Prompt appears as Prompts.