Documentation by TAPgiles


While there are several recording gadgets in Dreams, they share some features:

# State

A recorder gadget holds state, and restores it.

When a recorder is first placed within the world, it automatically goes into recording mode. (Mm)

This can be the state of almost any property—including multiple objects, positions, settings, gizmos… but not edits such as a shape inside a sculpt. (Mm) (Pk) (Tg) Also captures the use of tools to adjust settings. (Mm) And changes to logic settings, making instant communication with no visible wires very easy to set up. (Tg)

It’s best practice to immediately name and/or colour the recorder after creating it.

The position of gadgets and their gizmos (for most objects) can be recorded if they are in the scene. However, moving gadgets inside windows cannot be recorded.

Note, some properties cannot be keyframed: names of objects, names to detect, text fields, editor mode buttons.

No non-tweak-menu settings can be recorded, such as wire connections for inputs or outputs, deleting/creating objects, edits of a sculpt or painting, or notes in an instrument.

# Recording State

Scope-in to a recorder gadget to edit its recording. Its recorded state is previewed while recording. Make changes while recording to store those changes into the gadget. These changes can be restored during play.

Scope-out while not inside a group to stop recording.

# Edit Keyframe: When 1 recording gadget is selected, use this context menu button to begin recording into it.

Or use the scope-in shortcut on a recording gadget to begin recording into it.

When placing a new recording gadget, you'll automatically begin recording into it.

# Stop Recording: While recording into a recording gadget, use this context menu button to stop recording.

Or use the scope-out shortcut while not scoped into a group.

# Moving a Recorded Object: When an object that has its transform keyframed is moved in edit mode, the recorded transform is adjusted to be relative to the new location. (Tg)

However, if the object is emitted in play mode at a different transform the keyframe will not adjust. (Tg)

# Forgetting State

To remove the recorded state for a specific setting or all settings of an object, select or record into the recorder gadgets, then hover over the setting/object and use the Delete controls. (Mm) (Tg)

If the recorder's wires are visible, the wires can be individually deleted as you would with any other wire to forget the state of the setting: using the Delete controls.

# Restoring State

While the recorder is powered, any stored setting of powered objects will be restored to what was recorded.

When an object becomes powered on one frame, it may not be affected by a keyframe until the next frame. (Tg)

The recording’s state and springiness will be applied according to how powered the gadget is, capped at 100%. The less powered the gadget is, the less the recorder pushes the state to what has been recorded. (Pk) (Tg)

For example, a keyframe stores a move of an object as +10 on the X axis. If powered 100%, the object’s position will become 100% of +10: +10. If powered 60%, the object’s position will become 60% of +10: +6.

In this way, by changing the value used to power a keyframe over time, you can animate values and positions etc. of any state recorded by it.

When a puppet’s body part is recorded, half-powering the recorder will also blend between the keyframed position and the normal position it would be in if it weren’t keyframed.

This is great for allowing a little bit of arm swing while the hand is still pointing in a particular direction. (Tg)

# Blending Recordings: Powering more than one recorder at a time will average the state between them when they affect the same setting, weighted depending on how powered the recording is. (Tg)

Powering two keyframes to less than half-power will cause them to not interfere for stored positions. (Tg)
Many gadgets have a core and falloff, and use that to output a percentage instead of a simple ON and OFF. Such values can be wired directly into a keyframe’s power to have more effect the closer an object is, for example. (Tg)

# Restoring Positions within Groups: The recorder will restore an object’s transform relative to its current scope.

This means if it is inside a group the position will be restored relative to wherever that group is. (Tg) If it is not inside a group, the position will be restored relative to the scene. (Tg)

# Tracing Affected Settings

There are ways to find out which objects/settings have been recorded by a gadget.

Hovering over an object that a recorder has recorded something for will cause the recorder gadget to throb. (Tg)

Hovering over a recorder that has nothing recorded to it, [empty] will be shown in red beneath the keyframe’s name.

When the gadget is selected or its tweak menu is open, anything affected by the recording will display hatch marks over them. (Jj)

All recorded state of an object can be removed while selecting or recording into the gadget using the Delete controls on the recorded object. Or removed for a setting by using the controls on that setting. While showing Invisible Connections, recordings can be removed by using the controls on individual wires coming from the gadget.

When recording a change in position for an object, a line will be drawn reflecting the movement recorded. Hovering over an object for which a change in position has been recorded will display the path that the recording follows, as well as a white sphere at the beginning and end positions.

Note that any movements are relative to the object’s starting orientation; this means if you flip the object after recording it moving around, the object will move around in a different direction.

While a recorder is selected or is being recorded into, objects and settings affected by it will have hatch-marks across them. (Jj) The state stored in the keyframe is also previewed. (Pk) (Tg) The hatch-marks are different depending on what state is stored:

  • Brown hatch-marks going from the bottom-left to top-right indicate the transform (position, rotation, and scale) of the object has been stored, such as for Inverse Kinematics.
  • Green hatch-marks going from the bottom-right to the top-left indicate that state has been stored but none of it is the transform of the object. For example, as a tweak menu setting, the rotation of a joint, etc.

# Copying

When an object that has state recorded by a recorder is copied, the recorder will affect the copy also. (Tg)

When a recorder is copied, it will have the same state recorded for the same objects the original had recorded. (Tg)

If a recorder and the object it has state recorded for are copied at the same time, as part of the same action, the original recorder will affect the original object, and the new recorder copy will affect the new object copy. (Tg)

This can make it easier to make a copy of a character, for example, and then remove any animations affecting it. Clone the character including its animations, and then delete the animations.

# Recording Kinematics

Recording has slightly different functionality while recording using Inverse Kinematics and Forwards Kinematics.

# Allowed Modes: In a system of jointed objects, a “root” object with no parent objects can only have its Inverse Kinematics transform recorded. A “child” object with one parent that is a root can only have its Forward Kinematics joint rotation recorded.

A child with a parent that is not the root can be recorded using Inverse Kinematics or Forward Kinematics.

# Changing Modes: If the position of a connected object is recorded using Inverse Kinematics first, any recorded manipulation of that object’s position into that recorder will use Inverse Kinematics.

Starting with Forward Kinematics will similarly continue to only record Forward Kinematics.

For example, record a child with a non-root parent using L2 for an FK recording. Then record using R2 to adjust and only rotations will be allowed, adjusting the existing FK recording.

So to change the type, we must first forget the recorded position or rotation of the object to let us reocrd in a different mode. Or the recording can be converted between Inverse Kinematics and Forward Kinematics.

# Disjointing: While recording the position of a child of a joint using the Inverse Kinematics, hold shift to freely move the child object along with its joint freely. (Tg)

# Keyframe

A keyframe holds a single setting value for one or more settings. The gadget can then be powered to restore that state. (See State.)

Note that when a new keyframe is created anywhere but a timeline, the keyframe starts powered off. When a keyframe is moved onto a timeline, it will become powered on.

When changing a setting while recording, the last state of that setting will be what is recorded.

So if there’s a power button that is on, and while recording into a keyframe you click it with the Cross button while recording it will record the power as “off.” Then click it again, and it will record the power as “on.” The keyframe will then remember the setting only as what you left is as: “on.” (Tg)
Keyframes can be used to transmit data across the scene with no visible wires. (Tg)
They can also be used to create a stop-motion effect instead of tweening. (Tg) Or showing and hiding sculpts to give the impression their forms are changing over time. (Tg)

Memory: Costs 0.0061% of the things limit per gadget. Costs 0.0054% of the wires & animation limit per setting affected.

Chaining with wires can be used to make the use of multiple keyframes to set the same settings a lot cheaper. (Tg)

# While on a Timeline: has fader handles. (Tg)

When on a timeline on the same row as another keyframe, with no other gadgets between them, becomes part of a keyframe “set.”

When part of a keyframe set, you can blend between keyframes with more precision. Cycle through the previous keyframe’s different Blending Types using shift +Cross on the space between the keyframes. (Mm) (Tg)

Reset the previous keyframe’s Blending Type to None by using the Delete controls between 2 keyframes.

Increase and decrease the Easing Strength with the Adjust controls on the blend. (Tg)

While recording into a keyframe in a keyframe set, use shift+Left on the d-pad to go to the previous keyframe in the set, or shift +Right d-pad button to go to the next. (Tg)

When a keyframe within a keyframe set is highlighted, or the set is hovered over, objects whose transform is affected by those keyframes will show a path of their changes. The dashed line of the path indicates the blending between each keyframed position (longer dashes for faster movement, shorter dashes for slower movement). Each keyframed position is also marked with a glowing yellow translucent sphere. (Tg)

This works even if there are other gadgets between the keyframes.

Keyframes can be used without blending to create frame-by-frame animation. (Tg) Even to power-on and move a frame into the correct position, allowing you to easily edit the frames by themselves but allow the animations to all play in the same place. (Tg)

