Skip to content
weSkelDOCUMENTATION
Documentation/Animation/Switch FK/IK

Pose continuity

Switch FK/IK

Switch between FK and IK on Arm and Leg while preserving the selected limb pose as closely as possible.

ArmLegFK / IK

Switch FK/IK changes an Arm or Leg limb’s mode while matching its current pose.

Select a controller from a weSkel Arm or Leg module with both FK and IK modes.

FK / IK Match icon

In the weSkel_Anim shelf, click the FK / IK Match icon.

From Python
from weSkel.src.tools.animation import switch_fk_ik
switch_fk_ik() # Switch the selected limb at the current frame.
Element Behavior
Limb One or more controllers from the same limb and side. Controller shapes are also accepted.
Direction Determined automatically: FK → IK or IK → FK, according to the active mode.
Exact match The evaluated pose meets the tolerances: the switch applies immediately.
Approximation The viewport shows a proposal; a dialog lets you accept or cancel it.

The switch acts at the current frame, without rebuilding the rig. It does not convert an animation range.

Some poses cannot be reproduced exactly in the other mode. weSkel | Approximate FK / IK Match shows the measured differences for the proposal displayed in Maya.

1Direction 2Priorities 3Differences 4Decision
weSkel | Approximate FK / IK Match · Poseidon theme.
Reference Purpose
1 · Direction Switch direction, L / R side and Arm / Leg module type.
2 · Priorities Arm: wrist, then elbow and arm orientations.
Leg: foot and toes, then ankle, knee and leg orientations.
3 · Differences Output identifies the evaluated output; Position (cm), Angle (deg) and Scale / shear give its differences from the initial pose.
4 · Decision Accept approximation applies the proposal.
Cancel, or closing the dialog, restores the original pose without keys or an Undo entry.
State or action Effect
Auto Key OFF Changes values at the current frame without creating or editing keys.
Auto Key ON · already animated channel Changed, keyable channels receive a key at the current frame, or update the existing key.
Auto Key ON · channel without a curve Changes the value without automatically creating its first animation curve.
Undo Reverts the applied switch in one operation, including its key changes.
Redo Reapplies the recorded result.

On an animated channel, a value changed without a key may be replaced by the curve value when time is reevaluated. Matching a pose and recording it in the animation are separate operations.

Integrate into a picker

Retain a limb target to invoke the tool independently of Maya selection:

from weSkel.src.tools.animation import resolve_fk_ik_target, switch_fk_ik
# Capture the target from the selected limb.
target = resolve_fk_ik_target().target
# Invoke later from the picker, independently of Maya selection.
result = switch_fk_ik(target)
Element Purpose
Target FkIkTarget(instance_id, side): module root UUID and side l or r, resolved on each call.
result.applied Indicates whether the switch was applied.
result.report.exact Indicates whether the match meets the tolerances.
Conditions and limits
Situation Note
Ambiguous selection An empty selection, components, different limbs or sides, or a shared center controller do not identify one limb.
Playback or disabled Undo Stop playback and enable Maya Undo before switching.
Protected channels or incompatible connections The tool rejects affected channels: locks, animation layers, character sets, proxy attributes or connections other than supported direct animation curves.
Animated trajectory Matching concerns the current pose; it does not guarantee the trajectory, tangents or speed between frames.