Browse Source

Merge pull request #362 from simonferquel/master

Max2Babylon - Fixed bone ordering problem
David Catuhe 10 năm trước cách đây
mục cha
commit
897fb2d94b

BIN
Exporters/3ds Max/Max2Babylon-0.14.1.zip


BIN
Exporters/3ds Max/Max2Babylon-0.15.zip


+ 13 - 4
Exporters/3ds Max/Max2Babylon/Exporter/BabylonExporter.Skeleton.cs

@@ -37,16 +37,25 @@ namespace Max2Babylon
             var gameBones = new List<IIGameNode>();
             var gameBones = new List<IIGameNode>();
             var boneIds = new List<int>();
             var boneIds = new List<int>();
             var bindPoseInfos = new List<BonePoseInfo>();
             var bindPoseInfos = new List<BonePoseInfo>();
+            for(int i = 0; i < skin.TotalSkinBoneCount; ++i)
+            {
+                bones.Add(null);
+                gameBones.Add(null);
+                boneIds.Add(-1);
+                bindPoseInfos.Add(null);
+            }
             for (var index = 0; index < skin.TotalSkinBoneCount; index++)
             for (var index = 0; index < skin.TotalSkinBoneCount; index++)
             {
             {
                 var gameBone = skin.GetIGameBone(index, false);
                 var gameBone = skin.GetIGameBone(index, false);
 
 
-                gameBones.Add(gameBone);
-                boneIds.Add(gameBone.NodeID);
-                bones.Add(new BabylonBone { index = index, name = gameBone.Name });
+                var sortedIndex = skinSortedBones[skin].IndexOf(gameBone.NodeID);
+
+                gameBones[sortedIndex] = (gameBone);
+                boneIds[sortedIndex] =(gameBone.NodeID);
+                bones[sortedIndex]=(new BabylonBone { index = sortedIndex, name = gameBone.Name });
 
 
                 var boneInitMatrix = gameBone.GetObjectTM(0);
                 var boneInitMatrix = gameBone.GetObjectTM(0);
-                bindPoseInfos.Add(new BonePoseInfo { AbsoluteTransform = boneInitMatrix });
+                bindPoseInfos[sortedIndex] = (new BonePoseInfo { AbsoluteTransform = boneInitMatrix });
             }
             }
 
 
             // fix hierarchy an generate animation keys
             // fix hierarchy an generate animation keys