• Advertisement
Sign in to follow this  

IK animations tear arm and torso apart.

This topic is 815 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I apply the IK after advancing the animation controller. After that, I aggregate all transformations to finish up on

a final matrix and render away.

1) Apply astar

2) Apply collision avoidance

3) Apply Physics

4) Apply IK

5) Aggregate everything

6) Render away


But When I apply IK with this method, the arms are stretching very large with some extreme pose, not every natural

So Am I correct to get the local transformation of the handle where the agent grabs on, then multiply it with

the world transformation of the target object and apply an interpolated IK etc

And finish up with aggregation of everything?




void COperator::ApplyArmIK()

    if (m_bNeedMoveArm) {
        // Get Trolley
        if (current_task.m_pObj != NULL) {
            LPD3DXFRAME f = NULL;

            if (current_task.m_trolley_id != -1)
                f = current_task.m_pObj->FindFrame("Handle");

            if (!f)
                f = current_task.m_pObj->GetFrameRoot();

            // world matrix
            D3DXMATRIX localMatrix = f->TransformationMatrix;

            D3DXMATRIX worldMatrix = *current_task.m_pObj->GetWorldMatrix();

            worldMatrix = localMatrix * worldMatrix;
            D3DXVECTOR3 target(worldMatrix._41, worldMatrix._42, worldMatrix._43);
            ik->UpdateArmIK(target, m_localtime);


Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement