From d8258116362889d6d5f7af4e544f7b9f1abef1e8 Mon Sep 17 00:00:00 2001 From: Julien Duroure Date: Fri, 22 Apr 2022 21:23:45 +0200 Subject: glTF exporter: Use rest pose for armature when 'use current frame' is off --- io_scene_gltf2/__init__.py | 2 +- io_scene_gltf2/blender/exp/gltf2_blender_gather_tree.py | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'io_scene_gltf2') diff --git a/io_scene_gltf2/__init__.py b/io_scene_gltf2/__init__.py index 049574ac..ab55c77b 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, 32), + "version": (3, 2, 33), 'blender': (3, 1, 0), 'location': 'File > Import-Export', 'description': 'Import-Export as glTF 2.0', diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_tree.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_tree.py index e629a963..dc27e877 100644 --- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_tree.py +++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_tree.py @@ -169,7 +169,12 @@ class VExportTree: correction = Quaternion((2**0.5/2, -2**0.5/2, 0.0, 0.0)) node.matrix_world @= correction.to_matrix().to_4x4() elif node.blender_type == VExportNode.BONE: - node.matrix_world = self.nodes[node.armature].matrix_world @ blender_bone.matrix + if self.export_settings['gltf_current_frame'] is True: + # Use pose bone for TRS + node.matrix_world = self.nodes[node.armature].matrix_world @ blender_bone.matrix + else: + # Use edit bone for TRS --> REST pose will be used + node.matrix_world = self.nodes[node.armature].matrix_world @ blender_bone.bone.matrix_local axis_basis_change = Matrix.Identity(4) if self.export_settings[gltf2_blender_export_keys.YUP]: axis_basis_change = Matrix( -- cgit v1.2.3