No Order

A NoOrder Operator (beOpNoOrder) is used to process an unordered sequence of Behaviors (e.g. it runs several Behaviors once, one by one, in a random order). This operator handles children behaviors (added by drag'n drop on the NoOrder Operator), but it can only contain Behavior Containers and built-in Behaviors (not Behavior Operators).

    
    
An empty NoOrder Operator
A NoOrder Operator containing 3 Behaviors

When the NoOrder Operator is evaluated, it randomly selects one of its children Behaviors and starts it. When the selected Behavior stops, the NoOrder Operator then randomly selects another Behavior among the Behaviors that were not already run and starts its. The NoOrder Operator stops when all its children Behaviors were all run once.

Notice that the random selections are influenced by the random seed of the Crowd Manager.

Creation

  • Behavior Editor / Behavior Library: 
  • Golaem Menu: Crowd Behaviors / Operators / CrowdBeOp NoOrder Node
  • MEL command: glmCrowdBeOpNoOrderCmd;

Configuration

Container Attributes

Container Attributes of a NoOrder Operator
Children List the Behaviors contained in the NoOrder Operator. This attribute is read-only and can not be edited (use the Behavior Editor workspace to add or remove Behaviors in a NoOrder Operator).

Example

The following example describes a NoOrder Operator used to animate an Entity by playing 3 different animations (using Motion Behaviors). The entity will first play any of the available animations, then play another animation (different from the first one) and finally play the last remaining animation. In the end, the Entity will have played all the animations once in any of possible orders ( IdleQuiet > IdleAngry > IdleCool or IdleQuiet > IdleCool > IdleAngry or  IdleAngry > IdleQuiet > IdleCool or ...).

A NoOrder Operator processing a sequence of 3 idle animations in a random order