From b07bccfc1cd86c7e0bdcdbf8c4077d3ed9f3f53e Mon Sep 17 00:00:00 2001 From: poikilos <7557867+poikilos@users.noreply.github.com> Date: Tue, 9 Nov 2021 17:38:12 -0500 Subject: [PATCH] Ignore the parent type for getRealRotation. --- .../blender/hierarchy_of_empties_to_bones.py | 46 ++++++++++--------- 1 file changed, 25 insertions(+), 21 deletions(-) diff --git a/utilities/blender/hierarchy_of_empties_to_bones.py b/utilities/blender/hierarchy_of_empties_to_bones.py index 073b605..e68cc36 100644 --- a/utilities/blender/hierarchy_of_empties_to_bones.py +++ b/utilities/blender/hierarchy_of_empties_to_bones.py @@ -22,6 +22,10 @@ context = bpy.context print("") print("[ EnlivenMinetest/utilities/blender/hierarchy_of_empties_to_bones.py ] started") +# armature_display_type = 'STICK' +armature_display_type = 'OCTAHEDRAL' +# ^ Can be: ('OCTAHEDRAL', 'STICK', 'BBONE', 'ENVELOPE', 'WIRE') +# default: 'OCTAHEDRAL' def mat3_to_vec_roll(mat): ''' @@ -128,35 +132,35 @@ def getRealRotation(empty): - HENDRIX1 . ''' ancestor = empty.parent - if (ancestor is None) or (ancestor != 'EMPTY'): - return Quaternion(empty.rotation_quaternion) + if (ancestor is None): + return empty.rotation_quaternion ancestor = empty.parent.parent - if (ancestor is None) or (ancestor != 'EMPTY'): - return Quaternion(empty.rotation_quaternion) @ Quaternion(empty.parent.rotation_quaternion) + if (ancestor is None): + return empty.rotation_quaternion @ empty.parent.rotation_quaternion ancestor = empty.parent.parent.parent - if (ancestor is None) or (ancestor != 'EMPTY'): - return Quaternion(empty.rotation_quaternion) @ Quaternion(empty.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.rotation_quaternion) + if (ancestor is None): + return empty.rotation_quaternion @ empty.parent.rotation_quaternion @ empty.parent.parent.rotation_quaternion ancestor = empty.parent.parent.parent.parent - if (ancestor is None) or (ancestor != 'EMPTY'): - return Quaternion(empty.rotation_quaternion) @ Quaternion(empty.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.rotation_quaternion) + if (ancestor is None): + return empty.rotation_quaternion @ empty.parent.rotation_quaternion @ empty.parent.parent.rotation_quaternion @ empty.parent.parent.parent.rotation_quaternion ancestor = empty.parent.parent.parent.parent.parent - if (ancestor is None) or (ancestor != 'EMPTY'): - return Quaternion(empty.rotation_quaternion) @ Quaternion(empty.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.rotation_quaternion) + if (ancestor is None): + return empty.rotation_quaternion @ empty.parent.rotation_quaternion @ empty.parent.parent.rotation_quaternion @ empty.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.rotation_quaternion ancestor = empty.parent.parent.parent.parent.parent.parent - if (ancestor is None) or (ancestor != 'EMPTY'): - return Quaternion(empty.rotation_quaternion) @ Quaternion(empty.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.parent.rotation_quaternion) + if (ancestor is None): + return empty.rotation_quaternion @ empty.parent.rotation_quaternion @ empty.parent.parent.rotation_quaternion @ empty.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.parent.rotation_quaternion ancestor = empty.parent.parent.parent.parent.parent.parent.parent - if (ancestor is None) or (ancestor != 'EMPTY'): - return Quaternion(empty.rotation_quaternion) @ Quaternion(empty.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.parent.parent.rotation_quaternion) + if (ancestor is None): + return empty.rotation_quaternion @ empty.parent.rotation_quaternion @ empty.parent.parent.rotation_quaternion @ empty.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.parent.parent.rotation_quaternion ancestor = empty.parent.parent.parent.parent.parent.parent.parent.parent - if (ancestor is None) or (ancestor != 'EMPTY'): - return Quaternion(empty.rotation_quaternion) @ Quaternion(empty.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.parent.parent.parent.rotation_quaternion) + if (ancestor is None): + return empty.rotation_quaternion @ empty.parent.rotation_quaternion @ empty.parent.parent.rotation_quaternion @ empty.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.parent.parent.parent.rotation_quaternion ancestor = empty.parent.parent.parent.parent.parent.parent.parent.parent.parent - if (ancestor is None) or (ancestor != 'EMPTY'): - return Quaternion(empty.rotation_quaternion) @ Quaternion(empty.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.parent.parent.parent.parent.rotation_quaternion) + if (ancestor is None): + return empty.rotation_quaternion @ empty.parent.rotation_quaternion @ empty.parent.parent.rotation_quaternion @ empty.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.parent.parent.parent.parent.rotation_quaternion ancestor = empty.parent.parent.parent.parent.parent.parent.parent.parent.parent.parent - if (ancestor is None) or (ancestor != 'EMPTY'): - return Quaternion(empty.rotation_quaternion) @ Quaternion(empty.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.parent.parent.parent.parent.rotation_quaternion) @ Quaternion(empty.parent.parent.parent.parent.parent.parent.parent.parent.parent.rotation_quaternion) + if (ancestor is None): + return empty.rotation_quaternion @ empty.parent.rotation_quaternion @ empty.parent.parent.rotation_quaternion @ empty.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.parent.parent.parent.parent.rotation_quaternion @ empty.parent.parent.parent.parent.parent.parent.parent.parent.parent.rotation_quaternion raise NotImplementedError("Fake recursion isn't implemented for hierarchies this deep.") @@ -306,7 +310,7 @@ def makeSameChildrenFromRootEmpty(obj): # needed-help-with-creating-bones-in-python-using- # position-and-rotation-data/1209120>: armature = bpy.data.armatures.new("Armature") - armature.display_type = 'STICK' + armature.display_type = armature_display_type rig = bpy.data.objects.new("Armature", armature) context.scene.collection.objects.link(rig) context.view_layer.objects.active = rig