# 简介¶

IK简化了动画过程，并且可以用较少的努力制作更高级的动画。

IK允许你摆放骨骼链中的最后一个骨骼，并且其他骨骼将自动定位。这就像移动某人的手指会使他的手臂跟随它。通过正常的姿势技术，是你必须从根骨开始，并且依次设置骨骼，直到到达尖端骨骼：移动每个父骨骼时，其子级骨骼将继承其位置和旋转。因此，做出微小的姿态变化都会将变得越来越难控制，因为你也许必须首先调整所有的父级骨骼才完成姿态。

通过使用IK有效地避免了这一问题。

## Automatic IK 自动IK¶

参考

- 模式
姿态模式

- 面板

自动IK是快速摆放姿态的工具，在姿态模式下可以在3D视图的工具架中启用。当启用自动IK选项时，变换一个骨骼将激活反向运动学，并旋转父级骨骼，父级的父级等，以跟随选定的骨骼。如果子级 *连接* 到它，则IK链只能从一个子级延伸到父级骨骼。

链条的长度可以通过按 `Ctrl-PageUp` 或 `Ctrl-WheelDown` 增加（如果还有连接的父级可以添加到它），可以通过按 `Ctrl-PageDown` 或 `Ctrl-WheelUp` 减少。然而，链的初始长度为0，这有效地意味着尽可能地远离跟随父骨骼的连接，没有长度限制。所以按 `Ctrl-PageUp` 第一次将链条长度设置为1（仅移动所选骨骼），然后按 `Ctrl-PageDown` 在这一点现在将其设置为0（无限制）。因此，你必须从初始状态按 `Ctrl-PageUp` *多次* 设置大于1的有限链长度。

这是比可以配置的IK约束， 有更多受限的功能，但它可以用于快速摆放姿态。

## Armature IK Panel 骨架IK面板¶

参考

- 模式
姿态模式

- 面板

该面板用于为骨架选择IK解算器类型。 *标准* 或 *iTaSC* 。大多数时候，人们会使用 *标准* IK解算。

### Standard¶

TODO.

### iTaSC¶

iTaSC stands for instantaneous Task Specification using Constraints.

iTaSC uses a different method to compute the Jacobian, which makes it able to handle other constraints than just end effectors position and orientation: iTaSC is a generic multi-constraint IK solver. However, this capability is not yet fully exploited in the current implementation, only two other types of constraints can be handled: Distance in the Cartesian space, and Joint Rotation in the joint space. The first one allows maintaining an end effector inside, at, or outside a sphere centered on a target position, the second one is the capability to control directly the rotation of a bone relative to its parent. Those interested in the mathematics can find a short description of the method used to build the Jacobian here.

iTaSC accepts a mix of constraints, and multiple constraints per bone: the solver computes the optimal pose according to the respective weights of each constraint. This is a major improvement from the current constraint system where constraints are solved one by one in order of definition so that conflicting constraints overwrite each other.

- Precision
The maximum variation in Blender unit of the end effector between two successive iterations at which a pose is obtained that is stable enough and the solver should stop the iterations. Lower values means higher precision on the end effector position.

- Iterations
The upper bound for the number of iterations.

- Solver
Selects the inverse Jacobian solver that iTaSC will use.

- SDLS
Computes the damping automatically by estimating the level of 'cancelation' in the armature kinematics. This method works well with the Copy Pose constraint but has the drawback of damping more than necessary around the singular pose, which means slower movements. Of course, this is only noticeable in Simulation mode.

- DLS
Computes the damping manually which can provide more reactivity and more precision.

- Damping Max
Maximum amount of damping. Smaller values means less damping, hence more velocity and better precision but also more risk of oscillation at singular pose. 0 means no damping at all.

- Damping Epsilon
Range of the damping zone around singular pose. Smaller values means a smaller zone of control and greater risk of passing over the singular pose, which means oscillation.

Note

*Damping*and*Epsilon*must be tuned for each armature. You should use the smallest values that preserve stability.

Note

The SDLS solver does not work together with a Distance constraint. You must use the DLS solver if you are going to have a singular pose in your animation with the Distance constraint.

Both solvers perform well if you do not have a singular pose.

#### Animation¶

In Animation mode, iTaSC operates like an IK-solver: it is stateless and uses the pose from F-curves interpolation as the start pose before the IK convergence. The target velocity is ignored and the solver converges until the given precision is obtained. Still the new solver is usually faster than the old one and provides features that are inherent to iTaSC: multiple targets per bone and multiple types of constraints.

