|
|
|
Tell us what you think of the site.
|
Autodesk Media & Entertainment User Community
|
Autodesk® 3ds Max®
|
|
Autodesk® Maya®
|
|
Autodesk® Softimage®
|
|
Autodesk® MotionBuilder®
|
|
Autodesk® Mudbox™
|
|
Autodesk® ImageModeler™
|
|
Autodesk® Sketchbook® Pro
|
|
Autodesk® Smoke on Mac®
|
| The Makeup of the local matrix of an KFbxNode
|
|
|
I am trying to extract animation data from an fbx file, this data is most likely to come from Motion Builder however it could come from anywhere.
Ideally I’d like to keep the Pre and Post rotation properties separate from trs.
Is there any chance you could explain to me what properties contribute to the local matrix of an KFbxNode.
I understand for example that it is composed of.
Local Translation
Local Rotation
Local Scale
Pre Rotate
Post Rotate
Local Matrix = (((Local Scale * Post Rotation) * Local Rotation) * Pre Rotation) * Local Translation
but are there any others and if so, how are they combined together?
Is there any documentation available that explains what are the steps taken to compute an KFbxNode’s local matrix?
Thanks in advance,
Luke
|
|
|
|
Hi Luke,
here is some details, to make it clear, I also list the related MEL commands, hopefully it useful for you. any problems, please let me know.
Local Matrix = LocalTranslation * RotationOffset* RotationPivot* PreRotation * LocalRotation* PostRotation * RotationPivotInverse* ScalingOffset* ScalingPivot* LocalScaling* ScalingPivotInverse;
LocalTranslation : translate (xform -query -translation)
RotationOffset: translation compensates for the change in the rotate pivot point (xform -q -rotateTranslation)
RotationPivot: current rotate pivot position (xform -q -rotatePivot)
PreRotation : joint orientation(pre rotation)
LocalRotation: rotate transform (xform -q -rotation & xform -q -rotateOrder)
PostRotation : rotate axis (xform -q -rotateAxis)
RotationPivotInverse: inverse of RotationPivot
ScalingOffset: translation compensates for the change in the scale pivot point (xform -q -scaleTranslation)
ScalingPivot: current scale pivot position (xform -q -scalePivot)
LocalScaling: scale transform (xform -q -scale)
ScalingPivotInverse: inverse of ScalingPivot
Zhihao, Data Platform - Autodesk
|
|
|
LocalTranslation : translate (xform -query -translation)
RotationOffset: translation compensates for the change in the rotate pivot point (xform -q -rotateTranslation)
RotationPivot: current rotate pivot position (xform -q -rotatePivot)
PreRotation : joint orientation(pre rotation)
LocalRotation: rotate transform (xform -q -rotation & xform -q -rotateOrder)
PostRotation : rotate axis (xform -q -rotateAxis)
RotationPivotInverse: inverse of RotationPivot
ScalingOffset: translation compensates for the change in the scale pivot point (xform -q -scaleTranslation)
ScalingPivot: current scale pivot position (xform -q -scalePivot)
LocalScaling: scale transform (xform -q -scale)
ScalingPivotInverse: inverse of ScalingPivot
--------------------------------------------------------------------------------
So,how to compute the “RotationPivotInverse” and “ScalingPivotInverse”
|
|
|
|
It’s the inverse matrix. You can get them through
KFbxMatrix::Inverse ( )
Zhihao, Data Platform - Autodesk
|
|
|
|
|
|