diff --git a/ops_snapping.py b/ops_snapping.py index 2eb406e..f3205fc 100644 --- a/ops_snapping.py +++ b/ops_snapping.py @@ -32,6 +32,13 @@ def sel_act_bones(b1, b2, copy_op): #args will be replaced by the actual bone na Bone1.bone.select = 0 Bone2.bone.select = 0 +def keyframe_bones(all_bones, names_to_keyframe): + for name in names_to_keyframe: + bone = all_bones[name] + bone.keyframe_insert("location") + bone.keyframe_insert("rotation_euler") + bone.keyframe_insert("scale") + ##### TORSO ##### class Operator_Torso_Snap_IK_FK(bpy.types.Operator): @@ -87,6 +94,8 @@ class Operator_Torso_Snap_IK_FK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + return {"FINISHED"} class Operator_Torso_Snap_FK_IK(bpy.types.Operator): @@ -146,6 +155,8 @@ class Operator_Torso_Snap_FK_IK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + return {"FINISHED"} class Operator_Torso_Snap_INV_UP(bpy.types.Operator): @@ -210,6 +221,8 @@ class Operator_Torso_Snap_INV_UP(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + return {"FINISHED"} @@ -268,6 +281,8 @@ class Operator_Torso_Snap_UP_INV(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + return {"FINISHED"} ##### HEAD ##### @@ -325,6 +340,8 @@ class Operator_Head_Snap_IK_FK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + return {"FINISHED"} class Operator_Head_Snap_FK_IK(bpy.types.Operator): @@ -380,6 +397,8 @@ class Operator_Head_Snap_FK_IK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + return {"FINISHED"} ##### ARM L ##### @@ -442,6 +461,8 @@ class Operator_Arm_L_Snap_IK_FK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + #Quadruped if arm_data['rig_type'] == 'Quadruped': @@ -472,6 +493,8 @@ class Operator_Arm_L_Snap_IK_FK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + return {"FINISHED"} class Operator_Arm_L_Snap_FK_IK(bpy.types.Operator): @@ -535,6 +558,8 @@ class Operator_Arm_L_Snap_FK_IK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + #Quadruped if arm_data['rig_type'] == 'Quadruped': @@ -580,6 +605,8 @@ class Operator_Arm_L_Snap_FK_IK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + return {"FINISHED"} ##### ARM R ##### @@ -642,6 +669,8 @@ class Operator_Arm_R_Snap_IK_FK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + #Quadruped if arm_data['rig_type'] == 'Quadruped': @@ -672,6 +701,8 @@ class Operator_Arm_R_Snap_IK_FK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + return {"FINISHED"} class Operator_Arm_R_Snap_FK_IK(bpy.types.Operator): @@ -735,6 +766,8 @@ class Operator_Arm_R_Snap_FK_IK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + #Quadruped if arm_data['rig_type'] == 'Quadruped': @@ -780,6 +813,8 @@ class Operator_Arm_R_Snap_FK_IK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + return {"FINISHED"} ##### LEG L ##### @@ -840,6 +875,8 @@ class Operator_Leg_L_Snap_IK_FK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + #Quadruped if arm_data['rig_type'] == 'Quadruped': @@ -870,6 +907,8 @@ class Operator_Leg_L_Snap_IK_FK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + return {"FINISHED"} class Operator_Leg_L_Snap_FK_IK(bpy.types.Operator): @@ -943,6 +982,8 @@ class Operator_Leg_L_Snap_FK_IK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + #Quadruped if arm_data['rig_type'] == 'Quadruped': @@ -989,6 +1030,8 @@ class Operator_Leg_L_Snap_FK_IK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + return {"FINISHED"} ##### LEG R ##### @@ -1049,6 +1092,8 @@ class Operator_Leg_R_Snap_IK_FK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + #Quadruped if arm_data['rig_type'] == 'Quadruped': @@ -1079,6 +1124,8 @@ class Operator_Leg_R_Snap_IK_FK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + return {"FINISHED"} class Operator_Leg_R_Snap_FK_IK(bpy.types.Operator): @@ -1152,6 +1199,8 @@ class Operator_Leg_R_Snap_FK_IK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + #Quadruped if arm_data['rig_type'] == 'Quadruped': @@ -1198,5 +1247,7 @@ class Operator_Leg_R_Snap_FK_IK(bpy.types.Operator): b.bone.select = 1 arm_data.layers[30] = False + keyframe_bones(p_bones, check_bones) + return {"FINISHED"}