![]() |
ezEngine
Release 25.03
|
Accepts a single input in model space and applies two-bone IK (inverse kinematics) on it. Updates the model pose in place. More...
#include <AnimPoseGenerator.h>
Public Attributes | |
ezVec3 | m_vTargetPosition |
The position for the 'end' joint to try to reach. Must be in model space of the skeleton, ie even the m_RootTransform must have been removed. | |
ezUInt16 | m_uiJointIdxStart |
Index of the top joint in a chain of three joints. The IK result may freely rotate around this joint into any (unnatural direction). | |
ezUInt16 | m_uiJointIdxMiddle |
Index of the middle joint in a chain of three joints. The IK result will bend at this joint around the joint local mid-axis. | |
ezUInt16 | m_uiJointIdxEnd |
Index of the end joint that is supposed to reach the target. | |
ezUInt16 | m_uiRecalcModelPoseToJointIdx = ezInvalidJointIndex |
Optimization hint to prevent unnecessary recalculation of model poses for joints that get updated later again. | |
ezVec3 | m_vMidAxis = ezVec3::MakeAxisZ() |
The local joint direction around which to bend the middle joint. Typically there is a convention to use +X, +Y or +Z to bend around. | |
ezVec3 | m_vPoleVector = ezVec3::MakeAxisY() |
In the same space as the target position, a position that the middle joint should (roughly) point towards. Used to have bones point into the right direction, for example to make a knee point properly forwards. | |
float | m_fWeight = 1.0f |
Factor between 0 and 1 for how much to apply the IK. | |
float | m_fSoften = 1.0f |
Factor between 0 and 1. See OZZ for details. | |
ezAngle | m_TwistAngle |
After IK how much to rotate the chain. Seems to be redundant with the pole vector. See OZZ for details. | |
![]() | |
ezHybridArray< ezAnimPoseGeneratorCommandID, 4 > | m_Inputs |
Additional Inherited Members | |
![]() | |
ezAnimPoseGeneratorCommandID | GetCommandID () const |
ezAnimPoseGeneratorCommandType | GetType () const |
![]() | |
ezAnimPoseGeneratorModelPoseID | m_ModelPoseOutput = ezInvalidIndex |
ezAnimPoseGeneratorLocalPoseID | m_LocalPoseOutput = ezInvalidIndex |
Accepts a single input in model space and applies two-bone IK (inverse kinematics) on it. Updates the model pose in place.
The input command must be of type