# RotateBy Action

## Overview

![The RotateBy Action Node.](https://926825830-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKQhJdUBr7YQzfIwmpAZ9%2Fuploads%2Fgit-blob-017fa12cd5c812675c78cf90268fee330b9587b0%2Frotatebyactionupdatedimage.png?alt=media)

The **RotateBy Action Node** continuously rotates an **Object** by the *Euler angles* values specified in `Offset` for a given period of time, thus creating an **Animation**.

[**Scope**](https://docs.incari.com/incari-studio/2022.1/overview#scopes): \* **Scene**, **Function**, **Prefab**.

## Attributes

![The RotateBy Action Node Attributes.](https://926825830-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FKQhJdUBr7YQzfIwmpAZ9%2Fuploads%2Fgit-blob-22c6bf23fccbf1a01dc9bd6cc6d1c1f7d3324584%2Frotatebyactionattributes.png?alt=media)

| Attribute        | Type          | Description                                                                                                                                                                                                                                                                                                                                     |
| ---------------- | ------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Offset`         | **Vector3**   | The amount to rotate the **Object** by, measured in *Euler angles* along the X, Y, and Z axes, if none is received in the `Offset` **Input Socket**.                                                                                                                                                                                            |
| `Duration (sec)` | **Float**     | The total time of the **Action**, if none is received in the `Duration` **Input Socket**.                                                                                                                                                                                                                                                       |
| `Interpolation`  | **Drop-down** | The `Interpolation` method to use for calculating the intermediate values of the *Euler angles*. It can be [*Linear*](https://en.wikipedia.org/wiki/Linear_interpolation), [*Sine Ease In*](https://easings.net/#easeInSine), [*Sine Ease In Out*](https://easings.net/#easeInOutSine), or [*Sine Ease Out*](https://easings.net/#easeOutSine). |

## Inputs

| Input         | Type           | Description                                                                                                                                                                                               |
| ------------- | -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `Instance ID` | **InstanceID** | The assigned [**Instance ID**](https://docs.incari.com/incari-studio/2022.1/toolbox/actions/..#instance-id) of the **Action**. If nothing is received, it automatically assigns 0 as the **Instance ID**. |
| (►) `Start`   | **Pulse**      | A standard **Input Pulse**, to trigger the execution of the **Node**.                                                                                                                                     |
| `Object ID`   | **ObjectID**   | The ID of the target **Object**.                                                                                                                                                                          |
| `Duration`    | **Float**      | The total time (in seconds).                                                                                                                                                                              |
| `Offset`      | **Vector3**    | The amount to rotate the **Object** by, measured in *Euler angles* along the X, Y, and Z axes.                                                                                                            |

## Outputs

| Output        | Type           | Description                                                                                                                    |
| ------------- | -------------- | ------------------------------------------------------------------------------------------------------------------------------ |
| `Instance ID` | **InstanceID** | The assigned [**Instance ID**](https://docs.incari.com/incari-studio/2022.1/toolbox/actions/..#instance-id) of the **Action**. |
| `OnStart` (►) | **Pulse**      | Flows to the next **Node** following **RotateBy Action** when the **Action** starts.                                           |
| `OnEnd` (►)   | **Pulse**      | Flows to the next **Node** following **RotateBy Action** when the **Action** stops.                                            |

## See Also

* [**RotateTo Action**](https://docs.incari.com/incari-studio/2022.1/toolbox/actions/rotatetoaction)
* [**RotateFromTo Action**](https://docs.incari.com/incari-studio/2022.1/toolbox/actions/rotatefromtoaction)

## External Links

* [*Rotation*](https://en.wikipedia.org/wiki/Rotation) on Wikipedia
* [*Euler angles*](https://en.wikipedia.org/wiki/Euler_angles) on Wikipedia
