animation blending

I’m using the OglesSkinning example. I want to create an animation blending for my idle, walk, run transitions but I’m having trouble on how I should go about accomplishing this. Should I use GetTranslationMatrix function to generate a world matrix that is linear interpolated and use it to transform the bones. Any ideas would appreciated.


I do in my own code… in other words, I don’t use CPVRTModelPOD::GetBoneWorldMatrix or any of that . While using CPVRTModelPOD is a decent and quick way to play basic skeletal animations it is not well suited for optimized skeletal animation blending.

If you want to blend multiple animations , the best way is to interpolate basic animation frames ( Vector3 and Quaternion data) before you convert that to the matrix form.

Personally I use my own Skeleton/Animation classes which read basic POD animation frames and interpolate Quat and Vector3 data from multiple POD files … later on I use the final interpolated Vector3/Quat frame to update the skeleton only once (top > bottom as opposed to less efficient bottom -> up the way CPVRTModelPOD does)

Hi warmi

How are you able to get vector and Quaternion data based on the animation frame. I was looking at GetWorldMatrixNoCache and node.pfAnimMatrix is set. I never get the opportunity to use GetTranslationMatrix, GetScalingMatrix, and GetRotationMatrix. In each case, node.pfAnimPosition, node.pfAnimScaling, and node.pfAnimRotation pointers are null. All information are stored in a transformation matrix for each animation frame (node.pfAnimMatrix). Is there a setting in the exporter that I am not enabling. It would be nice to use the MatrixVec3Lerp and MatrixQuaternionSlerp that are already written.

My code rejects POD files which use node.pfAnimMatrix for animations and coupled with the fact that I using my own exporter which always creates Vector3/Quat data , I don't really have any problems with that.

Frankly, since I don't use any of the official exporters, I can't really say, but I have yet to see a POD file ( mainly talking about POD files included with the SDK) that uses node.pfAnimMatrix.


Perhaps unchecking "Export Matrices" would do the trick.