Когда использовать дерево смешивания против конечного автомата для анимации

13

Я - опытный разработчик игр, и мне больше всего нравится делать свою первую игру с трехмерными анимированными персонажами (в Unity), и я пытаюсь понять, когда использовать смешанные деревья против автоматов состояний анимации. Я понимаю оба концептуально, но видел как смешанные деревья, так и конечные автоматы анимации, используемые для анимации персонажей в куче уроков как из Unity, так и из других источников. Я не уверен, когда / почему один лучше, чем другой, я надеюсь, что кто-то может направить меня в правильном направлении.

Моя игра - это боевик от третьего лица, а именно WoW, KOTOR или Mass Effect (я знаю разные системы, но перспективы и боевые стили довольно близки на высоком уровне). У меня есть тонны и тонны анимаций для атак, блоков, симуляций, смертей, ходьбы, бега, прыжков, стрельбы и т. Д., Но я не знаю, как их естественно упорядочить.

Я видел, как смешанные деревья использовались для передвижения, что имеет смысл для меня, когда я стараюсь поддерживать плавность движения персонажа, но я не понимаю, как перейти от этого смешанного дерева к состоянию атаки, и ничто из того, что я видел до сих пор, не прошло мимо передвижения (без атак и т.д). Нужно ли смешивать деревья из моих состояний движения для атак / смерти / уклонения? Есть ли у меня больше контроля, используя только конечные автоматы? Я немного осторожен с конечными автоматами из-за раздувания переходов, которое так часто встречается в них, и потому, что я подозреваю, что есть большой потенциал для создания последовательных анимаций без смешивания.

Я планирую использовать контроллер персонажей Unity и написать свои собственные логические сценарии для управления им. Для ИИ я буду использовать встроенные агенты навигационной сетки. Анимации контроллера персонажей обрабатываются иначе, чем AI?

Любые идеи будут более чем приветствоваться!

Благодарность

weichsem
источник

Ответы:

21

Я немного поработал с Mecanim в Unity и чувствую, что хорошо понимаю, как это работает.

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

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

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

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

Ниже приведено несколько простых настроек, где стрелки показывают, как идут переходы. Переходы основаны на условиях входа и выходят по окончании анимации или при выполнении заданного условия. Это также означает, что одно состояние может переходить в различные другие состояния в зависимости от различных условий.

Государственный аппарат

Что вы, вероятно, заметили, так это то, что это быстро может стать большой кучей «спагетти», и способ избежать некоторой этой путаницы - это использовать любое состояние, также включенное в изображение выше.

Любое государство имеет преимущество в возможности перехода на что - либо из любого данного момента времени. Переходы все еще можно использовать для смешивания анимации, однако, вы работаете немного в темноте над тем, как она будет выглядеть. Можно выполнить предварительный просмотр из / в различные состояния при настройке.

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

Но настройка надежного контроллера анимации - это не часовая работа. Это требует некоторого планирования, и я могу только посоветовать вам попробовать настроить простой конечный автомат с двумя атаками, прыжком, холостым ходом и блендом дерева ходьбы / бега. Вы также можете найти поведение, представленное в Unity 5, чрезвычайно полезным для управления скриптами или взаимодействия с ними.

Я на 99% уверен, что ИИ будет вести себя так же, как контроллер плеера, учитывая, что это параметры, изменяемые с помощью скриптов, которые контролируют, как анимация переходит из состояния в состояние.

Резюме

  • Смеси для передвижения.
  • Состояния для одиночных, определенных действий или простых циклических состояний.
  • Подсостояния для организации ряда состояний, например, прыжок.
  • Переходы для смешивания / перехода между различными состояниями (состояние также может быть деревом смешивания).
  • Слои для переопределения или добавления к базовой анимации.

Так что думайте о деревьях смешивания как о расширенных состояниях, которые также действуют на основе значений параметров.

Немного длинная прогулка, но я надеюсь, что она проливает свет на эту тему :)

Мортен Андерсен
источник
Спасибо за ваше потрясающее описание, это имеет большой смысл сейчас
weichsem
Фантастически, рад помочь :)
Мортен Андерсен