Hi there,
I created a rig of a character with 2 sword directly in the same rig setup.
In the IK refs of the swords I have the following
I want to be able to have the sword relative to the global and local ctls, as well as hips (spine_C0_root), back (spine_C0_spineTop), on a movable ctl (sword_01_L_socket_C0_root) and on the hands of the character using the ik_hand_gun ctls.
It works as expected.
The thing is that, while animating, I noticed that I also needed a way to constraint the hands of the character to these swords. I then thought of adding my swords to the IK reference Array like so
But at the build of the rig, I have the following warnings, preventing me to have the behavior I want.
Connect : sword_01_R_C0 (control_01)
# Warning: Cycle on 'sword_01_R_C0_ik_cns_parentConstraint1.target[5].targetParentMatrix' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ik_cns_parentConstraint1.constraintTranslateX' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'ik_hand_gun_R0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ik_cns_parentConstraint1.target[5].targetParentMatrix' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'ik_hand_gun_L0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ik_cns_parentConstraint1.target[5].targetParentMatrix' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
Connect : sword_01_R_tipLocator_C0 (control_01)
# Warning: Cycle on 'sword_01_R_C0_ik_cns_parentConstraint1.target[5].targetParentMatrix' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
Connect : sword_01_L_UI_C0 (EPIC_control_01)
Connect : sword_01_L_C0 (control_01)
# Warning: Cycle on 'sword_01_R_C0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_L_C0_ik_cns_parentConstraint1.target[5].targetParentMatrix' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'ik_hand_gun_R0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_L_C0_ik_cns_parentConstraint1.constraintTranslateX' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ik_cns_parentConstraint1.target[5].targetParentMatrix' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'ik_hand_gun_L0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'ik_hand_gun_L0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'ik_hand_gun_R0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ik_cns_parentConstraint1.target[5].targetParentMatrix' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'ik_hand_gun_L0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'ik_hand_gun_R0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'ik_hand_gun_L0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'ik_hand_gun_R0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_L_C0_ik_cns_parentConstraint1.target[5].targetParentMatrix' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'ik_hand_gun_R0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ik_cns_parentConstraint1.target[5].targetParentMatrix' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'ik_hand_gun_L0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
Connect : sword_01_L_tipLocator_C0 (control_01)
# Warning: Cycle on 'sword_01_R_C0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_L_C0_ik_cns_parentConstraint1.target[5].targetParentMatrix' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'ik_hand_gun_R0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ik_cns_parentConstraint1.target[5].targetParentMatrix' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'ik_hand_gun_L0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
Connect : sword_01_L_socket_C0 (control_01)
Joints : global_C0 (control_01)
Joints : local_C0 (control_01)
# The parent components for: local_C0 don't have joint List in any of them use the root off guide.
Joints : body_C0 (control_01)
# The parent components for: body_C0 don't have joint List in any of them use the root off guide.
# Warning: Name: 0 starts with number and is not a valid Maya name. Component name prefix will be added
Joints : spine_C0 (EPIC_spine_01)
Joints : clavicle_L0 (EPIC_shoulder_01)
Joints : arm_L0 (EPIC_mannequin_arm_01)
# Warning: Cycle on 'sword_01_R_C0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'arm_L0_ik_ref.worldMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'arm_L0_ik_cns_parentConstraint1.target[6].targetParentMatrix' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_L_C0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_L_C0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'ik_hand_gun_R0_ctl.parentMatrix[0]' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
# Warning: Cycle on 'sword_01_R_C0_ik_cns_parentConstraint1.target[5].targetParentMatrix' may not evaluate as expected. (Use 'cycleCheck -e off' to disable this warning.)
What would be your approach to be able to have either the sword to follow a hand, or the hand to follow the sword ?
I’m OK with post scripts if needed but I really want this “feature” to be integrated in the rig, and not having to deal with other manual constraints while animating.
Thanks in advance.
Regards,
Sébastien