#### Simulation¶

The Simulation mode is the stateful mode of the solver: it estimates the target's velocity, operates in a 'true time' context, ignores rotation from keyframes (except via a joint rotation constraint) and builds up a state cache automatically.

- Reiteration
- Never
The solver starts from the rest pose and does not reiterate (converges) even for the first frame. This means that it will take a few frames to get to the target at the start of the animation.

- Initial
The solver starts from the rest pose and re-iterates until the given precision is achieved, but only on the first frame (i.e. a frame which doesn't have any previous frame in the cache). This option basically allows you to choose a different start pose than the rest pose and it is the default value. For the subsequent frames, the solver will track the target by integrating the joint velocity computed by the Jacobian solver over the time interval that the frame represents. The precision of the tracking depends on the feedback coefficient, number of substeps and velocity of the target.

- Always
The solver re-iterates on each frame until the given precision is achieved. This option omits most of the iTaSC dynamic behavior: the maximum joint velocity and the continuity between frames is not guaranteed anymore in compensation of better precision on the end effector positions. It is an intermediate mode between

*Animation*and real time*Simulation*.

- Auto Step
Use this option if you want to let the solver set how many substeps should be executed for each frame. A substep is a subdivision on the time between two frames for which the solver evaluates the IK equation and updates the joint position. More substeps means more processing but better precision on tracking the targets. The auto step algorithm estimates the optimal number of steps to get the best trade-off between processing and precision. It works by estimation of the nonlinearity of the pose and by limiting the amplitude of joint variation during a substep. It can be configured with next two parameters:

- Min
Proposed minimum substep duration (in second). The auto step algorithm may reduce the substep further based on joint velocity.

- Max
Maximum substep duration (in second). The auto step algorithm will not allow substep longer than this value.

- Steps
If Auto Step is disabled, you can choose a fixed number of substeps with this parameter. Substep should not be longer than 10ms, which means the number of steps is 4 for a 25 fps animation. If the armature seems unstable (vibrates) between frames, you can improve the stability by increasing the number of steps.

- Feedback
Coefficient on end effector position error to set corrective joint velocity. The time constant of the error correction is the inverse of this value. However, this parameter has little effect on the dynamic of the armature since the algorithm evaluates the target velocity in any case. Setting this parameter to 0 means 'opening the loop': the solver tracks the velocity but not the position; the error will accumulate rapidly. Setting this value too high means an excessive amount of correction and risk of instability. The value should be in the range 20-100. Default value is 20, which means that tracking errors are corrected in a typical time of 100-200ms. The feedback coefficient is the reason why the armature continues to move slightly in Simulation mode even if the target has stopped moving: the residual error is progressively suppressed frame after frame.

- Max Velocity
Indicative maximum joint velocity in radian per second. This parameter has an important effect on the armature dynamic. Smaller value will cause the armature to move slowly and lag behind if the targets are moving rapidly. You can simulate an inertia by setting this parameter to a low value.

## 骨骼 IK 面板¶

参考

- 模式
姿态模式

- 面板

该面板用于控制 *姿势骨骼* 在IK链中的工作方式。

- IK拉伸
拉伸影响到IK目标。

- 锁定
不允许围绕轴运动。

- Stiffness 硬度
绕轴的硬度。如果使用了

*锁定*，则禁用影响 。- Limit 限制
围绕轴限制运动。

### iTaSC Solver¶

If the iTaSC IK Solver is used, the bone IK panel changes to add these additional parameters.

- Control Rotation
Activates a joint rotation constraint on that bone. The pose rotation computed from Action or UI interaction will be converted into a joint value and passed to the solver as target for the joint. This will give you control over the joint while the solver still tracks the other IK targets. You can use this feature to give a preferred pose for joints (e.g. rest pose) or to animate a joint angle by playing an action on it.

- Weight
The importance of the joint rotation constraint based on the constraints weight in case all constraints cannot be achieved at the same time. For example, if you want to enforce strongly the joint rotation, set a high weight on the joint rotation constraint and a low weight on the IK constraints.

## Arm Rig Example 手臂绑定示例¶

这个手臂使用两根骨骼来克服前臂的扭曲问题。IK锁定用于阻止前臂弯曲，但是在 *姿态模式* 前臂仍然可以通过按 `R Y Y` 手动扭转，或通过使用其他约束扭转。

注意 如果使用了 *极目标*，IK 锁定对首端骨骼不起作用。