Основная идея заключается в том, что персонаж участвует в каком-то конкретном виде действий в любой момент времени. Доступные действия будут зависеть от типа геймплея, но типичные действия будут включать в себя такие вещи, как стойка на месте (idling), ходьба (walking), бег (running), прыжок (jumping) и т.д. Эти действия называют states, в том смысле, что персонаж находится в “состоянии”, где он идет, стоит или делает ещё что-нибудь. В общем, персонаж будет ограничен в следующем состоянии, в которое он сможет перейти вместо того, чтобы в нужный момент тут же перейти из любого состояние в нужное состояние. Например, прыжок во время бега может быть выполнен только тогда, когда персонаж бежит, а не стоит на одном месте, поэтому этот переходи не должен происходить резко из состояния стоя в состояния прыжка во время бега. Настройки для следующего состояния, в которое игрок сможет перейти из текущего состояния называются state transitions. Вместе взятые наборы состояний, наборы переменных и переменные помнят текущую форму состояния state machine.
Состояния и переходы механизма состояний можно представить с помощью графика, где узлы будут представлять из себя состояния и дуги (стрелки между узлами), представляющие переходы. Вы можете думать о текущем состоянии как о маркере или выделении, помещённом на один из узлов, которое может перепрыгнуть на другой узел по одной из этих стрелок.
Важность машин состояний для анимации состоит в том, что они могут быть легко созданы и обновлены при написании небольшого объёма кода. Каждое состояние имеет анимацию (Motion) ассоциированную с ним, которая будет воспроизводиться даже если машина состояний находится не в этом состоянии. Это даёт аниматору или дизайнеру определить возможные последовательности действий и анимаций персонажа не заботясь о том, как будет работать код.
Unity’s Animation State Machines provide a way to overview all of the animation clips related to a particular character and allow various events in the game (for example user input) to trigger different animations.
Animation State Machines can be set up from the Animator Controller Window, and they look something like this:
State Machines consist of States, Transitions and Events and smaller Sub-State Machines can be used as components in larger machines. See the reference pages for Animation States and Animation Transitions for further information.