Behavior Editor Controls

The Behavior Editor proposes a diversity of controls and shortcuts to manage and combine Behaviors, Operators and Behavior Triggers. This page lists all the classic manipulations helpful in designing and debugging a Behavior Graph.

Workspace manipulations

Drag the workspace with ALT+middle-click
Zoom in/out with mouse wheel or ALT+right-click

Get back to the parent of the Current Behavior Container with CTRL+double-click.

Besides, Behavior Containers Hierarchy is shown on the top left of the main Workspace, just click on the desired Behavior Container name to get back to this one.


Behavior Containers Hierarchy Access
Frame the workspace to all Behaviors/Operators of the current opened Behavior Container
Frame Behaviors/Operators selection of the current opened Behavior Container
Resize the workspace to the real size

BEHAVIORS/OPERATORS MANIPULATIONS

Open a container into a new tab

  • Double-click on the Behavior Container icon  in the Operators view of the Behavior Library. A new Behavior Container will be created and opened into a new tab
  • Use "Open in new tab" in the context menu on an existing Behavior Container already visible in a workspace

Open in a New Tab a Behavior Container Context Menu
  • Double-click on an Entity Type in the Behavior Outliner Entity Types view to open the mapped Behavior Container
  • Double-click on a previously created Behavior Container in the Behavior Outliner Scene Behaviors view. 

Expand/Collapse a container

  • Click on the +/- button to expand or collapse the relative container

Expand/Collapse a Behavior Container
 
  • Use the expand button  to expand selected Behavior Containers​ or if no selection collapsed Behavior Containers
  • Use the collapse button  to collapse selected Behavior Containers​ or if no selection expanded Behavior Containers.

Select Behaviors/Operators in the Behavior Graph

  • Left-click on the Behavior/Operator. Use SHIFT key for multiple selection
  • Drag-and-drop inside the workspace to use the rubber selection band

Add a Behavior/Operator into the Behavior Graph

  • Drag-and-drop the desired Behavior/Operator from the Behavior Library into the workspace. A new Behavior/Operator will be created

Drag and Drop a Behavior into the workspace
  • Press "TAB" key inside the workspace and use the hotbox. A new Behavior/Operator will be created

Creating a Behavior/Operator with the hotbox
  • Drag-and-drop a previously created Behavior/Operator from the Behavior Outliner inside the workspace. Press Alt Key to duplicate it instead of moving it.

Remove a Behavior/Operator from the Behavior Graph

  • Press Delete Key after selecting the Behavior/Operator in the workspace
  • Use "Remove" in the context menu
Remove a Behavior from the Behavior Graph

Duplicate Behaviors/Operators from the Behavior Graph

  • Use "Duplicate" in the context menu

  • Use CTRL+D on selected Behaviors/Operators to call glmDuplicateBehaviors command.


Duplicate Behaviors/Operators from the Behavior Graph

Duplicate Options

Use the Option box in the context menu to access the behaviors duplicate options


Access Duplicate Options


Duplicate Options Dialog

  • Create New Triggers: Creates new default triggers on the new behaviors
  • Share Triggers: Reuses the triggers from the original behaviors

Duplicate Behaviors/Operators from the Behavior Outliner

  • Use Alt Key + Drag-and-Drop from the Behavior Outliner into the workspace.

Save/Share Behaviors, Operators and Behavior Containers

Behaviors, Operators and Behavior Containers can be saved in a file (Maya ascii file) as a Custom Behavior and then reused in another simulation or shared between users. 

Notice that in order to work fine inside a complete different scene than the one where the master Behavior was saved, all meshes and objects mapped to saved Behaviors and Behavior Triggers are also saved (for example a Behavior Trigger and its zone trigger mesh).

Save Behaviors/Operators and Behavior Containers

  • Use "Save" in the context menu
Save a Behavior
  • Use "Save Options" in the context menu to edit connected object saved with the behavior. Then use "Save".

Save a Behavior with Save Options

The new Custom Behavior is saved in a Custom Directory. This directory can be changed in the Crowd Settings or by choosing "Set Custom Directory" in the contextual menu of the Custom Behaviors Library.

 

Relocate the Custom Directory
Notice that if no Custom directory is set in the Crowd Settings, a dialog will ask you to choose one.

Open a Custom Behavior

  • Drag-and-drop a Custom Behavior from the Custom Behaviors Library into the workspace, if the Custom Behavior is a Container double-click to open it in a new tab.

The Custom Behavior is automatically loaded and ready to be linked and simulated.

Share Custom Behaviors between users

