From 9b3924e0c0f9577ec7282a67b562d6a793dff038 Mon Sep 17 00:00:00 2001 From: Alexander Gavrilov Date: Mon, 19 Nov 2018 16:20:14 +0300 Subject: Rigify: fix incomplete update of legacy mode to 2.8. Apply remaining * to @ and property via annotation changes (mainly in the UI script templates), and the error spam fix from b424215f53. --- rigify/legacy/rig_ui_pitchipoy_template.py | 92 +++++++++++++++--------------- rigify/legacy/rig_ui_template.py | 82 +++++++++++++------------- rigify/legacy/rigs/biped/limb_common.py | 4 +- rigify/legacy/rigs/pitchipoy/super_face.py | 7 ++- rigify/legacy/utils.py | 2 +- rigify/utils.py | 4 +- 6 files changed, 99 insertions(+), 92 deletions(-) diff --git a/rigify/legacy/rig_ui_pitchipoy_template.py b/rigify/legacy/rig_ui_pitchipoy_template.py index 5817f9c5..45e4f83a 100644 --- a/rigify/legacy/rig_ui_pitchipoy_template.py +++ b/rigify/legacy/rig_ui_pitchipoy_template.py @@ -135,11 +135,11 @@ def get_pose_matrix_in_other_space(mat, pose_bone): par_rest = Matrix() # Get matrix in bone's current transform space - smat = rest_inv * (par_rest * (par_inv * mat)) + smat = rest_inv @ (par_rest @ (par_inv @ mat)) # Compensate for non-local location #if not pose_bone.bone.use_local_location: - # loc = smat.to_translation() * (par_rest.inverted() * rest).to_quaternion() + # loc = smat.to_translation() @ (par_rest.inverted() @ rest).to_quaternion() # smat.translation = loc return smat @@ -166,8 +166,8 @@ def set_pose_translation(pose_bone, mat): else: par_rest = Matrix() - q = (par_rest.inverted() * rest).to_quaternion() - pose_bone.location = q * loc + q = (par_rest.inverted() @ rest).to_quaternion() + pose_bone.location = q @ loc def set_pose_rotation(pose_bone, mat): @@ -283,11 +283,11 @@ def match_pole_target(ik_first, ik_last, pole, match_bone, length): angle = rotation_difference(ik_first.matrix, match_bone.matrix) # Try compensating for the rotation difference in both directions - pv1 = Matrix.Rotation(angle, 4, ikv) * pv + pv1 = Matrix.Rotation(angle, 4, ikv) @ pv set_pole(pv1) ang1 = rotation_difference(ik_first.matrix, match_bone.matrix) - pv2 = Matrix.Rotation(-angle, 4, ikv) * pv + pv2 = Matrix.Rotation(-angle, 4, ikv) @ pv set_pole(pv2) ang2 = rotation_difference(ik_first.matrix, match_bone.matrix) @@ -421,8 +421,8 @@ def fk2ik_leg(obj, fk, ik): match_pose_scale(shin, shini) # Foot position - mat = mfoot.bone.matrix_local.inverted() * foot.bone.matrix_local - footmat = get_pose_matrix_in_other_space(mfooti.matrix, foot) * mat + mat = mfoot.bone.matrix_local.inverted() @ foot.bone.matrix_local + footmat = get_pose_matrix_in_other_space(mfooti.matrix, foot) @ mat set_pose_rotation(foot, footmat) set_pose_scale(foot, footmat) bpy.ops.object.mode_set(mode='OBJECT') @@ -439,8 +439,8 @@ def fk2ik_leg(obj, fk, ik): match_pose_scale(shin, shini) # Foot position - mat = mfoot.bone.matrix_local.inverted() * foot.bone.matrix_local - footmat = get_pose_matrix_in_other_space(mfooti.matrix, foot) * mat + mat = mfoot.bone.matrix_local.inverted() @ foot.bone.matrix_local + footmat = get_pose_matrix_in_other_space(mfooti.matrix, foot) @ mat set_pose_rotation(foot, footmat) set_pose_scale(foot, footmat) bpy.ops.object.mode_set(mode='OBJECT') @@ -478,8 +478,8 @@ def ik2fk_leg(obj, fk, ik): set_pose_rotation(footroll, Matrix()) # Foot position - mat = mfooti.bone.matrix_local.inverted() * footi.bone.matrix_local - footmat = get_pose_matrix_in_other_space(foot.matrix, footi) * mat + mat = mfooti.bone.matrix_local.inverted() @ footi.bone.matrix_local + footmat = get_pose_matrix_in_other_space(foot.matrix, footi) @ mat set_pose_translation(footi, footmat) set_pose_rotation(footi, footmat) set_pose_scale(footi, footmat) @@ -505,8 +505,8 @@ def ik2fk_leg(obj, fk, ik): set_pose_rotation(footroll, Matrix()) # Foot position - mat = mfooti.bone.matrix_local.inverted() * footi.bone.matrix_local - footmat = get_pose_matrix_in_other_space(mfoot.matrix, footi) * mat + mat = mfooti.bone.matrix_local.inverted() @ footi.bone.matrix_local + footmat = get_pose_matrix_in_other_space(mfoot.matrix, footi) @ mat set_pose_translation(footi, footmat) set_pose_rotation(footi, footmat) set_pose_scale(footi, footmat) @@ -528,13 +528,13 @@ class Rigify_Arm_FK2IK(bpy.types.Operator): bl_label = "Rigify Snap FK arm to IK" bl_options = {'UNDO'} - uarm_fk = bpy.props.StringProperty(name="Upper Arm FK Name") - farm_fk = bpy.props.StringProperty(name="Forerm FK Name") - hand_fk = bpy.props.StringProperty(name="Hand FK Name") + uarm_fk: bpy.props.StringProperty(name="Upper Arm FK Name") + farm_fk: bpy.props.StringProperty(name="Forerm FK Name") + hand_fk: bpy.props.StringProperty(name="Hand FK Name") - uarm_ik = bpy.props.StringProperty(name="Upper Arm IK Name") - farm_ik = bpy.props.StringProperty(name="Forearm IK Name") - hand_ik = bpy.props.StringProperty(name="Hand IK Name") + uarm_ik: bpy.props.StringProperty(name="Upper Arm IK Name") + farm_ik: bpy.props.StringProperty(name="Forearm IK Name") + hand_ik: bpy.props.StringProperty(name="Hand IK Name") @classmethod def poll(cls, context): @@ -557,14 +557,14 @@ class Rigify_Arm_IK2FK(bpy.types.Operator): bl_label = "Rigify Snap IK arm to FK" bl_options = {'UNDO'} - uarm_fk = bpy.props.StringProperty(name="Upper Arm FK Name") - farm_fk = bpy.props.StringProperty(name="Forerm FK Name") - hand_fk = bpy.props.StringProperty(name="Hand FK Name") + uarm_fk: bpy.props.StringProperty(name="Upper Arm FK Name") + farm_fk: bpy.props.StringProperty(name="Forerm FK Name") + hand_fk: bpy.props.StringProperty(name="Hand FK Name") - uarm_ik = bpy.props.StringProperty(name="Upper Arm IK Name") - farm_ik = bpy.props.StringProperty(name="Forearm IK Name") - hand_ik = bpy.props.StringProperty(name="Hand IK Name") - pole = bpy.props.StringProperty(name="Pole IK Name") + uarm_ik: bpy.props.StringProperty(name="Upper Arm IK Name") + farm_ik: bpy.props.StringProperty(name="Forearm IK Name") + hand_ik: bpy.props.StringProperty(name="Hand IK Name") + pole: bpy.props.StringProperty(name="Pole IK Name") @classmethod def poll(cls, context): @@ -587,15 +587,15 @@ class Rigify_Leg_FK2IK(bpy.types.Operator): bl_label = "Rigify Snap FK leg to IK" bl_options = {'UNDO'} - thigh_fk = bpy.props.StringProperty(name="Thigh FK Name") - shin_fk = bpy.props.StringProperty(name="Shin FK Name") - foot_fk = bpy.props.StringProperty(name="Foot FK Name") - mfoot_fk = bpy.props.StringProperty(name="MFoot FK Name") + thigh_fk: bpy.props.StringProperty(name="Thigh FK Name") + shin_fk: bpy.props.StringProperty(name="Shin FK Name") + foot_fk: bpy.props.StringProperty(name="Foot FK Name") + mfoot_fk: bpy.props.StringProperty(name="MFoot FK Name") - thigh_ik = bpy.props.StringProperty(name="Thigh IK Name") - shin_ik = bpy.props.StringProperty(name="Shin IK Name") - foot_ik = bpy.props.StringProperty(name="Foot IK Name") - mfoot_ik = bpy.props.StringProperty(name="MFoot IK Name") + thigh_ik: bpy.props.StringProperty(name="Thigh IK Name") + shin_ik: bpy.props.StringProperty(name="Shin IK Name") + foot_ik: bpy.props.StringProperty(name="Foot IK Name") + mfoot_ik: bpy.props.StringProperty(name="MFoot IK Name") @classmethod def poll(cls, context): @@ -618,16 +618,16 @@ class Rigify_Leg_IK2FK(bpy.types.Operator): bl_label = "Rigify Snap IK leg to FK" bl_options = {'UNDO'} - thigh_fk = bpy.props.StringProperty(name="Thigh FK Name") - shin_fk = bpy.props.StringProperty(name="Shin FK Name") - mfoot_fk = bpy.props.StringProperty(name="MFoot FK Name") - foot_fk = bpy.props.StringProperty(name="Foot FK Name") - thigh_ik = bpy.props.StringProperty(name="Thigh IK Name") - shin_ik = bpy.props.StringProperty(name="Shin IK Name") - foot_ik = bpy.props.StringProperty(name="Foot IK Name") - footroll = bpy.props.StringProperty(name="Foot Roll Name") - pole = bpy.props.StringProperty(name="Pole IK Name") - mfoot_ik = bpy.props.StringProperty(name="MFoot IK Name") + thigh_fk: bpy.props.StringProperty(name="Thigh FK Name") + shin_fk: bpy.props.StringProperty(name="Shin FK Name") + mfoot_fk: bpy.props.StringProperty(name="MFoot FK Name") + foot_fk: bpy.props.StringProperty(name="Foot FK Name") + thigh_ik: bpy.props.StringProperty(name="Thigh IK Name") + shin_ik: bpy.props.StringProperty(name="Shin IK Name") + foot_ik: bpy.props.StringProperty(name="Foot IK Name") + footroll: bpy.props.StringProperty(name="Foot Roll Name") + pole: bpy.props.StringProperty(name="Pole IK Name") + mfoot_ik: bpy.props.StringProperty(name="MFoot IK Name") @classmethod @@ -653,6 +653,7 @@ class RigUI(bpy.types.Panel): bl_region_type = 'UI' bl_label = "Rig Main Properties" bl_idname = rig_id + "_PT_rig_ui" + bl_category = 'View' @classmethod def poll(self, context): @@ -696,6 +697,7 @@ class RigLayers(bpy.types.Panel): bl_region_type = 'UI' bl_label = "Rig Layers" bl_idname = rig_id + "_PT_rig_layers" + bl_category = 'View' @classmethod def poll(self, context): diff --git a/rigify/legacy/rig_ui_template.py b/rigify/legacy/rig_ui_template.py index 717410da..cab5674f 100644 --- a/rigify/legacy/rig_ui_template.py +++ b/rigify/legacy/rig_ui_template.py @@ -83,11 +83,11 @@ def get_pose_matrix_in_other_space(mat, pose_bone): par_rest = Matrix() # Get matrix in bone's current transform space - smat = rest_inv * (par_rest * (par_inv * mat)) + smat = rest_inv @ (par_rest @ (par_inv @ mat)) # Compensate for non-local location #if not pose_bone.bone.use_local_location: - # loc = smat.to_translation() * (par_rest.inverted() * rest).to_quaternion() + # loc = smat.to_translation() @ (par_rest.inverted() @ rest).to_quaternion() # smat.translation = loc return smat @@ -114,8 +114,8 @@ def set_pose_translation(pose_bone, mat): else: par_rest = Matrix() - q = (par_rest.inverted() * rest).to_quaternion() - pose_bone.location = q * loc + q = (par_rest.inverted() @ rest).to_quaternion() + pose_bone.location = q @ loc def set_pose_rotation(pose_bone, mat): @@ -219,11 +219,11 @@ def match_pole_target(ik_first, ik_last, pole, match_bone, length): angle = rotation_difference(ik_first.matrix, match_bone.matrix) # Try compensating for the rotation difference in both directions - pv1 = Matrix.Rotation(angle, 4, ikv) * pv + pv1 = Matrix.Rotation(angle, 4, ikv) @ pv set_pole(pv1) ang1 = rotation_difference(ik_first.matrix, match_bone.matrix) - pv2 = Matrix.Rotation(-angle, 4, ikv) * pv + pv2 = Matrix.Rotation(-angle, 4, ikv) @ pv set_pole(pv2) ang2 = rotation_difference(ik_first.matrix, match_bone.matrix) @@ -322,8 +322,8 @@ def fk2ik_leg(obj, fk, ik): match_pose_scale(shin, shini) # Foot position - mat = mfoot.bone.matrix_local.inverted() * foot.bone.matrix_local - footmat = get_pose_matrix_in_other_space(mfooti.matrix, foot) * mat + mat = mfoot.bone.matrix_local.inverted() @ foot.bone.matrix_local + footmat = get_pose_matrix_in_other_space(mfooti.matrix, foot) @ mat set_pose_rotation(foot, footmat) set_pose_scale(foot, footmat) bpy.ops.object.mode_set(mode='OBJECT') @@ -353,8 +353,8 @@ def ik2fk_leg(obj, fk, ik): set_pose_rotation(footroll, Matrix()) # Foot position - mat = mfooti.bone.matrix_local.inverted() * footi.bone.matrix_local - footmat = get_pose_matrix_in_other_space(mfoot.matrix, footi) * mat + mat = mfooti.bone.matrix_local.inverted() @ footi.bone.matrix_local + footmat = get_pose_matrix_in_other_space(mfoot.matrix, footi) @ mat set_pose_translation(footi, footmat) set_pose_rotation(footi, footmat) set_pose_scale(footi, footmat) @@ -376,13 +376,13 @@ class Rigify_Arm_FK2IK(bpy.types.Operator): bl_label = "Rigify Snap FK arm to IK" bl_options = {'UNDO'} - uarm_fk = bpy.props.StringProperty(name="Upper Arm FK Name") - farm_fk = bpy.props.StringProperty(name="Forerm FK Name") - hand_fk = bpy.props.StringProperty(name="Hand FK Name") + uarm_fk: bpy.props.StringProperty(name="Upper Arm FK Name") + farm_fk: bpy.props.StringProperty(name="Forerm FK Name") + hand_fk: bpy.props.StringProperty(name="Hand FK Name") - uarm_ik = bpy.props.StringProperty(name="Upper Arm IK Name") - farm_ik = bpy.props.StringProperty(name="Forearm IK Name") - hand_ik = bpy.props.StringProperty(name="Hand IK Name") + uarm_ik: bpy.props.StringProperty(name="Upper Arm IK Name") + farm_ik: bpy.props.StringProperty(name="Forearm IK Name") + hand_ik: bpy.props.StringProperty(name="Hand IK Name") @classmethod def poll(cls, context): @@ -405,14 +405,14 @@ class Rigify_Arm_IK2FK(bpy.types.Operator): bl_label = "Rigify Snap IK arm to FK" bl_options = {'UNDO'} - uarm_fk = bpy.props.StringProperty(name="Upper Arm FK Name") - farm_fk = bpy.props.StringProperty(name="Forerm FK Name") - hand_fk = bpy.props.StringProperty(name="Hand FK Name") + uarm_fk: bpy.props.StringProperty(name="Upper Arm FK Name") + farm_fk: bpy.props.StringProperty(name="Forerm FK Name") + hand_fk: bpy.props.StringProperty(name="Hand FK Name") - uarm_ik = bpy.props.StringProperty(name="Upper Arm IK Name") - farm_ik = bpy.props.StringProperty(name="Forearm IK Name") - hand_ik = bpy.props.StringProperty(name="Hand IK Name") - pole = bpy.props.StringProperty(name="Pole IK Name") + uarm_ik: bpy.props.StringProperty(name="Upper Arm IK Name") + farm_ik: bpy.props.StringProperty(name="Forearm IK Name") + hand_ik: bpy.props.StringProperty(name="Hand IK Name") + pole: bpy.props.StringProperty(name="Pole IK Name") @classmethod def poll(cls, context): @@ -435,15 +435,15 @@ class Rigify_Leg_FK2IK(bpy.types.Operator): bl_label = "Rigify Snap FK leg to IK" bl_options = {'UNDO'} - thigh_fk = bpy.props.StringProperty(name="Thigh FK Name") - shin_fk = bpy.props.StringProperty(name="Shin FK Name") - foot_fk = bpy.props.StringProperty(name="Foot FK Name") - mfoot_fk = bpy.props.StringProperty(name="MFoot FK Name") + thigh_fk: bpy.props.StringProperty(name="Thigh FK Name") + shin_fk: bpy.props.StringProperty(name="Shin FK Name") + foot_fk: bpy.props.StringProperty(name="Foot FK Name") + mfoot_fk: bpy.props.StringProperty(name="MFoot FK Name") - thigh_ik = bpy.props.StringProperty(name="Thigh IK Name") - shin_ik = bpy.props.StringProperty(name="Shin IK Name") - foot_ik = bpy.props.StringProperty(name="Foot IK Name") - mfoot_ik = bpy.props.StringProperty(name="MFoot IK Name") + thigh_ik: bpy.props.StringProperty(name="Thigh IK Name") + shin_ik: bpy.props.StringProperty(name="Shin IK Name") + foot_ik: bpy.props.StringProperty(name="Foot IK Name") + mfoot_ik: bpy.props.StringProperty(name="MFoot IK Name") @classmethod def poll(cls, context): @@ -466,16 +466,16 @@ class Rigify_Leg_IK2FK(bpy.types.Operator): bl_label = "Rigify Snap IK leg to FK" bl_options = {'UNDO'} - thigh_fk = bpy.props.StringProperty(name="Thigh FK Name") - shin_fk = bpy.props.StringProperty(name="Shin FK Name") - mfoot_fk = bpy.props.StringProperty(name="MFoot FK Name") + thigh_fk: bpy.props.StringProperty(name="Thigh FK Name") + shin_fk: bpy.props.StringProperty(name="Shin FK Name") + mfoot_fk: bpy.props.StringProperty(name="MFoot FK Name") - thigh_ik = bpy.props.StringProperty(name="Thigh IK Name") - shin_ik = bpy.props.StringProperty(name="Shin IK Name") - foot_ik = bpy.props.StringProperty(name="Foot IK Name") - footroll = bpy.props.StringProperty(name="Foot Roll Name") - pole = bpy.props.StringProperty(name="Pole IK Name") - mfoot_ik = bpy.props.StringProperty(name="MFoot IK Name") + thigh_ik: bpy.props.StringProperty(name="Thigh IK Name") + shin_ik: bpy.props.StringProperty(name="Shin IK Name") + foot_ik: bpy.props.StringProperty(name="Foot IK Name") + footroll: bpy.props.StringProperty(name="Foot Roll Name") + pole: bpy.props.StringProperty(name="Pole IK Name") + mfoot_ik: bpy.props.StringProperty(name="MFoot IK Name") @classmethod def poll(cls, context): @@ -500,6 +500,7 @@ class RigUI(bpy.types.Panel): bl_region_type = 'UI' bl_label = "Rig Main Properties" bl_idname = rig_id + "_PT_rig_ui" + bl_category = 'View' @classmethod def poll(self, context): @@ -543,6 +544,7 @@ class RigLayers(bpy.types.Panel): bl_region_type = 'UI' bl_label = "Rig Layers" bl_idname = rig_id + "_PT_rig_layers" + bl_category = 'View' @classmethod def poll(self, context): diff --git a/rigify/legacy/rigs/biped/limb_common.py b/rigify/legacy/rigs/biped/limb_common.py index 73e9ad34..05e3e59c 100644 --- a/rigify/legacy/rigs/biped/limb_common.py +++ b/rigify/legacy/rigs/biped/limb_common.py @@ -416,11 +416,11 @@ class IKLimb: v1 = flimb_e.tail - ulimb_e.head if 'X' in self.primary_rotation_axis or 'Y' in self.primary_rotation_axis: v2 = v1.cross(flimb_e.x_axis) - if (v2 * flimb_e.z_axis) > 0.0: + if (v2 @ flimb_e.z_axis) > 0.0: v2 *= -1.0 else: v2 = v1.cross(flimb_e.z_axis) - if (v2 * flimb_e.x_axis) < 0.0: + if (v2 @ flimb_e.x_axis) < 0.0: v2 *= -1.0 v2.normalize() v2 *= v1.length diff --git a/rigify/legacy/rigs/pitchipoy/super_face.py b/rigify/legacy/rigs/pitchipoy/super_face.py index c999ae9a..32097d43 100644 --- a/rigify/legacy/rigs/pitchipoy/super_face.py +++ b/rigify/legacy/rigs/pitchipoy/super_face.py @@ -741,8 +741,10 @@ class Rig: 'DEF-chin.R' : 'lips.R', 'DEF-jaw.R.001' : 'chin.R', 'DEF-brow.T.L.003' : 'nose', + 'DEF-ear.L' : None, 'DEF-ear.L.003' : 'ear.L.004', 'DEF-ear.L.004' : 'ear.L', + 'DEF-ear.R' : None, 'DEF-ear.R.003' : 'ear.R.004', 'DEF-ear.R.004' : 'ear.R', 'DEF-lip.B.L.001' : 'lips.L', @@ -769,8 +771,9 @@ class Rig: pattern = r'^DEF-(\w+\.?\w?\.?\w?)(\.?)(\d*?)(\d?)$' for bone in [ bone for bone in all_bones['deform']['all'] if 'lid' not in bone ]: - if bone in list( def_specials.keys() ): - self.make_constraits('def_tweak', bone, def_specials[bone] ) + if bone in def_specials: + if def_specials[bone] is not None: + self.make_constraits('def_tweak', bone, def_specials[bone] ) else: matches = re.match( pattern, bone ).groups() if len( matches ) > 1 and matches[-1]: diff --git a/rigify/legacy/utils.py b/rigify/legacy/utils.py index 1f017022..632dcb26 100644 --- a/rigify/legacy/utils.py +++ b/rigify/legacy/utils.py @@ -617,7 +617,7 @@ def align_bone_roll(obj, bone1, bone2): # Check if we rolled in the right direction x3 = rot_mat @ bone1_e.x_axis - check = x2 * x3 + check = x2 @ x3 # If not, reverse if check < 0.9999: diff --git a/rigify/utils.py b/rigify/utils.py index 2722659d..20dae315 100644 --- a/rigify/utils.py +++ b/rigify/utils.py @@ -800,8 +800,8 @@ def align_bone_roll(obj, bone1, bone2): rot_mat = Matrix.Rotation(angle, 3, axis) # Roll factor - x3 = rot_mat * x1 - dot = x2 * x3 + x3 = rot_mat @ x1 + dot = x2 @ x3 if dot > 1.0: dot = 1.0 elif dot < -1.0: -- cgit v1.2.3