Преглед изворни кода

Merge pull request #3243 from bghgary/loader-bug-fixes

Fix glTF loader bugs
Raanan Weber пре 7 година
родитељ
комит
fe76b2ef63
1 измењених фајлова са 17 додато и 3 уклоњено
  1. 17 3
      loaders/src/glTF/2.0/babylon.glTFLoader.ts

+ 17 - 3
loaders/src/glTF/2.0/babylon.glTFLoader.ts

@@ -808,6 +808,10 @@ module BABYLON.GLTF2 {
         }
 
         private _loadSkin(context: string, skin: IGLTFSkin): Skeleton {
+            if (skin.babylonSkeleton) {
+                return skin.babylonSkeleton;
+            }
+
             const skeletonId = "skeleton" + skin.index;
             skin.babylonSkeleton = new Skeleton(skin.name || skeletonId, skeletonId, this._babylonScene);
 
@@ -1049,9 +1053,19 @@ module BABYLON.GLTF2 {
                     }
                 };
 
-                const keys = new Array(inputData.length);
-                for (let frameIndex = 0; frameIndex < inputData.length; frameIndex++) {
-                    keys[frameIndex] = getNextKey(frameIndex);
+                let keys: Array<any>;
+                if (inputData.length === 1) {
+                    let key = getNextKey(0);
+                    keys = [
+                        { frame: key.frame, value: key.value },
+                        { frame: key.frame + 1, value: key.value }
+                    ];
+                }
+                else {
+                    keys = new Array(inputData.length);
+                    for (let frameIndex = 0; frameIndex < inputData.length; frameIndex++) {
+                        keys[frameIndex] = getNextKey(frameIndex);
+                    }
                 }
 
                 if (targetPath === "influence") {