> For the complete documentation index, see [llms.txt](https://kinemation.gitbook.io/magic-blend-documentation/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/magic-blend-documentation/tutorial/workflow.md).

# Workflow

## Blend Sliders

The <mark style="color:purple;">**Magic Blend Asset**</mark> uses 3 main sliders to control the animation blending:

<figure><img src="/files/ze4OZ9D9EQcUTPGEavoA" alt="" width="421"><figcaption><p>Weight sliders.</p></figcaption></figure>

**Base Weight** controls a blend between Animator and Magic Blend pose. If set to zero, the Animator will be fully used, if set to 1 - the overlay pose will fully override this bone chain.

**Additive Weight** controls the dynamic additive influence. If set to zero, no additive is applied, if set to 1 - it will be added to the overlay pose.

**Local Weight** overrides everything with the overlay pose. It is only useful for fingers or hands. If set to zero, it will not be applied, and if set to one - it will fully override the bone chain with the overlay pose.

There are no restrictions on what sliders to use and how. You need to tweak the settings and see what works best for your character pose.

## Animation States

It is possible to bind <mark style="color:purple;">**Magic Blend Assets**</mark> to a specific animation state in your controller. To do so, click on the desired state and add a **Magic Blend State**:

<figure><img src="/files/VdgqVaLsFjF6qL9arUwC" alt="" width="236"><figcaption><p>Blend State component.</p></figcaption></figure>

Now, assign the blend asset, and the system will automatically sync it with the rest of the animator controller:

<figure><img src="/files/2bL9loZzYlm0wTDwLuye" alt="" width="415"><figcaption><p>Choose your asset here.</p></figcaption></figure>

{% hint style="success" %}
**Tip:** you can add multiple empty states to your animator, and set up transitions between them. You don't have to specify the animation clips, as they will be supplied from the selected Magic Blend Asset.
{% endhint %}

This is a very simple way to integrate the **Magic Blending** with your project without modifying the code. However, sometimes we run into situations when it is vital to change a <mark style="color:purple;">**Magic Blend Asset**</mark> in runtime.

## Code Integration

You can swap <mark style="color:purple;">**Magic Blend Asset**</mark> by simply replacing the asset in the inspector. If you want to do a similar thing in the code, here is how you can achieve that:

{% code title="YourComponent.cs" overflow="wrap" %}

```csharp
private MagicBlending _magicBlending;

private void Start()
{
    _magicBlending = GetComponent<MagicBlending>();
}

private void ChangeMagicBlendAsset(MagicBlendAsset newAsset)
{
    _magicBlending.UpdateMagicBlendAsset(newAsset, true);
}
```

{% endcode %}

```csharp
_magicBlending.StopMagicBlending() // Use it to disable active blending.
_magicBlending.SetOverlayTime(float newTime) // Use it to force update overlay time.
_magicBlending.GetOverlayTime(bool isNormalized) // Use it to get overlay time.
```

That is it! Now you know how to fully use **Magic Blending** in your project.
