Channel Operators

Channel Operators (ChOps) are nodes which can be used to process data in a graph. They allows to manipulate various input values in order to produce some output channel values. The Channel Operators can only be used by being indirectly or directly connected to an output of a Channel Operator Behavior.


An example graph of Channel Operators, with two outputs (in orange) connected to a Channel Operator Behavior

Creation

The recommended way to create a graph of Channel Operators is as follow:

  • click on the icon with a square area and a red mouse pointer and a  near the newly created output channel (this will open the Golaem Channel Operators user interface);

  • In the Golaem Channel Operators user interface, you can select the newly created node, and change its properties in the Maya Attribute Editor

  • Once the initial channel operators is created, other channel operators can be created by using the shortcuts in each kind of Channel Operator attributes to build previous or next Channel Operators:

  • you can also create new nodes in the Golaem Channel Operators user interface by hitting the Tab key, and typing the name of the Channel Operator to create. Channel Operators can then be connected by clicking on the orange connection disc of a node and holding the mouse button while moving the cursor to the next orange connection disc.

This allow to quickly grow the graph of Channel Operators into its final desired shape:

Channel Operators Library

Channel Operators are of 3 different kinds:

Inputs

Inputs Channel Operators do not have previous Channel Operators, and produce an output value. They are represented with green icons.

ChOp Input inputs any kind of value into the graph of Channel Operators.
ChOp Sensor Input inputs float values that depends on Sensors Locators into the graph of Channel Operators.

Operations

Operations Channel Operators produce an output value that depends on the previous Channel Operator(s). They are represented with yellow icons.

ChOp Operation does basic mathematics operations on values from previous Channel Operator(s).
ChOp Converter does type conversions on values from previous Channel Operator(s).
ChOp Multiplexer combines values from previous Channel Operator(s) into a single output value.

Outputs

Outputs Channel Operator inject the value from their previous Channel Operator into the selected output. They are represented with red icons.

ChOp Output outputs the value from the previous Channel Operators into the Golaem simulation.

Connection

Channel Operators are connected together via their NextChOp output plug and PreviousChOps input plug array.


Channel Operators connections

Depending on its type, a Channel Operator may use the value of only one or several Channel Operators connected to the PreviousChOps plug array to compute its own value, and the index of the connection might change how its value is used. Check out the documentation for each Channel Operator for more details.

Value

Each Channel Operator will compute and output a value that can be either a float or a vector3. Depending on its type (see Types of Channel Operators), the value may depend on other connected Channel Operators (see the Connection part below).

To check what kind of value is produced by a given Channel Operator during the simulation, the best way is to open the Visual Feedback and check for the values of all Channel Operators that are handled by the Channel Operator Behavior. There is no other way to get these value: even if the channel operators are regular Maya nodes, their value is not stored as a regular Maya attribute so can't be fetched directly trough the regular Maya UI or API.


Crowd Visual Feedback for the Channel Operator Behavior. Note that all values are float except the first one (chOpInputShape2) that is a vector3.