The progression of Slow Power Up and Slow Power Down is not affected by the playhead position on the timeline or the playback speed of the timeline. (Tg)

# Convert to FK, Convert to IK: While recording into a keyframe and a jointed object is recorded that the keyframe has an IK recording of, use this context menu button to convert the recording of its position into a recording of the rotation of its joints and the joints of parents the chain. (Ml) Or visa versa.

For example, when converting an IK hand to FK, the joint rotations for the corresponding lower and upper arm will be set in the keyframe. Using FK to tween jointed objects, they’ll have a more natural rotation to them as they move.
And, when converting an FK hand to IK, the position of the hand would be recorded.

Tweak Menu

# Blend Type

Available: when on a timeline.

Available only when part of a set of keyframes within a timeline. The power of the keyframes either side of the blend will change during the blend with a curve according to this setting. (Tg)

Note that if rotation is recorded, it will rotate the object using the shortest route. So if you want something to rotate 180 degrees or more in a particular direction, it may be safer to use several keyframes to make sure it rotated in the desired direction.
This setting doesn’t have any effect when there is no keyframe immediately to the right of this one on the same row.
  • # None: doesn’t interpolate at all. The current keyframe will simply remain active until the next keyframe is activated.

  • # Linear: will transition towards the next state at a steady speed. (eg. +3, +3, +3, +3, +3.)

  • # Ease in: will transition slowly at first, and become faster. (eg. +1, +2, +3, +4, +5.)

  • # Ease out: will transition quickly at first and become slower. (eg. +5, +4, +3, +2, +1.)

  • # Ease in and out: will transition slowly, then quickly, then slowly. This is useful for more natural movements. (eg. +1, +3, +5, +3, +1.)

# Easing Strength

How intense the easing function will be applied. The “strength” of the blend. For example, if using “ease in,” a higher strength will begin the transition slower.

This can be used to give weighting to random values. (Tg)

# Springiness

When the keyframe is trying to set an object’s transform (position, rotation, scale), a higher springiness will allow the state to be overshot—wobbling back and forth like a physical spring—until eventually coming to a stop at the correct state. (Tg) (Tg)

Note that even after becoming unpoweres, a keyframe with springiness will still affect an object’s transform until all the object settles down into its final state. (Tg)

This works on gadgets within the world, but not on any other settings including gizmos. (Tg)

# Smoothing

When smoothing is on, the keyframe is part of a keyframe set, and the keyframe is only 1 frame wide (this is the default size of a keyframe on a timeline)... will use the incoming and outgoing trajectory of a transition to plot a smoother transition through the stored state. (Tg)

Note that this does not affect timing, or recorded rotation or scale, but position only. For this reason, a linear blend works best.

For example, you have three keyframes positioning an object at points of a triangle, with some sort of blending between them. If smoothing is off, the object will move to the next keyframed position, then move to the one after that. You’ll see the “corner” of the keyframe and an abrupt change in direction. If smoothing is on, the transitions will take into account where the object is coming from and where it is moving to, and attempt to smooth out the corner. So the path of the object will still hit those positions at the corners of a triangle, but those corners will be smoothed out and less noticeable.

# Keep Changes

When off, after the keyframe is powered off the states affected by it will revert to what they were before.

When on, the state will be preserved instead. (Tg)

Note that currently when a keyframe is half-powered each frame it will apply this operation. The result is that the animation will appear exponentially sped up. (Tg)
By using a half-powered second keyframe to balance it out you can keep the “keep changes” of the final state, without the animation being sped up. (Tg)

# Slow Power Up, Slow Power Down

These sliders set how long it takes to reach the desired power level, using an ease-out function. (Tg)

When the target power increases, it takes Slow Power Up seconds to reach it. When the target power decreases, it takes Slow Power Down seconds to reach it. (Mm) (Tg) These follow an “ease out” curve while transitioning.

When keyframing the power of an object, that power is also animated by this setting. For gadgets that are not affected by the amount of power received, this allows a single keyframe to keep that object powered while the keyframe is being powered or is still animating using these settings.

For example, fading a text displayer in and out. (Tg)

# Animation Colour

The colour of the gadget. (Tg)

# Action Recorder

Action recorders are like many keyframes, with associated times—recording state changes over time and transitioning between states automatically. (Mm)

So while you could have 10 keyframes activated in sequence to move and rotate an object at a certain speed, you could instead use an action recorder to record you moving and rotating that object instead.
Great for quick pseudo-randomisation of the position of an object, etc. (Tg)

As soon as you begin changing anything in the scene, recording will begin. (Jj) Stop changing things in the scene and the recording will stop until you start changing things again, which will resume recording from the same point. A recorded bar is shown at the top of the screen, the red area representing the time recorded. The bar’s scale will change as time goes on, to fit the time recorded in the same space. (Jj)

If time is running, the recording will begin from the moment you enter recording mode. If time has been paused midway through the gadget’s playback, the changes will be added to the recording from that point onward. Time and playback will also resume when you begin changing things. (Jj) Also, when you stop changing things, the recording will continue but record no state changes until you change things again. These pauses will be shown in the recorded bar as gaps in the red.

If the gadget already has state changes recorded and you activate record mode, you can record more changes to happen in sync with the existing recording. These new changes will be added to the recording. The recorded bar’s current time will show the moment you are adding to the recording. (Jj)

While the recorder is powered and time is running, the recorded states will be applied relative to the starting position of the settings. The face of the gadget will display a vertical bar indicating how far through the recording the gadget currently is. (Jj) When paused, any changes held by the recorder will be undone until time resumes playing.

Wired power affects: The amount of power received multiplies the playback Amplification.

Memory: Costs 0.0061% of the things limit per gadget. Costs 0.0059% of the wires & animation limit per setting affected.

While on a Timeline: has fader handles.

Placing an action recorder on a timeline will replay the recorded state in sync with the timeline. (Mm)

The playback speed can be adjusted while changing the recorder’s duration to maintain the gadget’s new width on the timeline. Shortcuts: hold shift while dragging the right edge of the gadget.

Scope-in to: record into the action recorder.

Tweak Menu

# Playback Mode

Playback mode affects how the recording is played back. (Jj)

When looping, the original settings will be restored at the beginning of each playback.

  • Once: When power goes from non-positive to positive, the clip will play from the beginning to the end—regardless of whether it becomes unpowered or not. (Tg)

  • Sustain: While powered, the clip will play through from wherever it got to before. When it becomes unpowered, it will pause at that point and stop any playing notes.

  • Loop: While powered, the clip will play through from wherever it got to before. When it gets to the end, it will resume playing from the start. When it becomes unpowered, it will pause at that point and stop any playing notes.

  • Ping-Pong: Similar to Loop but when it gets to the end, it will play in reverse to the beginning. Then when it gets to the beginning it will play forwards to the end.

# Animation Speed

How fast the recording will be played back. (Jj)

# Amplification

Modulates the size of the recorded changes—whether that’s size, position, rotation, or setting values. (Jj)

# Springiness

How much the changed values will overshoot their intended position at the end of playback. Higher springiness means the values will overshoot more, and will take longer to bounce around and settle on the final position. Affects position and rotation only. (Jj)

# Reverse

When on, reverses the animation when playing back. So it will effectively start playing from the end toward the beginning.

# Travel

When on, instead of reverting back to the original settings at the start of each loop, the last position of the settings will be used as the origin point for the next playback.

# Keep Changes

When on, will leave all affected settings in the current recorded position. When off, all settings will revert to their original values. (Jj)

Using this on a timeline with blends between keyframes can cause the restoration to compound over time, as it is re-applying it every frame. To fix this, the keyframes on either side of the blend should have Keep Changes set, and the suitable setting recorded into them. (Tg)

# On End Trigger

Sends a pulse when playback has ended. (Jj)

# Possession Recorder

In edit mode, records the outputs of a controller while possessing an object. (Tg)

If the object is a puppet, also records the position and orientation of that object over time from the moment a Puppet Interface within the puppet receives a signal into its “Walk” input.

When in recording mode, all electronics etc. are hidden. A “count in” toggle dictates whether there will be a “3, 2, 1” countdown after possessing an object before time will run and it will begin recording.

If there is something recorded already, a red Stop Recording button will appear. Also a Retake button can be used to delete the recording and start fresh.

All settings, how power affects playback, and timeline controls are the same as the action recorder.

“Keep Changes” is off by default.

Edit, Stop Recording: These context menus work the same way as for a Keyframe gadget. (See Edit Keyframe, Stop Recording.)

Wired power affects: the amplification amount. While receiving any positive power, the animation plays at full speed.

Memory: Costs 0.0061% of the things limit per gadget.

Scope-in to enter recording mode.