Version: 2017.4
Туториал: Скриптинг Root Motion для гуманоидных "in-place" анимаций.
Одномерное смешивание

Blend Trees (Деревья смешивания)

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

Важно различать переходы(Transition) и Blend Trees. Хотя они оба используются для создания плавных анимаций, но используются для разных видов ситуаций.

  • Transitions используется для плавного перехода от одной анимации к другой за заданное время. Переходы указаны как часть Animation State Machine. Переход от одного движения к абсолютно другому обычно протекает нормально, если переход происходит быстро.

  • Blend Trees используются для плавного смешивания нескольких анимаций путём объединения их всех в разной степени. Значение, которое каждое движение вкладывает в финальную анимацию, управляется параметром смешивания, который является одним из числовых параметров анимации связанных с Animator Controller. Чтобы смешанное движение выглядело осмысленно, смешиваемые движения должны быть примерно равные по длине и природе. Blend Trees - это особый вид анимации в Animation State Machine.

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

Использование Blend Trees

Для начала работы с новым Blend Tree, вам надо:

  1. Нажать правой кнопкой мыши на свободном месте в окне Animator Controller.
  2. Выбрать Create State > From New Blend Tree из появившегося контекстного меню .
  3. Дважды нажмите на Blend Tree, чтобы открыть Blend Tree Graph.

Теперь окно аниматора (Animator Window) отображает график всего Blend Tree, в то время как инспектор показывает текущий выбранный узел и его дочерние элементы.

The Animator Window shows a graph of the entire Blend Tree. To the left is a Blend Tree with only the root Blend Node (no child nodes have been added yet). To the right is a Blend Tree with a root Blend Node and three Animation Clips as child nodes.
The Animator Window shows a graph of the entire Blend Tree. To the left is a Blend Tree with only the root Blend Node (no child nodes have been added yet). To the right is a Blend Tree with a root Blend Node and three Animation Clips as child nodes.

To add animation clips to the blend tree you can select the blend tree, then click the plus icon in the motion field in the inspector.

A Blend Node shown in the inspector before any motions have been added. The plus icon is used to add animation clips or child blend trees.
A Blend Node shown in the inspector before any motions have been added. The plus icon is used to add animation clips or child blend trees.

Alternatively, you can add animation clips or child blend nodes by right-clicking on the blend tree and selecting from the context menu:

The context menu when right-clicking on a blend tree node.
The context menu when right-clicking on a blend tree node.

Это даёт графическое представление того, как комбинируются анимации по мере изменения значения (по мере того, как вы перетягиваете ползунок, стрелки у корня дерева изменяют из оттенок, показывая доминирующий клип анимации).

A 2D Blendtree set up with five animation clips, being previewed in the inspector
A 2D Blendtree set up with five animation clips, being previewed in the inspector

Вы можете выбрать любой узел в графике Blend Tree, чтобы изучить его в инспекторе. Если выбранный узел окажется клипом анимации, то инпектор отобразит информацию об этом клипе анимации. Настройки не будут доступны для изменения, если анимация была импортирована из модели. Если узел является узлом смешивания, то вы увидите инспектор узлов смешивания.

Вы можете выбрать либо одномерное либо двумерное смешивание из меню Blend Type; разница между типа описана на страницах, соответствующих этим типам.

Blend Trees (деревья смешивания) и Root Motion (корневое движение)

Смешивание анимаций управляется используя линейную интерполяцию (т.е. итоговое “значение” анимации вычисляется нахождением среднего значения из отдельных анимаций под влиянием параметра смешивания). Однако, вам стоит заметить, что корневое движение интерполируется не так же. См. root motion для дальнейших деталей того, как это может повлиять на ваших персонажей.

Туториал: Скриптинг Root Motion для гуманоидных "in-place" анимаций.
Одномерное смешивание