Channels are predefined keywords which allow to query the value of almost any Entity attribute value, ranging from the current played Motion Clip to the position of a Bone. Channels can be query via Expressions in the Attribute and Set Bone Behaviors, via the Expression Trigger in Triggers or via the MEL/Python command glmGetChannelValue.
Behavior Channels: they refer to local Attributes which are stored / computed by an Entity's Behavior (eg Behavior is Running, Motion Clip played by a Motion Behavior...).
Some Channels require a Component Name in addition to a Channel Name. The Component Name allows to specify which objects is queried for this Channel. Component Names can be the name of the wanted skeleton bone, limb... It can be specified through the Attribute Behavior special syntax or using the -componentName flag of the glmGetChannelValue command.
Channels values are only of type float or vector3.
hasPaintedColor float Returns 1 if the Entity is within a Painted Zone.
paintedColor vector3 Returns the color of the first Painted Zone at the Entity position (each component will be between 0. and 1.).
paintedColorAlpha float Returns the alpha coefficient of the first Painted Zone at the Entity position (between 0. and 1.).
paintedDirection vector3 Returns the direction of the first Vector Field at the Entity position.
The following Channels are only meaningful if there's at least a Motion, Locomotion or SyncMotion Behavior playing in the Behavior Graph.
isAnimationEnabled float Is the animation enabled for an Entity? It returns 1 if the Entity exists.
limbHasFootprint float Are there footprints defined for an Entity Limb? This Channel requires the name of the Limb as a Component.
limbFootprint float Is the Entity Limb currently playing a footprint? The result of this Channel is only valid if limbHasFootprint returns 1. This Channel requires the name of the Limb as a Component.
limbPreviousFootprintPosition vector3 World position of the previous footprint of an Entity Limb. The result of this Channel is only valid if limbHasFootprint returns 1. This Channel requires the name of the Limb as a Component.
limbPreviousFootprintOrientation vector3 World orientation of the previous footprint of an Entity Limb. The result of this Channel is only valid if limbHasFootprint returns 1. This Channel requires the name of the Limb as a Component.
limbNextFootprintPosition vector3 World position of the next footprint of an Entity Limb. The result of this Channel is only valid if limbHasFootprint returns 1. This Channel requires the name of the Limb as a Component.
limbNextFootprintOrientation vector3 World orientation of the next footprint of an Entity Limb. The result of this Channel is only valid if limbHasFootprint returns 1. This Channel requires the name of the Limb as a Component.
blindDataValue float Value of a Character Blind Data / Blend Shape. This Channel requires the name of a Blind Data or a Blend Shape as a Component. The name of a Blend Shape has the following naming convention: blendShapeGroupName.blendShapeName.
The following Channels are only meaningful if there's at least a GoTo and a Navigation Behavior playing in the Behavior Graph.
isNavigationEnabled float Is the navigation enabled for an Entity? It returns 1 if a NavMesh is correctly defined in the Terrain Locator and if the Entity Navigation Attributes are valid.
boldness float Navigation boldness of an Entity. The result of this Channel is only valid if isNavigating returns 1.
hasAGoToTarget float Is the Entity currently going to a target?. The result of this Channel is only valid if isNavigating returns 1.
goToTargetPosition vector3 World position of the target. The result of this Channel is only valid if hasAGoToTarget returns 1.
localGoToTargetPosition vector3 World position of the local target. The result of this Channel is only valid if hasAGoToTarget returns 1.
distanceToGoToTarget float Distance between the Entity and the target. The result of this Channel is only valid if hasAGoToTarget returns 1.
isGoToTargetReached float Returns 1 if the Entity has reached its target. The result of this Channel is only valid if hasAGoToTarget returns 1.
curvilinearAbscissaOnPath float Position of the Entity on the curvilinear abscissa between its starting position and the target. This value varies between 0. (starting position) and 1. (target reached). The result of this Channel is only valid if hasAGoToTarget returns 1.
groundHeight float Height of the currently adapted ground at the Entity position. The result of this Channel is only valid if hasGround returns 1.
groundNormal vector3 Normal of the currently adapted ground at the Entity position. The result of this Channel is only valid if hasGround returns 1.
groundSlope float Unsigned slope angle (in °) of the currently adapted ground at the Entity position. The result of this Channel is only valid if hasGround returns 1.
entityGroundSlope float Signed slope angle (in °) of the currently adapted ground at the Entity position and depending on the Entity orientation. The result of this Channel is only valid if hasGround returns 1.
bonePhysicsMode float Physicalize mode of an Entity Bone (0: Dynamic, 1: Kinematic, 2: Local Servo, 3: World Servo, -1: disabled). This Channel requires the name of the Bone as a Component.
isFlockEnabled float Is the flock enabled for an Entity? It returns 1 if a Flock Behavior is currently active.
hasAPerchTarget float Is the Entity currently going to a perch?. The result of this Channel is only valid if isFlockEnabled returns 1.
perchTargetPosition vector3 World position of the perch target. The result of this Channel is only valid if hasAPerchTarget returns 1.
perchTargetNormal vector3 Normal of the perch target. The result of this Channel is only valid if hasAPerchTarget returns 1.
distanceToPerchedTarget float Distance between the Entity and the perch target. The result of this Channel is only valid if hasAPerchTarget returns 1.
isPerchedTargetReached float Returns 1 if the Entity has reached its perch target. The result of this Channel is only valid if hasAPerchTarget returns 1.
geometryId float Id of the Geometry File currently played by the Entity. A Geometry File can be changed by using a Geometry Behavior. -1 if no Geometry Behavior is played.
geometryFrame float Frame of the Geometry File currently played by the Entity. Played frame of a Geometry File is controlled by a Geometry Behavior.
geometryRatio float Ratio (between 0. and 1.) of the Geometry File currently played by the Entity. The ratio of a Geometry File is computed depending on the Start Frame and End Frame defined in the current Geometry Behavior.
geometryStartFrame float Start frame value defined in the current Geometry Behavior.
geometryEndFrame float End frame value defined in the current Geometry Behavior.
closestEntity float EntityId of the closest Entity.
distanceWithEntity float Distance with the specified Entity of Id X. This Channel requires an Entity Id as a Component.
distance2WithEntity float Squared distance with the specified Entity of Id X (faster than distanceWithEntity). This Channel requires an Entity Id as a Component.
isIdle float Is the Behavior idled? Returns 1. if the Behavior is neither starting, running or stopping.
isStarting float Is the Behavior starting? Returns 1. if the Behavior is waiting for its Starting Trigger to be true.
motionRatio float Currently played ratio of the Motion Clip. This value varies between 0. (first frame of the motion) and 1. (last frame of the motion).
objectCount float Number of perceived objects.
objectPos vector3 array Position of each of the perceived objects. This channel requires an integer Component to specify the index of the perceived object.
objectDist float array The distance to each of the perceived objects. This channel requires an integer Component to specify the index of the perceived object.
objectId float array The id of each of the perceived object. For example, if the Sensor Detection Type is set to Plain Entity, the objectId channel will contain the crowd entity Ids of the perceived entities. This channel requires an integer Component to specify the index of the perceived object.
More Channels will be added in the next versions depending on user requirements. If some other Channels interest you, tell us here.