Explorar o código

Merge pull request #297 from Jason0214/fix_none_skeleton_node

Fix crash on None armature object
Lu Jiacheng %!s(int64=5) %!d(string=hai) anos
pai
achega
ab954cd286
Modificáronse 2 ficheiros con 6 adicións e 3 borrados
  1. 1 1
      .travis.yml
  2. 5 2
      io_scene_godot/converters/mesh.py

+ 1 - 1
.travis.yml

@@ -8,7 +8,7 @@ cache:
 
 
 before_install:
 before_install:
     - sudo apt-get update
     - sudo apt-get update
-    - sudo apt-get install --no-install-recommends -y libsdl1.2debian python3-pip
+    - sudo apt-get install --no-install-recommends -y libsdl1.2debian libglu1 python3-pip python3-setuptools
     - sudo pip3 install -r requirements.txt
     - sudo pip3 install -r requirements.txt
 
 
 install:
 install:

+ 5 - 2
io_scene_godot/converters/mesh.py

@@ -42,8 +42,9 @@ def export_mesh_node(escn_file, export_settings, node, parent_gd_node):
                 armature_data is not None):
                 armature_data is not None):
             skeleton_node = armature.find_skeletion_node(parent_gd_node)
             skeleton_node = armature.find_skeletion_node(parent_gd_node)
             mesh_exporter.init_mesh_bones_data(skeleton_node)
             mesh_exporter.init_mesh_bones_data(skeleton_node)
-            mesh_node['skeleton'] = NodePath(
-                mesh_node.get_path(), skeleton_node.get_path())
+            if mesh_node is not None and skeleton_node is not None:
+                mesh_node['skeleton'] = NodePath(
+                    mesh_node.get_path(), skeleton_node.get_path())
 
 
         mesh_id = mesh_exporter.export_mesh(escn_file, export_settings)
         mesh_id = mesh_exporter.export_mesh(escn_file, export_settings)
 
 
@@ -146,6 +147,8 @@ class MeshResourceExporter:
     def init_mesh_bones_data(self, skeleton_node):
     def init_mesh_bones_data(self, skeleton_node):
         """Find the mapping relation between vertex groups
         """Find the mapping relation between vertex groups
         and bone id"""
         and bone id"""
+        if skeleton_node is None:
+            return
         for bone_name, bone_info in skeleton_node.bones.items():
         for bone_name, bone_info in skeleton_node.bones.items():
             group = self.object.vertex_groups.get(bone_name)
             group = self.object.vertex_groups.get(bone_name)
             if group is not None:
             if group is not None: