# Transitions

## Transition Properties <a href="#transition-properties" id="transition-properties"></a>

Not a node as such, but this covers the properties on transitions:

<figure><img src="/files/XkpkokS4ax926yLADRAm" alt=""><figcaption><p>A Transition</p></figcaption></figure>

#### Supported properties

<figure><img src="/files/kofg3P4uX9539aWfePta" alt=""><figcaption><p>Transition Properties</p></figcaption></figure>

* <img src="https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net/standard/ef8b0642-7523-4e13-9fd3-01b65648acf6/64x64/26a0.png" alt="warning" data-size="line"> Transition
  * `Priority Order` is supported
  * `Bidirectional` is unsupported
  * `Blend Logic` is unsupported (always assumes a Standard Blend)
  * `Transition Rule Sharing` is unsupported
  * Transition rules themselves are [covered below](#transition-rules)
  * `Automatic Rule Based On Sequence Player In State` is supported
  * `Automatic Rule Trigger Time` is supported (both nonnegative and negative configurations)
  * `Sync Group Name to Require Valid Markers Rule` is unsupported
* <img src="https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net/atlassian/productivityEmojis/cross-64px.png" alt="Cross Mark" data-size="line"> Blend Settings
  * <img src="https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net/standard/ef8b0642-7523-4e13-9fd3-01b65648acf6/64x64/26a0.png" alt="warning" data-size="line"> Note: Blend settings are always assumed to be a linear transition over 0.2s whenever a state change occurs within the crowd (see `CrowdAnimBlueprintCommon::CrossfadeDuration` constant)
* <img src="https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net/atlassian/productivityEmojis/cross-64px.png" alt="Cross Mark" data-size="line"> Events
* <img src="https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net/atlassian/productivityEmojis/cross-64px.png" alt="Cross Mark" data-size="line"> Notifications

## Transition Rules <a href="#transition-rules" id="transition-rules"></a>

Simple transition rules can be achieved through comparisons on one or more inputs combined with logical operations.

For example, the following kinds of expressions would be supported

* `AnimVar.IsMoving == 1`
* `AnimVar.HasLowGravity != 0`
* `(Get Relevant Anim Time > 0.4) & (AnimVar.IsJogging == 1)`

where the expressions are all of the form `[Input] [Comparison] [Constant]`. The last case is simply a logical combination of two of these, which also fine.

<figure><img src="/files/upXUSPpDYYk2LJJVp0ga" alt=""><figcaption><p>A simple transition rule just reading a single Anim Var property via a macro</p></figcaption></figure>

<figure><img src="/files/XSYcbK9GKc9miGeaNQLJ" alt=""><figcaption><p>A more complex transition rule reading two properties with some logic</p></figcaption></figure>

#### Variables Supported

* <img src="https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net/atlassian/productivityEmojis/check-64px.png" alt="Check Mark" data-size="line"> Anim Var inputs
  * Anim Var inputs generally supported
  * As noted [here](/platform-documentation/creation/unreal-development/features-and-tutorials/the-animated-crowd/crowd-animation/crowd-anim-blueprint/reference-guide-abp-nodes/variables.md#anim-vars), Boolean variables are all internally represented as float, so care around precision may be needed in comparisons
* <img src="https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net/atlassian/productivityEmojis/check-64px.png" alt="Check Mark" data-size="line"> Timestamp tests on state machine
  * Get Relevant Anim Time
  * Get Relevant Anim Time Fraction
  * Get Relevant Anim Time Remaining
  * Get Relevant Anim Time Remaining Fraction
* <img src="https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net/atlassian/productivityEmojis/check-64px.png" alt="Check Mark" data-size="line"> Timestamp tests on asset player
  * Current Time
  * Current Time (ratio)
  * Time Remaining
  * Time Remaining (ratio)

#### Comparisons

* <img src="https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net/atlassian/productivityEmojis/check-64px.png" alt="Check Mark" data-size="line"> Floating point comparisons: `<`, `<=`, `=`, `!=`, `>=`, `>`
* <img src="https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net/atlassian/productivityEmojis/cross-64px.png" alt="Cross Mark" data-size="line"> Non-floating point comparisons (e.g. enums), unsupported
* <img src="https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net/atlassian/productivityEmojis/check-64px.png" alt="Check Mark" data-size="line"> `In Range` node supported on float and integer types

#### Logical Ops Supported

* <img src="https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net/atlassian/productivityEmojis/check-64px.png" alt="Check Mark" data-size="line"> And
* <img src="https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net/atlassian/productivityEmojis/check-64px.png" alt="Check Mark" data-size="line"> Or
* <img src="https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net/atlassian/productivityEmojis/check-64px.png" alt="Check Mark" data-size="line"> Xor
* <img src="https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net/atlassian/productivityEmojis/check-64px.png" alt="Check Mark" data-size="line"> Not

#### Misc

* <img src="https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net/atlassian/productivityEmojis/check-64px.png" alt="Check Mark" data-size="line"> Macros
* <img src="https://pf-emoji-service--cdn.us-east-1.prod.public.atl-paas.net/atlassian/productivityEmojis/check-64px.png" alt="Check Mark" data-size="line"> Struct breaking (e.g. extracting a component from a vector)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.otherside.xyz/platform-documentation/creation/unreal-development/features-and-tutorials/the-animated-crowd/crowd-animation/crowd-anim-blueprint/reference-guide-abp-nodes/transitions.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
