Crowd Ramp

A Crowd Ramp is a node which can be used to control a noise or a distribution on the Crowd Entities. It can be used in Expressions.

Known Issue: Due to a Maya bug, creating a control point at position 0 with a value of 0 will not be saved within the Maya file. Putting any other position or value different than 0 (even really small) will fix the problem. See the Known Issues page.

CREATION

  • MEL command: addCrowdRamp;
Note that most often it is useless to create a Crowd Ramp manually because they can be created directly from nodes using Expressions.

CONFIGURATION

Ramp Attributes

 
Ramp

The cuve ramp defines the continuous noise function to return in an expression code. The returned value is different for each Entity and varies between -1 and 1 (but can be rescaled with the Output Min and Output Max) :

Per Entity Random If checked, the curve ramp will be evaluated differently for each Entity
Is Dynamic If checked, the curve ramp will be evaluated at each frame and may return a different value
Evaluation Mode

Evaluation mode of the ramp. Speed of the ramp evaluation will be computed based on the Duration parameter.
Only relevant if Is Dynamic is enabled:

  • Noise: the curve ramp will be evaluated non linearly (may go forward or backward)
  • Loop: the curve ramp will be evaluated linearly and loop back to the start when reaching the end
  • Once: the curve ramp will be evaluated once and will always return the last value when reaching the end.
Duration Frequency of the curve ramp evaluation. Only relevant if Is Dynamic is enabled:

Input / Output Ranges Attributes

Input Min Bound the input value between Input Min and Input Max
Input Max Bound the input value between Input Min and Input Max
Output Min Rescale the output value between Output Min and Output Max
Output Max Rescale the output value between Output Min and Output Max

Here's the pseudo-code corresponding to the computation of the noise result:

float seed(entityId);
if (rampIsDynamic) seed += time * rampFrequency;
float noise(getNoise1D(seed));
return (ramp.getValueAtPosition(noise));