Преглед на файлове

GltfLoader: warn if missing skinned spatial, fall back to root node (#1639)

Stephen Gold преди 3 години
родител
ревизия
0433a63bbd
променени са 1 файла, в които са добавени 9 реда и са изтрити 1 реда
  1. 9 1
      jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java

+ 9 - 1
jme3-plugins/src/gltf/java/com/jme3/scene/plugins/gltf/GltfLoader.java

@@ -1153,8 +1153,16 @@ public class GltfLoader implements AssetLoader {
             if (bw == null || bw.attachedSpatial == null) {
                 continue;
             }
+            String jointName = bw.joint.getName();
             SkinData skinData = fetchFromCache("skins", bw.skinIndex, SkinData.class);
-            skinData.skinningControl.getAttachmentsNode(bw.joint.getName()).attachChild(bw.attachedSpatial);
+            SkinningControl skinControl = skinData.skinningControl;
+            if (skinControl.getSpatial() == null) {
+                logger.log(Level.WARNING,
+                        "No skinned Spatial for joint \"{0}\" -- will skin the model's root node!",
+                        jointName);
+                rootNode.addControl(skinControl);
+            }
+            skinControl.getAttachmentsNode(jointName).attachChild(bw.attachedSpatial);
         }
     }