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:
Diffstat (limited to 'io_scene_gltf2/blender/imp/gltf2_blender_scene.py')
-rwxr-xr-xio_scene_gltf2/blender/imp/gltf2_blender_scene.py22
1 files changed, 16 insertions, 6 deletions
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