A Custom Behavior can easily be shared with another user by simply providing him the file in which Custom Behavior has been saved (see Crowd Settings to locate the Custom Behavior directory). There are then several ways for this user to import Custom Behavior:

  • Either by directly putting the file in its own Custom Directory. The Custom Behavior is then automatically available in the Custom Behavior Library.
  • Or by creating a copy of the Custom Behavior by opening the file in Maya and re-saving it as a Custom Behavior through the Behavior Editor:
    • Start Maya and load the Golaem Crowd plugin;
    • Open the Custom Behavior file;
    • Open the Behavior Editor;
    • In Behavior Editor Scene Behaviors, drag-and-drop the Behavior in the Behavior Editor workspace;
    • In Behavior Editor Main workspaceright-click on the drag-and-dropped Behavior and "Save", as previously described.

Enable/Disable Behaviors and Behavior Containers

Behaviors and Behavior Containers can be disabled inside the Behavior Graph to help designing and debugging complex actions without modifying the Behavior Graph. The disabled Behavior/Behavior Container is overlaid with a disabled icon .


Enabled Motion Behavior and disabled Behavior Container

A disabled Behavior/Behavior Container is not evaluated during simulation, the next Behavior/Behavior Container marked as enabled will be played.

Notice that a Parallel Operator, with an exit mode set on "As soon as one behavior has ended", is not evaluated if one of its children is disabled.

Enable Behaviors and Behavior Containers

  • On disabled Behaviors and Behavior Containers, Click on the Behavior/Behavior Container icon to switch the enable/disable status
  • Use the enable button  to enable selected Behaviors and Behavior Containers
  • On disabled Behaviors and Behavior Containers, use "Enable" in the context menu

Enable Behavior Container Context Menu

Disable Behaviors and Behavior Containers

  • On enabled Behaviors and Behavior Containers, Click on the Behavior/Behavior Container icon to switch the enable/disable status
  • Use the disable button  to disable selected Behaviors and Behavior Containers
  • On enabled Behaviors and Behavior Containers, use "Disable" in the context menu

Disable Behavior Context Menu

Behavior Triggers Manipulations

Select Behavior Triggers in the Behavior Graph

  • Left-click on the Behavior Trigger. Use SHIFT key for multiple selection

Behavior Trigger selection
Notice that you can use multiple selection to select objects in Maya and in the Behavior Editor, for example select a mesh in Maya viewport and a Behavior Trigger in the Behavior Editor in order to map a Trigger Zone in the Behavior Trigger Attribute Editor.

Share Behavior Triggers between Behaviors

  • Go in the Triggers Attributes on the Behavior and set the Starting or the Stopping Trigger of the Behavior to the same Trigger than the other Behavior you'd like to share the Trigger with. Once shared, the Triggers will be highlighted at the same time in the Behavior Editor:

 

To learn more about Behavior Triggers sharing, see Behavior Triggers.

Add a Stop Trigger on a Behavior

  • If the Behavior doesn't contain any stop triggers, add the Behavior in the flow 
  • Create a link between two Behaviors
  • Use "Add stop trigger" in the Behavior context menu

Add a stop trigger

Remove a Behavior Stop Trigger from a Behavior

  • Use "Remove last stop trigger" in the Behavior context menu
  • Use "Remove trigger" in the Trigger context menu

Remove a trigger

BEHAVIORS/OPERATORS Sequence MANIPULATIONS

Link Behaviors/Operators

  • Use the link button  to draw a link between Behaviors/Operators
  • Drag the mouse while holding the mouse middle-button in order to draw a link between Behaviors/Operators
  • Drag-and-drop a Behavior/Operator to insert it in the middle of an existing link

Link Behaviors on a specific Stop Trigger

  • Create a link between the specific stop trigger and the behavior
  • Drag-and-drop the behavior on the specific stop trigger

Link behavior on a specific stop trigger

Unlink Behaviors/Operators

  • Drag-and-drop with ALT+mouse-left desired Behaviors/Operators out of the link
  • Use ALT+mouse-left and drag to draw a razor . Release to cut links
  • Use "Unlink" in the Behavior/Operator context menu

Unlink a Behavior

Enable/Disable Link

Notice that only links after Alternative/Random Operators could be enabled/disabled.

  • Left-click on the Link Arrow.
 
Enable/Disable a Link

Behaviors/Operators hierarchy manipulations

Add a Behavior/Operator as Behavior Container Child

  • Drag-and-drop with mouse-left desired Behavior/Operator over the Behavior Container. Note that the Behavior/Operator will be added outside on the Behavior Graph, unlinked.

Add Behaviors into a Parallel/No Order Operator

  • Drag-and-drop the Behavior over the Parallel/No Order Operator
Tips: A Parallel Behavior will be automatically created if you drag-and-drop a Behavior over another Behavior

Remove Behavior/Operator from a Behavior Container

  • Use "Remove" in the context menu. Note that it will also remove the Behavior/Operator from the Behavior Graph. It can then be found in the Behavior Outliner

Remove Behaviors from a Parallel/No Order Operator

  • Drag-and-drop with ALT+mouse-left desired Behaviors/Operators out of a Parallel/No Order Operator