#include 
Inherits IAnimationPoseModifier.
| Public Types | |
| enum | EOp { eOp_Override, eOp_OverrideRelative, eOp_OverrideWorld, eOp_Additive, eOp_AdditiveRelative } | 
| Public Member Functions | |
| CRYINTERFACE_DECLARE_GUID (IAnimationOperatorQueue, "686a56d5-215d-44dd-a166-ccf13327d8a2"_cry_guid) | |
| virtual void | PushPosition (uint32 jointIndex, EOp eOp, const Vec3 &value)=0 | 
| virtual void | PushOrientation (uint32 jointIndex, EOp eOp, const Quat &value)=0 | 
| virtual void | PushStoreRelative (uint32 jointIndex, QuatT &output)=0 | 
| virtual void | PushStoreAbsolute (uint32 jointIndex, QuatT &output)=0 | 
| virtual void | PushStoreWorld (uint32 jointIndex, QuatT &output)=0 | 
| virtual void | PushComputeAbsolute ()=0 | 
| virtual void | Clear ()=0 | 
|  Public Member Functions inherited from IAnimationPoseModifier | |
| CRYINTERFACE_DECLARE_GUID (IAnimationPoseModifier, "22fe4775-5e42-447f-bab6-274ed39af449"_cry_guid) | |
| virtual bool | Prepare (const SAnimationPoseModifierParams ¶ms)=0 | 
| Command Buffer. Pose data will not be available at this stage. | |
| virtual bool | Execute (const SAnimationPoseModifierParams ¶ms)=0 | 
| virtual void | Synchronize ()=0 | 
| virtual void | GetMemoryUsage (ICrySizer *pSizer) const =0 | 
Animation pose modifier that allows for overriding the orientation of individual joints
#include 
// Example of using operator queues to offset the positioning of one specific joint in a character
void OffsetJointPosition(ICharacterInstance& character)
{
    // Start by creating an instance of the operator queue
    // Note that this can be cached, and should not be re-created each frame
    std::shared_ptr pOperatorQueue;
    CryCreateClassInstanceForInterface(cryiidof(), pOperatorQueue);
    // For the sake of this example we will assume that our character's skeleton has a joint titled "Bip01 L Hand"
    const char* szJointName = "Bip01 L Hand";
    // Look up the identifier of the joint we want to manipulate
    // This id can be cached, to spare the run-time lookup
    const int jointId = character.GetIDefaultSkeleton().GetJointIDByName(szJointName);
    // Start per-frame actions, should be executed in an update loop
    // Offset the joint upwards by 0.1m
    pOperatorQueue->PushPosition(jointId, IAnimationOperatorQueue::eOp_Additive, Vec3(0, 0, 0.1f));
    // Now push the operator queue into the character for processing next frame
    character.GetISkeletonAnim()->PushPoseModifier(0, pOperatorQueue);
}