- Регистрация
- 10 Окт 2025
- Сообщения
- 121
- Реакции
- 150
- Баллы
- 34
- Лучшие ответы
- 0
Параметр слой (layer) определяет приоритет анимации. Анимации с более высоким слоем имеют преимущество и накладываются поверх анимаций со слоями ниже, но не вытесняют их полностью: фактически воспроизводятся обе анимации, но отображаться будет та, у которой слой выше. То есть это как независимые линии. Слой анимации, как и остальные ее настройки, указывается в блоке ani в MDS файле. Слои и их обычное значение:
Вторым параметром в ani передается слой (как видно, анимации задан второй слой). Итого, у нас есть анимация бега (1 слой, нижняя часть тела) и анимация удара (2 слой, верхняя часть тела). Вкупе это дает анимацию удара на бегу.
Главное учитывать здесь то, что не все анимации можно так легко переопределить. Конкретно в этом примере все устроено максимально просто: у нас есть анимация состояния (бег) и анимация перехода (атака). Анимация атаки одиночная и не влияет на анимацию бега, поэтому он не прерывается. Но в игре есть много анимаций, которые во-первых, применяются кластерами/группами (анимация1 -> анимация2 -> анимация3 и т.п.), а во-вторых могут быть принудительно вставлены движком, даже если такое поведение не описано в MDS файле (например, при использовании зелья автоматически вызовется анимация S_RUN (стояние на месте), которая остановит героя, хотя фактически такое поведение не описано, оно просто есть. Поэтому выпить зелье не прерывая бег не получится).
Еще стоит учитывать, что перемещение на слой выше анимаций, которые были на первом слое, может привести к разнообразным ошибкам, поскольку анимации одного слоя воспроизводятся поочередно, и на этом завязана логика многих анимаций. Особенно это касается анимаций, в которых вызываются какие-либо события (event'ы)
Как сделать анимацию, подобную T_1HATTACKMOVE, которая бы задействовала только определенную часть тела/кости?
Это просто: следуем этому гайду по экспорту анимации, но при экспорте в окне справа надо выбрать только те кости, которые вы и хотите двигать. Например, для анимации использования зелья можно выбрать только кости левой руки и шеи с головой
- Слои 0-1: базовый/фоновый слой. Используются для большинства анимаций состояний, например S_RUN (стояние), S_RUNL (бег) и т.д. Именно на этом слое обычно лежат анимации движения.
- Слои 2+: оверлейные слои. Анимации на этих слоях обычно ложатся поверх базовых и могут накладываться друг на друга. Например, анимация удара одноручным оружием на ходу (T_1HATTACKMOVE) лежит на втором слое, благодаря этому герой может атаковать не прерывая анимацию бега.
Код:
ani ("T_1HATTACKMOVE" 2 "" 0.1 0.2 M. "HUM_1HS_MOVEATTACK_M01.ASC" F 1 29)
{
*eventTag (0 "DEF_HIT_LIMB" "ZS_RIGHTHAND")
*eventTag (0 "DEF_OPT_FRAME" "16")
*eventSFX (12 "WHOOSH" EMPTY_SLOT)
}
Главное учитывать здесь то, что не все анимации можно так легко переопределить. Конкретно в этом примере все устроено максимально просто: у нас есть анимация состояния (бег) и анимация перехода (атака). Анимация атаки одиночная и не влияет на анимацию бега, поэтому он не прерывается. Но в игре есть много анимаций, которые во-первых, применяются кластерами/группами (анимация1 -> анимация2 -> анимация3 и т.п.), а во-вторых могут быть принудительно вставлены движком, даже если такое поведение не описано в MDS файле (например, при использовании зелья автоматически вызовется анимация S_RUN (стояние на месте), которая остановит героя, хотя фактически такое поведение не описано, оно просто есть. Поэтому выпить зелье не прерывая бег не получится).
Еще стоит учитывать, что перемещение на слой выше анимаций, которые были на первом слое, может привести к разнообразным ошибкам, поскольку анимации одного слоя воспроизводятся поочередно, и на этом завязана логика многих анимаций. Особенно это касается анимаций, в которых вызываются какие-либо события (event'ы)
Как сделать анимацию, подобную T_1HATTACKMOVE, которая бы задействовала только определенную часть тела/кости?
Это просто: следуем этому гайду по экспорту анимации, но при экспорте в окне справа надо выбрать только те кости, которые вы и хотите двигать. Например, для анимации использования зелья можно выбрать только кости левой руки и шеи с головой
Последнее редактирование: