đ˛Noise
Generate random and turbulent motion
Last updated
Generate random and turbulent motion
Last updated
Noise can add randomness to object movement, rotation, or generate data to combine with other behaviors using Channel Link.
To add Noise, right-click an object in the Timeflow View and select:
Add Automation > Noise
Noise has a single read-only channel which outputs the randomly generated data, either in vector or float format, depending on the output type selected.
Select the object to view its settings in the Inspector.
For common features, please refer to Menu Bar and Update Settings.
Use the drop-down menu to select how the random data is applied.
Position: Applies the generated values to the specified transform's position.
Rotation: Applies to the transform's rotation (Euler angles).
Data Only: Generates random values but does not apply it to the transform.
The transform position and rotation are only modified if the apply mode is either of those options. When generating Data Only, random values are calculated only.
The target transform which the data is applied to. The current object transform is used by default though may be assigned to any other object in the scene by dragging and dropping it from the Hierarchy view into the field.
Beware of Confusing Setups
Since it is possible to target any transform in the scene, make sure the relationships are documented or clearly shown in the scene. Otherwise, an object may be under the influence of a behavior that can be hard to track down.
Select whether to generate random values for all axes (XYZ), or for an individual axis.
Several of the fields below switch between single float and vector input depending on the Axis mode selected.
Sets the initial position of the transform and also acts as the center point for the noise calculation.
When enabled, the current object transform is used to provide the input position. This is primarily used to add noise to an existing object animation or when applying noise to a child or other object separate from the current one.
Apply to Position <=> Input Position When applying to Position and Use Transform is enabled, if the target transform is the same object a warning is displayed. This configuration causes a circular loop where Noise generates the transform position which is then used for input on the next frame calculated. This is not prohibited and will still function, however the transform movement is sporadic and unpredictable since it doesn't have a fixed position to anchor the noise. This results in runaway objects and is likely not the desired result. See Parenting and Channel Order below for more advanced setup to resolve this.
Instead of generating random values each frame, noise can optionally be generated using intervals of time, interpolating between each random point. This is more noticeable when using the Random noise type but works also with Perlin noise.
Time Interval determines the frequency (in seconds) new random numbers are generated over time. Use the +/- value to vary the time interval further. The interpolation mode drop-down selects the type of interpolation to apply between time intervals. Spatially the object interpolates linearly to each new random location.
When Time Interval is 0 (+-0), the noise is generated every frame and indicated by 'Continuous Update'.
To make the object stop at each random position, enter a hold time in seconds with optional variability.
Use Time Interval and Hold Time to create a variety of autonomous movements. This could be used to simulate insect-like behavior, flying vehicles, or to add periodic randomness to any animation or behavior.
Uses built-in Random function to generate a new random value each frame (or Time Interval).
Use Random mode for extra random or chaotic movement.
Determines the starting seed for the random value generator. Change this or click the Randomize button for a new random variation.
Uses built-in Perlin noise function to generate smooth interpolating random values.
Perlin noise can be thought of as a field of random zones that blend into one another, creating an effect like turbulence.
Use Perlin for organic smoother movement. It's easiest to imagine Perlin noise as a 3-dimensional cloud which an object can move through.
Shifts the input position of Perlin noise.
Use Offset to change the randomness of the Perlin field. This can be helpful when working at 0,0,0 coordinates where noise generation may sometimes appear symmetrical or not random enough.
Offsets the input position of Perlin noise over time, in units per second. This adds to the Input Position and Offset causing the Perlin noise to drift over time.
Use Speed to simulate wind and other effects.
Sets the scale factor of the noise. This works with both Perlin and Random noise. Adjust the scale to control the overall intensity. If outputting a vector value (XYZ) then the scale on each axis may be set independently.
Scales the final noise output, multiplied uniformly with Scale.
Controls the overall speed of the Noise behavior.
This also scales the Time Interval and Hold Time accordingly. To increase noise speed separately without affecting the time interval, the Speed may be set with Perlin noise.
Use this slider to reduce the overall intensity of the noise output.
Use Amount to make the noise effects more subtle or to animate it on and off.
Each of the component values (XYZW) of the final noise output may be set to a fixed value. This is useful, for example, to set the alpha value (W) when using noise to generate a color.
Enable this to work with world space coordinates, otherwise local space is used.
When enabled, noise is centered on the input position in all directions around it. Otherwise if Center is unchecked, noise adds to the input position generating positive values only.
Flips the direction of the noise.
It is often helpful to apply Noise on a separate object to isolate it from the target transform. In the example shown below, the target is a child of the Noise object. Creating a parent-child relationship in this way makes it easier to work with since only the child transform is affected.
In the example shown below, the object has a Motion Path (Path Position) with Noise applied on top of it. The motion path provides the input position for the noise.
The channel order depends on the preferences setting Reverse Channel Order. In the example above, reverse order is enabled to clearly show which channel is on top.
In the inspector, this setup shows a warning by Use Transform since it is applying to the position of the same object providing it, however in this case the warning can be ignored since the motion path channel is processing first to set the object position.
When any property value, such as the transform position in the example above, is written to multiple times on the same frame, it all occurs within a single Update call. The final value is determined by the last channel processed, based on the order listed.
Random values are not entirely random and to a degree predeterminate. Noise attempts to generate the same results each time played by seeding the random number generator with the same value every frame. This results in repeating more-or-less the same movement each time the animation is played without caching the data, however there is some variability as illustrated in the graphs captured below.
During each playback there is some variability in range, however mostly noise behaves the same.
The Graph behavior is used in these example to capture the data generated from Noise using Channel Link.