> For the complete documentation index, see [llms.txt](https://kinemation.gitbook.io/scriptable-animation-system/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kinemation.gitbook.io/scriptable-animation-system/fundamentals/animator-layers/ik-motion-layer.md).

# IK Motion Layer

## Description

**IK Motion** is a <mark style="color:orange;">**unique**</mark> Animator Layer. Unlike other features in the framework, this layer can be created outside of the Animator Profile. You can do it by right clicking <mark style="background-color:purple;">**Create -> KINEMATION -> FPS Animator Layers -> IK Motion**</mark>.

{% hint style="success" %}
**Tip**: this layer can be used for transition motions, like a jiggling motion when aiming or leaning in the demo project.
{% endhint %}

The workflow with this animation feature is this:

1. Add **IK Motion Layer** to the Animator Profile.
2. Create **IK Motion Layers** manually using the right-click method above.
3. Dynamically link desired **IK Motion Layer** using the FPS Animator component.

Dynamic linking can be performed by using **LinkAnimatorLayer** method:

{% code title="FPSController" overflow="wrap" %}

```csharp
private FPSAnimator _fpsAnimator;

private void DoSomething()
{
    ...
    // Where `layerSettings` is your IK Motion Layer.
    _fpsAnimator.LinkAnimatorLayer(layerSettings); 
    ... 
}
```

{% endcode %}

## Properties

<figure><img src="/files/EWI0udn7KXHeyuqjdA7a" alt="" width="392"><figcaption><p>IK Motion Layer Settings.</p></figcaption></figure>

* **Bone To Animate**: character bone which will be animated procedurally.
* **Rotation/Translation Curves**: curves which will animate each axis of rotation/translation.
* **Rotation/Translation Scale**: will scale each axis of rotation/translation.
* **Blend Time**: time in seconds to blend in this motion.
* **Play Rate**: playback speed for this animation.
