# MAnimalAnimatorSync

## Overview

The MAnimal Animator sync what it does is to sync 2 animators (One master and  one Slave).

&#x20;It reads from the Master Animal Controller every time an Animator Parameter has changed and updates the values on the Slave Animator. The Master Animator needs to have a component that uses the **IMAnimator** and **IAnimatorStateCycle** interfaces. (The Animal component has it)

This is useful when you have props like wings in your character, and you need specific animations to be played when the character Jump, Fall, walks, etc.

<figure><img src="https://963537199-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-Lzhr1XSMzMqNXjRnNlb%2Fuploads%2FtN0pNlxUFLhBsZdZGvza%2Fimage.png?alt=media&#x26;token=8424d799-d5e8-4b31-856c-33676d7b59f4" alt="" width="549"><figcaption></figcaption></figure>

## Parameters

### Master Animator

Reference for the Master Animator  to get the parameters values

### Slave Animator

Slave Animator to receive the parameter values

### Layer

Which Layer Index will be used to sync to the Slave Animator

### Resynchronize

When the Animator is playing a blendtree or a loopable animation. it will check if both Animator times are in sync. If not it will force a synchronization. This is needed for Float Animator Values.

### Threshold

Threshold to check if the slave animator is unsync

### StateCheck

Which State will be synced again

### Use Transform Offset

Enables the Offset position and rotation from the Master Animator. Since the Slave animator can have rootmotion this will re-position the gameobject on the correct position.

### PosOffset

Offset the position relative to the Master Animator

### RotOffset

Offset the rotation relative to the Master Animator
