Behavior Container

A Behavior Container (beContainer) is a set of Behaviors and Operators connected together and resulting in a Behavior Graph (those Behaviors/Operators are called children of this Behavior Container, which is known as their parent Behavior). This node may be mapped to an Entity Type.

 
A Behavior Container in the Behavior Editor

It consists at least of:

  • A unique entry point called Initial Behavior
  • A unique exit point called Final Behavior
Default Behavior Container

Behaviors and Operators can be added to a Behavior Container and connected to each other. The Behavior Container is the only node which can be mapped to an Entity Type and it can be shared between different Entity Types.

Notice that sharing the same Behavior Container does not necessarily mean that all the Entities of an Entity Type will move in the same way. Operators and Triggers can be configured in various ways to add some diversity.

Creation

  • Behavior Editor / Behavior Library: 
  • Behavior Editor Workspace: drag and drop a Behavior Container a Behavior Operator or a built-in Behavior on an operator inner flow
Behavior Container auto creation
  • Shortcut: CTRL+G to group selection in a new Container Node
  • Golaem Menu: Crowd Behaviors / CrowdBe Container Node
  • MEL command: glmCrowdBeContainerCmd;

Notice that when creating an Entity Type, a Behavior Container will be automatically created and connected.

Connection between a Behavior Container and an Entity Type

Configuration

Notice that those following attributes are automatically set by the Behavior Editor when behaviors are added, deleted or modified.

Container Attributes

Container attributes of a Behavior Container
Children Behaviors and Operators contained in this Behavior Container.
Starts with The Behavior/Operator next to the Initial Behavior (e.g. the Behavior/Operator connected to the Initial Behavior through its unique outgoing flow).
Finishes with Behaviors and Operators previous to the Final Behavior (e.g. Behaviors and Operators connected to the Final Behavior through its incoming flows).

A Behavior Container containing 3 children, starting with a Random Operator and finishing with 2 GoTo Behaviors

Expand/Collapse a Container

A Behavior Container can be expanded/collapsed inside the Behavior Editor workspace. By default the Behavior Container is expanded.


Expand a Behavior Container

The expanded Behavior Container offer a synthetic preview of the Container's children. It also allow to design the Behavior Graph from the current container hierarchy level with the classic controls.


Expanded Behavior Container

CONTEXT MENU

Right-click on a Behavior Container in the Behavior Editor workspace to open its context menu:


Behavior Container context menu

Explore Display the Behavior Container graph in current tab of the Behavior Editor workspace (also see alternative controls).
Open in new tab Display the Behavior Container graph in a new tab of the Behavior Editor workspace (also see alternative controls).
Duplicate Duplicate the Behavior Container (see Duplicate Behaviors and the glmDuplicateBehaviors command for more details)
Save Save the Behavior Container as a Custom Behavior in the Behaviors Library (see save Custom Behavior for more details).
Enable/Disable Process/skip the Behavior Container graph when running the simulation (see Behavior Editor controls for more details).
Unlink Remove the Behavior Container from flow (e.g. delete its connections but keep it in current graph).
Remove Remove the Behavior Container from its parent Behavior Container without deleting it (it is still available in Behavior Outliner).