Skip to content

Commit 9cb3825

Browse files
committed
take parent of root bone into account when calculating pose
- can't assume that bone has same parent as skinned mesh
1 parent 0a4dfb3 commit 9cb3825

File tree

1 file changed

+1
-4
lines changed

1 file changed

+1
-4
lines changed

Assets/FbxExporters/Editor/FbxExporter.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -862,10 +862,7 @@ private bool ExportSkeleton (SkinnedMeshRenderer skinnedMesh, FbxScene fbxScene)
862862

863863
if (fbxBone.GetSkeleton ().GetSkeletonType () == FbxSkeleton.EType.eRoot) {
864864
// bind pose is local -> root. We want root -> local, so invert.
865-
var parentTransform = skinnedMesh.transform;
866-
var parentMatrix = Matrix4x4.TRS (parentTransform.localPosition, parentTransform.localRotation, parentTransform.localScale);
867-
868-
pose = parentMatrix * bindPose.inverse;
865+
pose = (unityBone.parent.worldToLocalMatrix * skinnedMesh.transform.localToWorldMatrix * bindPose.inverse);
869866
} else {
870867
// Bind pose is local -> parent -> ... -> root.
871868
// We want parent -> local.

0 commit comments

Comments
 (0)