Update ik_fk_switcher.py
This commit is contained in:
@@ -287,6 +287,7 @@ def get_original_fk_controls(): # ---------- DONE
|
||||
fk_ctrls = cmds.ls(sl=True)
|
||||
if len(fk_ctrls) != 3:
|
||||
assist_message("Incorrect number of controls selected. To apply an IK setup, you need to select 3 FK controls, in order of parent to child.", 4000)
|
||||
return None
|
||||
cmds.select(cl=True)
|
||||
return fk_ctrls
|
||||
|
||||
@@ -314,7 +315,10 @@ def create_ik_handle(parent_jnt, child_jnt, ik_ctrl): # ---------- DONE
|
||||
|
||||
def create_temp_ik_controls(): # DONE
|
||||
# STORES ORIGINAL SELECTED FK CONTROLS INTO VARIABLES
|
||||
parent_ctrl, middle_ctrl, child_ctrl = fk_ctrls = get_original_fk_controls()
|
||||
fk_ctrls = get_original_fk_controls()
|
||||
if fk_ctrls is None:
|
||||
return None
|
||||
parent_ctrl, middle_ctrl, child_ctrl = fk_ctrls
|
||||
check_if_setup_exists([parent_ctrl, middle_ctrl, child_ctrl])
|
||||
check_anim_layer(fk_ctrls)
|
||||
|
||||
@@ -425,7 +429,10 @@ def _fk_to_ik_impl():
|
||||
timeline_start, timeline_end, specific_timeline_mode = get_timeline_range()
|
||||
check_negative_time_range(timeline_start, timeline_end)
|
||||
###### CREATE CONTROLS ######
|
||||
[parent_ctrl, middle_ctrl, child_ctrl], [parent_jnt, middle_jnt, child_jnt], [ik_ctrl, pole_vector_ctrl] = fk_ctrls, ik_jnts, ik_ctrls = create_temp_ik_controls()
|
||||
result = create_temp_ik_controls()
|
||||
if result is None:
|
||||
return
|
||||
[parent_ctrl, middle_ctrl, child_ctrl], [parent_jnt, middle_jnt, child_jnt], [ik_ctrl, pole_vector_ctrl] = fk_ctrls, ik_jnts, ik_ctrls = result
|
||||
###### REPOSITION CONTROLS ######
|
||||
temp_constraints, ik_orient_constraint = set_temp_ik_controls_position(fk_ctrls, ik_jnts, ik_ctrls)
|
||||
|
||||
@@ -482,6 +489,7 @@ def get_original_ik_controls():
|
||||
ik_ctrls = cmds.ls(sl=True)
|
||||
if len(ik_ctrls) != 2:
|
||||
assist_message("Incorrect number of controls selected. To apply an FK setup, you need to select the Pole Vector first and then the IK Control, in order.", 4000)
|
||||
return None
|
||||
cmds.select(cl=True)
|
||||
return ik_ctrls
|
||||
|
||||
@@ -512,7 +520,10 @@ def get_ik_handle_joints(ik_handle):
|
||||
|
||||
def get_original_controls():
|
||||
# SEPARATES THE SELECTED CONTROLS INTO THEIR OWN VARIABLES
|
||||
pole_vector, ik_ctrl = get_original_ik_controls()
|
||||
ik_ctrls = get_original_ik_controls()
|
||||
if ik_ctrls is None:
|
||||
return None
|
||||
pole_vector, ik_ctrl = ik_ctrls
|
||||
check_if_setup_exists([pole_vector, ik_ctrl])
|
||||
ik_handle = get_ik_handle(pole_vector)
|
||||
parent_jnt, middle_jnt = get_ik_handle_joints(ik_handle)
|
||||
@@ -593,7 +604,10 @@ def _ik_to_fk_impl():
|
||||
timeline_start, timeline_end, specific_timeline_mode = get_timeline_range()
|
||||
check_negative_time_range(timeline_start, timeline_end)
|
||||
|
||||
pole_vector, ik_ctrl, ik_handle, parent_jnt, middle_jnt = get_original_controls()
|
||||
result = get_original_controls()
|
||||
if result is None:
|
||||
return
|
||||
pole_vector, ik_ctrl, ik_handle, parent_jnt, middle_jnt = result
|
||||
check_anim_layer([pole_vector, ik_ctrl])
|
||||
delete_visibility_keys(pole_vector, ik_ctrl)
|
||||
|
||||
@@ -1260,7 +1274,10 @@ def fk_to_ik():
|
||||
timeline_start, timeline_end, specific_timeline_mode = get_timeline_range()
|
||||
check_negative_time_range(timeline_start, timeline_end)
|
||||
###### CREATE CONTROLS ######
|
||||
[parent_ctrl, middle_ctrl, child_ctrl], [parent_jnt, middle_jnt, child_jnt], [ik_ctrl, pole_vector_ctrl] = fk_ctrls, ik_jnts, ik_ctrls = create_temp_ik_controls()
|
||||
result = create_temp_ik_controls()
|
||||
if result is None:
|
||||
return
|
||||
[parent_ctrl, middle_ctrl, child_ctrl], [parent_jnt, middle_jnt, child_jnt], [ik_ctrl, pole_vector_ctrl] = fk_ctrls, ik_jnts, ik_ctrls = result
|
||||
###### REPOSITION CONTROLS ######
|
||||
temp_constraints, ik_orient_constraint = set_temp_ik_controls_position(fk_ctrls, ik_jnts, ik_ctrls)
|
||||
|
||||
@@ -1440,7 +1457,10 @@ def ik_to_fk():
|
||||
timeline_start, timeline_end, specific_timeline_mode = get_timeline_range()
|
||||
check_negative_time_range(timeline_start, timeline_end)
|
||||
|
||||
pole_vector, ik_ctrl, ik_handle, parent_jnt, middle_jnt = get_original_controls()
|
||||
result = get_original_controls()
|
||||
if result is None:
|
||||
return
|
||||
pole_vector, ik_ctrl, ik_handle, parent_jnt, middle_jnt = result
|
||||
check_anim_layer([pole_vector, ik_ctrl])
|
||||
delete_visibility_keys(pole_vector, ik_ctrl)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user