Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Duroure <julien.duroure@gmail.com>2020-03-11 08:45:07 +0300
committerJulien Duroure <julien.duroure@gmail.com>2020-03-11 08:45:07 +0300
commite4269fc795cfbadf058a6315474cfc1443091922 (patch)
tree603aab5e9bdaed483cd166a14e8a9e8023009b7b
parent65bad4212eb91b45e82da82be1ca71b3dcd5f16e (diff)
glTF importer: bugfix when scene has no nodes
-rwxr-xr-xio_scene_gltf2/__init__.py2
-rwxr-xr-xio_scene_gltf2/blender/imp/gltf2_blender_scene.py22
2 files changed, 17 insertions, 7 deletions
diff --git a/io_scene_gltf2/__init__.py b/io_scene_gltf2/__init__.py
index c42cbc75..61ab3dc3 100755
--- a/io_scene_gltf2/__init__.py
+++ b/io_scene_gltf2/__init__.py
@@ -15,7 +15,7 @@
bl_info = {
'name': 'glTF 2.0 format',
'author': 'Julien Duroure, Norbert Nopper, Urs Hanselmann, Moritz Becher, Benjamin Schmithüsen, Jim Eckerlein, and many external contributors',
- "version": (1, 2, 39),
+ "version": (1, 2, 40),
'blender': (2, 82, 7),
'location': 'File > Import-Export',
'description': 'Import-Export as glTF 2.0',
diff --git a/io_scene_gltf2/blender/imp/gltf2_blender_scene.py b/io_scene_gltf2/blender/imp/gltf2_blender_scene.py
index 3c2a8619..691ced91 100755
--- a/io_scene_gltf2/blender/imp/gltf2_blender_scene.py
+++ b/io_scene_gltf2/blender/imp/gltf2_blender_scene.py
@@ -77,17 +77,27 @@ class BlenderScene():
"""Make the first root object from the default glTF scene active.
If no default scene, use the first scene, or just any root object.
"""
- if gltf.data.scenes:
- pyscene = gltf.data.scenes[gltf.data.scene or 0]
- vnode = gltf.vnodes[pyscene.nodes[0]]
- if gltf.vnodes[vnode.parent].type != VNode.DummyRoot:
- vnode = gltf.vnodes[vnode.parent]
+ vnode = None
- else:
+ if gltf.data.scene is not None:
+ pyscene = gltf.data.scenes[gltf.data.scene]
+ if pyscene.nodes:
+ vnode = gltf.vnodes[pyscene.nodes[0]]
+
+ if not vnode:
+ for pyscene in gltf.data.scenes or []:
+ if pyscene.nodes:
+ vnode = gltf.vnodes[pyscene.nodes[0]]
+ break
+
+ if not vnode:
vnode = gltf.vnodes['root']
if vnode.type == VNode.DummyRoot:
if not vnode.children:
return # no nodes
vnode = gltf.vnodes[vnode.children[0]]
+ if vnode.type == VNode.Bone:
+ vnode = gltf.vnodes[vnode.bone_arma]
+
bpy.context.view_layer.objects.active = vnode.blender_object