From b294d4c7665469643b428950b189541699980cfe Mon Sep 17 00:00:00 2001
From: Julien Duroure <julien.duroure@gmail.com>
Date: Sun, 3 Apr 2022 10:18:34 +0200
Subject: [PATCH] glTF importer: fix when glTF file has no scene

---
 io_scene_gltf2/__init__.py                        |  2 +-
 io_scene_gltf2/blender/imp/gltf2_blender_scene.py | 12 +++++++++---
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/io_scene_gltf2/__init__.py b/io_scene_gltf2/__init__.py
index c844838b4..ec6ac40a4 100755
--- a/io_scene_gltf2/__init__.py
+++ b/io_scene_gltf2/__init__.py
@@ -4,7 +4,7 @@
 bl_info = {
     'name': 'glTF 2.0 format',
     'author': 'Julien Duroure, Scurest, Norbert Nopper, Urs Hanselmann, Moritz Becher, Benjamin Schmithüsen, Jim Eckerlein, and many external contributors',
-    "version": (3, 2, 22),
+    "version": (3, 2, 23),
     'blender': (3, 1, 0),
     '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 2092a6be6..672b68c81 100755
--- a/io_scene_gltf2/blender/imp/gltf2_blender_scene.py
+++ b/io_scene_gltf2/blender/imp/gltf2_blender_scene.py
@@ -36,12 +36,18 @@ class BlenderScene():
         BlenderNode.create_vnode(gltf, 'root')
 
         # User extensions before scene creation
-        import_user_extensions('gather_import_scene_after_nodes_hook', gltf, gltf.data.scenes[gltf.data.scene], scene)
+        gltf_scene = None
+        if gltf.data.scene is not None:
+            gltf_scene = gltf.data.scenes[gltf.data.scene]
+        import_user_extensions('gather_import_scene_after_nodes_hook', gltf, gltf_scene, scene)
 
-        # User extensions after scene creation
         BlenderScene.create_animations(gltf)
 
-        import_user_extensions('gather_import_scene_after_animation_hook', gltf, gltf.data.scenes[gltf.data.scene], scene)
+        # User extensions after scene creation
+        gltf_scene = None
+        if gltf.data.scene is not None:
+            gltf_scene = gltf.data.scenes[gltf.data.scene]
+        import_user_extensions('gather_import_scene_after_animation_hook', gltf, gltf_scene, scene)
 
         if bpy.context.mode != 'OBJECT':
             bpy.ops.object.mode_set(mode='OBJECT')
-- 
GitLab