Channel Operators Overview

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);

  • 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 use the ChOp Nodes Library, from where you can drag and drop nodes to the graph before connecting them. Note that only the nodes linked, directly or indirectly, to a ChOp Output node will have some impact on the simulation. 

  • 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 4 different kinds:

Groups

Group Channel Operators have no influence at all on the execution of the graph of channel operators. They allow to order the channel operators in different groups, making it easier to find back a specific graph related to a channel operator behavior.

ChOp Group Group for ordering the different graphs in the editor view

Notes

Notes Channel Operators have no influence at all on the execution of the graph of channel operators.

ChOp Note Text notes in the graph of Channel Operator.

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.
ChOp Geometry Input input values that depend on Maya geometry 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 Bool Operation does boolean mathematics operations on values from previous Channel Operator(s).
ChOp Converter does type conversions on values from previous Channel Operator(s).
ChOp Switch switches the output based on a previous Channel Operator value as selector.
ChOp Multiplexer combines values from previous Channel Operator(s) into a single output value.
ChOp Remap allows to remap the previous Channel Operator value from a source range to a destination range.
ChOp Ramp allows to remap the previous Channel Operator value within a Ramp.
ChOp Counter iterates through a range defined from the previous Channel Operator(s).
ChOp Accu accumulates values from the previous Channel Operator and returns an average or a specific value.
ChOp Memory allows to store the value from the previous Channel Operator.

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.

Visual Feedback

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).

Value produced for each entity can't be displayed in the regular Maya attribute, not can be fetched directly trough the regular Maya UI or API (because they're different for each entity). But there are 2 ways to check what kind of value is produced by a given Channel Operator and for  a given entity during the simulation: