Announcements

Starting in December, we will archive content from the community that is 10 years and older. This FAQ provides more information.

Community
FBX Forum
Welcome to Autodesk’s FBX Forums. Share your knowledge, ask questions, and explore popular FBX topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Skeleton Bind Pose for bones not linked to clusters

4 REPLIES 4
Reply
Message 1 of 5
Anonymous
1609 Views, 4 Replies

Skeleton Bind Pose for bones not linked to clusters

Is there a way to access the original Bind Pose for a Skeleton Node without the Cluster data ?

From a KFbxCluster, i can access the bind pose transform of the bone used when rigging the mesh

KFbxXMatrix lClusterGlobalInitPosition;
lCluster->GetTransformLinkMatrix(lClusterGlobalInitPosition);


OK cool... but then I have 2 questions:
Q1: where can I find the similar binding pose transform for bones of the skeleton which are not used by any cluster ?
(by bones of the skeleton I mean the KFbxNodes of the hierarchy of nodes used to drive the bone animation for the skinning)
I don't seem to find that kind of property on a KFbxSkeleton ?

Q2: Is the KFbxNodes used to make the skeleton hierarchy MUST be KFbxSkeleton nodes ?
Or any KFbxNode type is accepted ?

Thanks

S
4 REPLIES 4
Message 2 of 5
Anonymous
in reply to: Anonymous

For Q1, if one bone is not used by cluster, you can get its global transform from its parent's global transform and it local transform.

For Q2, the answer is yes. Any node can be used as skeleton. For example, mesh, locator, null object.
Message 3 of 5
Anonymous
in reply to: Anonymous

"For Q1, if one bone is not used by cluster, you can get its global transform from its parent’s global transform and it local transform."

No it's not what i m looking for, this is giving me the "default" transformation which is not the same as the one used to when doing the rigging with the mesh.
If you take the Humanoid.fbx model, the skeleton transformation by default is going to be a man standing in a waiting pose where has the mesh by default is the man standing up straight with arms horizontal.

THe skeleton in it's default in that case is not in the binding position when the skeleton was rigged to the mesh.

You can get some of the bone position in that binding pose from the cluster "GetTransformLinkMatrix" call
But what about the bones of the hierarchy which have no CLuster attached to it ?

Ok for q2

THanks
Message 4 of 5
jiayang.xu
in reply to: Anonymous

Hi, samcake,
If there is no cluster attached to a bone in the hierarchy, that means this bone is not used in the binding.
Then you have to calculate its global transform at binding moment by yourself.
Imagine an hierachy: ParentBone->ChildBone, if ParentBone participated in the binding, but ChildBone did not, then there should be a cluster attached to ParentBone, but no any cluster attached to ChildBone.
From the parent cluster you can call “GetTransformLinkMatrix” to get the global transform of ParentBone at binding moment, then you can calculate the global transform of the ChildBone at binding like this:
ChildGlobalAtBinding = ParentGlobalAtBinding * ChildLocal.
I think this is what Nian means in his answer to Q1. It depends on which parent global transform you are using, the default one or the one at binding, then you can get corresponding global transform of Child.

BTW, you can also get global transform at binding from pose nodes of KFbxPose, each pose node are corresponding to the mesh or the binding bones. But if the bone does not participate the binding, I think it won't have corresponding pose node in the bindpose too.
But in one case, if there is a corrupted FBX file which store the bindpose info of a bone, but lost its cluster, then you can still get its global transform at binding from KFbxPose.
Message 5 of 5
ilan.keshet
in reply to: jiayang.xu

I'm running into the same issue

 

How is "ChildLocal" being found via FBX SDK when the data file may have animations in it, which could effect ChildLocal to be not the binding value. 

 

 

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report