Version: 5.3 (switch to 5.4b)
State Machine Behaviours
Слои анимации

Вложенные конечные автоматы

Персонаж зачастую выполняет сложные действия, состоящие из нескольких этапов. Вместо того, чтобы управлять всем действием одним состоянием, есть смысл определить отдельные этапы и использовать отдельное состояние для каждого из этапов. Например, у персонажа может быть действие под названием “Trickshot” - персонаж приседает, чтобы точно прицелиться, стреляет и снова встает.

Последовательность состояний в действии Trickshot
Последовательность состояний в действии “Trickshot”

Хотя это полезно в целях контроля, недостатком является то, что конечный автомат становится большим и громоздким если добавлено много этих сложных действий. Вы можете упростить все в несколько раз, визуально разделив группы состояний пустым пространством в редакторе. Однако Mecanim идет на шаг впереди, позволяя вам свернуть группи состояний в единый элемент с названием в диаграмме конечного автомата. Эти свёрнутые группы состояний называются Sub-state machines.

Вы можете создать sub-state machine (вложенный конечный автомат) щёлкнув правой кнопкой мыши по пустому месту в окне Animator Controller и выбрать Create Sub-State Machine в контекстном меню. Вложенный конечный автомат представлен в редакторе в виде удлиненного шестиугольника, чтобы отличить его от обычных состояний.

Вложенный конечный автомат
Вложенный конечный автомат

Когда вы дважды щелкаете по шестиугольнику, редактор очищается, чтобы позволить вам отредактировать вложенный конечный автомат, как будто это совершенно отдельный и самостоятельный конечный автомат. Полоса в верхней части окна показывает навигационную цепочку, которая показывает, какой вложенный конечный автомат в настоящее время редактируется (обратите внимание на то, что вы можете создать вложенный конечный автомат в других вложенных конечных автоматах и т.д.). Нажатие на элементе цепочки сфокусирует редактор на нажатом вложенном конечном автомате.

Навигационная цепочка
Навигационная цепочка

Внешние переходы

Как отмечено выше, вложенный конечный автомат - это просто способ визуального вложения группы положений в редакторе, поэтому когда вы делаете переход к вложенному конечному автомату, вы должны выбрать с каким из его положений вы хотите его соединить.

Выбор целевого состояния во вложенном конечном автомате Trickshot
Выбор целевого состояния во вложенном конечном автомате “Trickshot”

Вы заметите дополнительное состояние во вложенном конечном автомате, имя которого начинается с Up.

Состояние Up
Состояние “Up”

Состояние Up представляет “внешний мир”, конечный автомат, который окружает вложенный конечный автомат. Если вы добавите переход от состояния вложенного конечного автомата к состоянию Up, вам будет необходимо выбрать одно из состояний окружающего автомата для их соединения.

Соединение с состоянием в окружающем автомате
Соединение с состоянием в окружающем автомате
State Machine Behaviours
Слои анимации