Animation Editor: State Machine – Arma Reforger

From Bohemia Interactive Community
Revision as of 16:01, 2 June 2022 by Lou Montana (talk | contribs) (Page creation)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This article explains the concepts of a state machine and how they can be used in animation graphs.


State Machine

A State Machine is a basic functionality in any graph, and it is what decides what the animated object is currently doing, whether that is moving, idling, eating, eating while moving, and so on. A character can be in multiple States at once, but generally stays in one at a time.


State

A State is a child of the State Machine. It can be named anything and it will not conflict with the rest of the graph, as long as the name is unique inside its State Machine.

Each State has its own set of properties:

State Description
Link Every State has a Link that it connects to something in a graph, such as a Source Node, Blend Node, or another State Machine.

A node outside of the State Machine cannot link directly to a State inside of the machine, only to the State Machine itself.

Time Each State handles its own time inside of its Time property and it has three options.

Notime: The State does not keep any time, or use any time. Used when the State is linking to another State Machine that handles its own time.

Realtime: The State keeps time, and the time is incrementing as normal time. This is used primarily when the State is linking directly to an animation that needs to loop or transition out of the State.

Normtime: The State keeps the time Normalized, which means that time inside of the state is going to be uniform and if passed to another node (described how to later) it is going to be the same for each node that it passes to.

Start Condition When the parent State Machine of the State is first reached, the Start Condition of each State is evaluated, and depending on which one is true, that one will be the starting State. If none is true, the first node that was created in that State Machine will be chosen. This should be avoided when possible, as it could lead to unwanted final results.
Exit When this is checked, any time that this node has will be passed up to the State Machine above, assuming there is one.

This is explained in depth inside of the Transitions article.