Одной из распространённых задач в игровой анимации является смешивание двух или более похожих анимаций. Возможно, наиболее известный пример, это смешивание анимаций шага и бега, в соответствии со скоростью персонажа. Другим примерно является наклон персонажа влево или вправо в случае поворота во время бега.
Важно различать переходы(Transition) и Blend Trees. Хотя они оба используются для создания плавных анимаций, но используются для разных видов ситуаций.
Transitions используется для плавного перехода от одной анимации к другой за заданное время. Переходы указаны как часть Animation State Machine. Переход от одного движения к абсолютно другому обычно протекает нормально, если переход происходит быстро.
Blend Trees используются для плавного смешивания нескольких анимаций путём объединения их всех в разной степени. Значение, которое каждое движение вкладывает в финальную анимацию, управляется параметром смешивания, который является одним из числовых параметров анимации связанных с Animator Controller. Чтобы смешанное движение выглядело осмысленно, смешиваемые движения должны быть примерно равные по длине и природе. Blend Trees - это особый вид анимации в Animation State Machine.
Примерами подобных движений могут быть анимации ходьбы и бега. Для того, чтобы смешивание работало нормально, перемещения в клипах должны происходить на том же самом месте при нормализованном времени. Например, анимации ходьбы и бега могут быть привязаны так, что в момент контакта ноги с полом, они остаются на месте при нормализованном времени (например, левая нога попадает на 0.0, а правая на 0.5). Т.к. используется нормализованное время, то длительность клипов роли не играет.
Для начала работы с новым Blend Tree, вам надо:
Теперь окно аниматора (Animator Window) отображает график всего Blend Tree, в то время как инспектор показывает текущий выбранный узел и его дочерние элементы.
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.
Alternatively, you can add animation clips or child blend nodes by right-clicking on the blend tree and selecting from the context menu:
Это даёт графическое представление того, как комбинируются анимации по мере изменения значения (по мере того, как вы перетягиваете ползунок, стрелки у корня дерева изменяют из оттенок, показывая доминирующий клип анимации).
Вы можете выбрать любой узел в графике Blend Tree, чтобы изучить его в инспекторе. Если выбранный узел окажется клипом анимации, то инпектор отобразит информацию об этом клипе анимации. Настройки не будут доступны для изменения, если анимация была импортирована из модели. Если узел является узлом смешивания, то вы увидите инспектор узлов смешивания.
Вы можете выбрать либо одномерное либо двумерное смешивание из меню Blend Type; разница между типа описана на страницах, соответствующих этим типам.
Смешивание анимаций управляется используя линейную интерполяцию (т.е. итоговое “значение” анимации вычисляется нахождением среднего значения из отдельных анимаций под влиянием параметра смешивания). Однако, вам стоит заметить, что корневое движение интерполируется не так же. См. root motion для дальнейших деталей того, как это может повлиять на ваших персонажей.