☰

Анимации

Модификация системы анимаций

Экспорт анимации для Bannerlord

Настройки анимации по умолчанию
Настройки экспорта FBX (Autodesk Maya)

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

Первоначальная настройка (скелет + меш)

Настройки экспорта только анимации

Мы обязательно отключаем параметры, связанные с мешем и скином, перед экспортом анимаций. «Use scene name» очень важно проверить при экспорте как анимаций, так и ригов. Также убедитесь, что корневая кость содержит «_notused» в конце строки.

Мы убеждаемся, что не отправляем никаких «Constraints and Skeleton Definitions» (ограничений и определений скелета). Constraints, Connections и Unit settings должны быть установлены так, как на изображении ниже. Наш движок также использует ось «Z» в качестве направления вверх.

Определение новых анимаций

После экспорта анимации, чтобы сослаться на неё в игре, вам нужно добавить новые клипы анимации из браузера ресурсов, которые ссылаются на эту анимацию. Для этого используйте кнопку «Animation Clip» внутри родительской сборки «Create». Самые важные свойства этих клипов:

Типичная анимация также содержит несколько опциональных атрибутов. Самый распространённый — blend_in_period, который задаёт продолжительность смешивания с существующей анимацией и достижения 100% веса. blend_out_period — это противоположность этому смешиванию, но с важным отличием. Смешивание на выходе на самом деле означает, что анимация заканчивается раньше заданной продолжительности, а оставшаяся часть анимации используется только для смешивания с другой анимацией. Но продолжительность смешивания задаётся только через blend_in_period. Наличие более длинного blend_out_period, чем blend_in_period следующей анимации, не увеличивает эту продолжительность смешивания. Это просто помогает смешиванию выглядеть более плавным, так как во время этого смешивания, если обе анимации проигрываются одновременно, это выглядит визуально более привлекательно. Анимация с 0 blend_out_period просто приостанавливается во время смешивания со следующей анимацией, что вызывает резкую остановку/изменение скорости во вращениях костей.

Анимация имеет ещё несколько опциональных атрибутов:

Анимации обычно содержат два других узла: flags и clip_usage_data. clip_usage_data — это общий указатель на данные, который может ссылаться на blend_data, displacement_data, bipedal_movement_and_ik_data и quadrupedal_movement_data. Их использование в основном предназначено для специфических случаев, и их детали выходят за рамки данного объяснения. Флаги же используются практически для всех анимаций и требуют некоторого объяснения. Возможные флаги, которые можно использовать для анимации:

Изменение/добавление новых действий

Анимации агентов сопоставляются с наборами действий (action sets) как действия (actions). Чтобы назначить новую анимацию существующему действию, сначала нужно определить новый клип анимации через браузер ресурсов. Клипы анимации определяют начальную и конечную секунды анимации, FPS и различные свойства. Затем нужно сопоставить его в action_sets.xml для конкретного набора действий. Если необходимо создать новое действие, сначала нужно добавить его как новую строку в action_types.xml, а затем выполнить те же шаги, что и выше.

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

Каждое действие имеет несколько атрибутов. Эти атрибуты жёстко закодированы, чтобы движок мог понимать определённые свойства действия. Атрибуты:

type (по умолчанию: actt_other):

usage_direction (опционально):

action_stage (опционально):

Использование изменённых действий довольно простое — вам просто нужно изменить сопоставление действия с анимацией в action_sets.xml, и этого, вероятно, будет достаточно. Но если вы хотите создать новое действие или новое поведение для существующего действия, возможные способы интеграции его в игру могут быть следующими:

Эта страница переведена с помощью ИИ и может содержать неточности. Оригинал на английском языке является основным источником.