> For the complete documentation index, see [llms.txt](https://docs.incari.com/incari-studio/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.incari.com/incari-studio/2024.1/toolbox/incari/animation/playanimation.md).

# Play Animation

## Overview

![The Play Animation Node.](/files/nuftrrq9HrqUreyaLo0s)

**Play Animation** is an **Animation** **Node** used to start playing an **Animation**. The **Animation** to play has to be selected in the **Attributes**. For this, simply drag an **Animation** `.incani` file from the **Asset Manager** to the `File` **Attribute** and then a drop-down Menu that allows the user to choose an **Animation Block** will appear.

When an **Animation** starts playing, an [**Instance ID**](/incari-studio/2024.1/toolbox/incari/animation.md#instance-id) gets assigned to it, which is then used to control the **Animation** with the [**Pause Animation**](/incari-studio/2024.1/toolbox/incari/animation/pauseanimation.md) or [**Stop Animation**](/incari-studio/2024.1/toolbox/incari/animation/stopanimation.md) **Nodes**. This [**Instance ID**](/incari-studio/2024.1/toolbox/incari/animation.md#instance-id) can be set with the [**Create CustomID Node**](/incari-studio/2024.1/toolbox/utilities/createcustomid.md) connected to the `Instance ID` **Input Socket**. If nothing is connected, the default value 42 is used.

It is also possible to [reuse an **Animation** with a different **Object**](#reusing-an-animation).

[**Scope**](/incari-studio/2024.1/toolbox/overview.md#scopes): **Scene**, **Function**, **Prefab**.

### Attributes

![The Play Animation Node Attributes.](/files/5zLRjDpa5fM0Hf7SDCKC)

| Attribute | Type           | Description                                                                                                                                                                                                                                                                                                                                          |
| --------- | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `File`    | **User Input** | The selected **Animation** file created in the [**Animation Editor**](/incari-studio/2024.1/modules/animation-editor.md). The user can drag a file from their library or select a file from a file tree. The icons to the right allow the user to confirm the selection, highlight the **Asset** in the **Asset Manager**, and remove the selection. |
| `Name`    | **Drop-down**  | The specified **Animation Block** created in the **Animation Editor** that will be played.                                                                                                                                                                                                                                                           |

### Inputs

| Input             | Type           | Description                                                                                                         |
| ----------------- | -------------- | ------------------------------------------------------------------------------------------------------------------- |
| *Pulse Input* (►) | **Pulse**      | A standard **Input Pulse**, to trigger the execution of the **Node**.                                               |
| `Instance ID`     | **InstanceID** | The assigned [**Instance ID**](/incari-studio/2024.1/toolbox/incari/animation.md#instance-id) of the **Animation**. |

### Outputs

| Output             | Type           | Description                                                                                                                            |
| ------------------ | -------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| *Pulse Output* (►) | **Pulse**      | A standard **Output Pulse**, to move onto the next **Node** along the **Logic Branch**, once this **Node** has finished its execution. |
| `Instance ID`      | **InstanceID** | The previously assigned [**Instance ID**](/incari-studio/2024.1/toolbox/incari/animation.md#instance-id) of the **Animation**.         |
| `OnPlay`           | **Pulse**      | Flows to additional **Nodes** following **Play Animation** when the **Animation** starts playing.                                      |
| `OnPause`          | **Pulse**      | Flows to additional **Nodes** following **Play Animation** if the **Animation** pauses.                                                |
| `OnStop`           | **Pulse**      | Flows to additional **Nodes** following **Play Animation** if the **Animation** stops.                                                 |

### Reusing an Animation

![The Play Animation Node with an Animation Block assigned](/files/cAYNFPfvrSobPY47BlRd)

Using the **Play Animation Node**, it is possible to reuse an **Animation** for a different **Object** than the one used in the `.incani` file. For this, the **ObjectID** **Input Sockets** must be used.

When an **Animation Block** is assigned to the **Play Animation Node** in the **Attributes**, new **ObjectID** **Input Sockets** are created, one for each **Object** in the **Animation Block**. These **Input Socket** can be used to animate a different **Object**.

Thus, a **Play Animation** **Node** with an **Object** connected to the **ObjectID** **Sockets** will animate that **Object** instead of the one defined in the **Animation Block**. In the example below, `Object2` will be animated instead of `Object1`, which was the **Object** originally used in the **Animation**.

![The Play Animation Node with an Animation Block assigned and an Object connected](/files/OepkVUuSkgMtdpaLVcj3)

## Prefabs

**Prefabs** are a bit special when it comes to their animation. There are two **Scopes** of **Logic** which must be considered. These are the **Scene** **Logic** and **Prefab Logic**.

![](/files/N7lgFZtJtgc8VwUAVnYv)

Whatever instance is assigned to the **Prefab Node** in the **Scene Logic** is ultimately what gets animated. Remember, the **Prefab Node** represents whatever **Logic** has been set up in the **Prefab Logic**. In the image below, the instance is `Prefab1 - Instance 2` and the **Prefab Node** is `Prefab1`.

![](/files/HGT42P5qP3YNghuGSgU7)

During runtime, the **Master Prefab** basically does nothing. This is why it is required to assign an instance of the **Prefab** to the **Prefab Node** to trigger the **Prefab Logic** of this instance.

However, it is still necessary to assign the **Master Prefab Object** to the **Prefab Logic**. It will be replaced by the **Prefab** instance that has been assigned in the **Scene Logic**. This will lend to a smooth animation process within **Incari Studio** in regards to **Prefabs**.

![](/files/lr3xNQvgRO3Y6jMDwSHS)

## See Also

* [**Pause Animation**](/incari-studio/2024.1/toolbox/incari/animation/pauseanimation.md)
* [**Stop Animation**](/incari-studio/2024.1/toolbox/incari/animation/stopanimation.md)
