Я работаю с анимацией в Unity, и до сих пор я сделал только четыре (вверх и вниз влево и вправо), и мое окно анимации выглядит следующим образом ...
Проблема в том, что если я двигался вверх, я хочу, чтобы герой продолжал искать вверх, а не переходил на «нейтральное холостое ход» (или как бы он ни начинал), но это означает, что у меня есть 4 холостых позиции… и каждая из них может переходить на «вверх», «вниз» , Влево или вправо, и они идут экспоненциально с каждым дополнительным действием ...
Что заставляет меня чувствовать, что я делаю что-то не так ...
Есть ли лучший способ сделать переход между различными действиями?
Ответы:
Вы можете решить этот тип проблемы с помощью BlendTrees (в общем, мудрая идея часто полагаться на смешанные деревья). Смешанное дерево является своего рода мульти-анимационным состоянием, которое на основе параметра (параметров) (float) решает, какая из анимаций в нем содержится, чтобы быть активными в данный момент (или, в качестве альтернативы, результирующая анимация может быть смесью нескольких анимаций). Даже когда анимации не смешаны, а поменяны местами, перестановка происходит в середине анимации (то есть, если анимация «выхода» составляет 35%, новая воспроизводится с 35% вперед). С внешней стороны все это скрыто, как будто это одно простое / единичное состояние.
Например, у вас есть смешанное дерево с 8 спрайтовыми анимациями (простаивает с 4 основными и 4 диагональными направлениями). В этом дереве смешивания есть 2 параметра - «горизонтальный» и «вертикальный». И на основе этих двух параметров дерево смешивания решит, какую анимацию воспроизводить. Основываясь на «горизонтальном» параметре, дерево смешивания будет выбирать между левой / правой анимацией, а «вертикальный» параметр будет определять анимацию сверху / снизу. Затем при объединении вы получите все 8 анимаций с диагоналями (это та же идея, что и за джойстиками / джойстиками).
Это немного сбивает с толку, поэтому, даже если StackExchange не любит ссылки, я приведу короткий пример видео, которое я сделал. Обратите внимание на верхнюю правую часть экрана. Серые точки - это «состояния» / анимации, а активными являются те, которые закрываются красной точкой. Как было сказано в начале, это может быть еще более сложным, и каждая анимация может иметь влияние / силу в зависимости от ее расстояния до красной точки, что приводит к смешению нескольких анимаций.
Снаружи это только одно состояние (дерево смешения), и когда вы применяете одну и ту же концепцию для ходьбы и атаки, у вас будет только 3 связанных состояния.
Деревья смешивания создаются с помощью щелчка правой кнопкой мыши на пустой области аниматора Создать состояние -> Из нового дерева смешивания. Оттуда все в Инспекторе. Выбрав дерево смешивания, вы можете выбрать тип дерева смешивания (1D, 2D и т. Д.), Добавить анимацию, расположить их (относительно значений параметров) и выбрать управляющие параметры.
Если вам нужна дополнительная информация о Blend Trees, то ниже приведены видео с Unity - Unite 2016 и учебники Unity .
источник
Проблема здесь в том, что вы пытаетесь связать все вместе вместо использования триггера для переключения между холостыми оборотами. Вы должны выбрать бездействующую анимацию, используя условный тип if-else или switch-case. Я сделал диаграмму, которая выглядит намного аккуратнее (предположим, что один из них - случай по умолчанию):
Дополнительная информация:
Посмотрите на параметры анимации о том , как установить параметры для аниматора , чтобы признать, государственные машины для объединения анимации вместе, State Machine Поведения для того, как проверить переменные , которые вы установили.
источник