A typical example to represent what an Action is would be a predefined camera path. The camera object contains a Animation structure that can contain multiple actions. You can then use a separate Action to represent different pre-recorded path such as: FlyByTower, PassUnderBridge or on existing skeleton bones to create more complex animation like: LegsRun, TorsoTurnLeft or DrawWeapon etc...

Actions can be used to control an object, properties, and entire skeleton and more. They can also be blended and mixed to create more complex non linear animation sequence to create Controller and Sequence; they can also be used in conjunction with physics, runtime user variables and more.

For each Action one or multiple Channel can be attached; each of them can control a different property based on a Curve (local curve) or Track (global curve). Each of theses curves can then be used to manage or animate a specific value at runtime. Values are expressed as a script lien which is ideal for procedural generation at runtime or to dynamically animate any other type of values.

See Also

Static Variables

Name Description
animation The Animation structure where the current Action reside. **
channel_count The number of channels associated with the current action. **
handler The Handler manage the scripting functionalities of the action.
armature Set the Armature to use during playback to mask bones and joints. **
uid The internal unique id of the action.


Name Description
name A unique name to identify the action. **
fps Controls the update rate of the action.
state The current playback state of the action.
view_state Tell the system what to do when the object associated to the current Action is out of view.
build Force the system to resolve the memory address of the variables controlled by the channels.
sync_time Last time the Action was re-evaluated.


Name Description
AddChannel Add a new channel to the current action. **
GetChannel Retrieve a specific Channel a by its name. **
GetChannelByCode Retrieve a Channel using its scripting code. **
GetChannelAt Retrieve a certain Channel based on its index. **
GetChannelIndex Retrieve the channel index if it is contained in the source Action specified. **
RemoveChannel Remove a specific Channel from the source Action. **
RemoveChannelAt Remove a specific Channel contained in the source Action by its list index. **
SwapChannels Swap two existing channels.
Play Playback an action. **
Pause Pause an action.
Stop Stop an action.
Seek Set the playback time of all Channel to a specific position.
GetDuration Get the total time of the Action considering all channels duration. **
Cleanup Remove all channels that are in error.
SetArmature Assign an armature to the current Action to mask bones/joints during playback.
Build Resolve the memory address of each channel allowing the system to store the Channel result directly to it.
Rebuild Rebuild the action.
Update Force the system to re-evaluate the current Action and all the channels it contain.
SetSpeed Set the speed of all Channel Curve managed by the active Action.
SetReverse Set the reverse flag on or off to all Channel Curve managed by the Action.


Callbacks Description
OnUpdate This callback is triggered everytime an Action gets updated. *
OnPlay Happen everytime the Action is requested to start playing. *
OnResume Triggered when the Action start playing is called and at least one Channel state is paused. *
OnPause Occur when one or more Channel state is set to pause. *
OnStop Triggered right after the Action stop. *

NRG - API 2022.4.384543 - Fri Nov 4 2022
Copyright © 2022 All Rights Reserved. Terms of Service - Privacy Policy - EULA