Skip to content

Commit 420cd87

Browse files
committed
use transform of skinned mesh as root bone parent
* don't assume its parent is the identity matrix
1 parent 6506aa7 commit 420cd87

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

Assets/FbxExporters/Editor/FbxExporter.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -810,7 +810,10 @@ private bool ExportSkeleton (SkinnedMeshRenderer skinnedMesh, FbxScene fbxScene)
810810
Matrix4x4 pose;
811811
if (fbxBone.GetSkeleton().GetSkeletonType() == FbxSkeleton.EType.eRoot) {
812812
// bind pose is local -> root. We want root -> local, so invert.
813-
pose = bindPoses[boneIndex].inverse; // assuming parent is identity matrix
813+
var parentTransform = skinnedMesh.transform;
814+
var parentMatrix = Matrix4x4.TRS (parentTransform.localPosition, parentTransform.localRotation, parentTransform.localScale);
815+
816+
pose = parentMatrix * bindPoses[boneIndex].inverse;
814817
} else {
815818
// Bind pose is local -> parent -> ... -> root.
816819
// We want parent -> local.

0 commit comments

Comments
 (0)