diff --git a/__init__.py b/__init__.py index 5c52b690..8bef6749 100644 --- a/__init__.py +++ b/__init__.py @@ -34,8 +34,19 @@ def patched_gather_gltf(exporter, export_settings): export_user_extensions('hubs_gather_gltf_hook', export_settings, exporter._GlTF2Exporter__gltf) exporter._GlTF2Exporter__traverse(exporter._GlTF2Exporter__gltf.extensions) +# Monkey patch to add gather_joint_hook, has been merged upstrea for Blender 2.9 without the hubs_ prefix and should be removed once that ships +from io_scene_gltf2.blender.exp import gltf2_blender_gather_joints +from io_scene_gltf2.io.exp.gltf2_io_user_extensions import export_user_extensions +orig_gather_joint = gltf2_blender_gather_joints.gather_joint +def patched_gather_joint(blender_object, blender_bone, export_settings): + node = orig_gather_joint(blender_object, blender_bone, export_settings) + export_user_extensions('hubs_gather_joint_hook', export_settings, node, blender_bone) + return node + + def register(): gltf2_blender_export.__gather_gltf = patched_gather_gltf + gltf2_blender_gather_joints.gather_joint = patched_gather_joint components.register() settings.register() @@ -45,6 +56,7 @@ def register(): def unregister(): gltf2_blender_export.__gather_gltf = orig_gather_gltf + gltf2_blender_gather_joints.gather_joint = orig_gather_joint components.unregister() settings.unregister() @@ -118,7 +130,7 @@ def gather_material_hook(self, gltf2_object, blender_material, export_settings): required=False, ) - def gather_joint_hook(self, gltf2_object, blender_pose_bone, export_settings): + def hubs_gather_joint_hook(self, gltf2_object, blender_pose_bone, export_settings): if not self.properties.enabled: return self.add_hubs_components(gltf2_object, blender_pose_bone.bone, export_settings) diff --git a/gather_properties.py b/gather_properties.py index 90b1e81f..7178b4ca 100644 --- a/gather_properties.py +++ b/gather_properties.py @@ -83,6 +83,8 @@ def gather_lightmap_texture_info(blender_material, export_settings): nodes = blender_material.node_tree.nodes lightmap_node = next((n for n in nodes if isinstance(n, MozLightmapNode)), None) + if not lightmap_node: return + texture = lightmap_node.inputs.get("Lightmap") intensity = lightmap_node.intensity