Gothic Remake Готика ремейк - общие впечатления и обсуждение
  • 43.945
  • 427
Тема для общего обсуждения Gothic 1 Remake: первых впечатлений, ожиданий, атмосферы, визуального стиля, геймплея, боевой системы, персонажей, локаций и отличий от оригинальной Gothic. Здесь можно...
Новости Релиз Of Ash and Steel состоится 6 ноября
  • 11.715
  • 12
Of Ash and Steel: атмосферный экшен выходит 6 ноября 6 ноября станет важной датой для поклонников сложных и атмосферных игр - именно в этот день состоится релиз долгожданного проекта Of Ash and...
Новости В Of Ash and Steel начался закрытый плейтест
  • 14.108
  • 12
Разработчики "Русской Готики" объявили о старте закрытого плейтеста. Если вы оставляли заявку на участие, не забудьте проверить электронную почту или посмотреть свою библиотеку - возможно игра уже...
Новости Анонсирован Atomic Heart II

Гайд Как создать и применить оверлей анимации в Gothic 2

Exoda

Житель города
Участник форума
Регистрация
10 Окт 2025
Сообщения
102
Реакции
109
Баллы
34
Лучшие ответы
0
#1
Введение

Оверлей (overlay) анимаций в Готике - это специальный слой, который накладывается поверх стандартной модели персонажа и заменяет только определенные анимации, не затрагивая остальные. Представьте, что у персонажа есть базовый набор движений (бег, стрейф, атака и т.п.). Оверлей - это как дополнительный набор инструкций, который говорит игре использовать вместо стандартной анимации другую, не затрагивая при этом все остальное (модель и другие анимации). С помощью оверлеев можно менять стили боя, изменять походку персонажей и т.д. Они представляют собой файлы с расширением MDS (в скомпилированном виде - MSB), лежащие в vdf-файлах с анимациями (Anims.vdf, Anims_Addon.vdf).
В игре уже есть множество готовых оверлеев. Например, оверлеи боевых стилей:
  • HUMANS_1HST1.MDS - оверлей с анимациями одноручного оружия уровня "Опытный"
  • HUMANS_1HST2.MDS - оверлей с анимациями одноручного оружия уровня "Эксперт"
  • HUMANS_1HST3.MDS - оверлей с анимациями одноручного оружия уровня "Мастер"
Чтобы применить оверлей к игроку, достаточно перейти в режим MARVIN, открыть консоль (F2) и ввести команду apply overlaymds название_оверлея.mds. Например, чтобы применить к игроку оверлей акробатики, нужно ввести apply overlaymds humans_acrobatic.mds. После этого стандартные анимации заменятся анимациями акробатики, как если бы вы ее изучили.
Для использования той же логики в скриптах используется функция Mdl_AppyOverlayMds(hero, "название_оверлея.mds"). Именно вызовом этой фукнции и меняются, например, боевые анимации героя при смене оружия, изменении уровня владения и т.д. Вот пример кода для применения оверлеев анимаций одноручного оружия:
Код:
if (slf.hitchance[npc_talent_1h] >= 90) {
    mdl_applyoverlaymds(slf, "humans_1hST3.mds");
}
else if (slf.hitchance[npc_talent_1h] >= 60) {
    mdl_applyoverlaymds(slf, "humans_1hST2.mds");
}
else if (slf.hitchance[npc_talent_1h] >= 30) {
    mdl_applyoverlaymds(slf, "humans_1hST1.mds");
}
Как видите, здесь реализуется знакомая нам логика: при владении 30 или больше применяется оверлей анимаций одноручного оружия уровня "Опытный", при владении 60 или больше оверлей анимаций уровня "Эксперт", при владении 90 или больше оверлей анимаций уровня "Мастер".

1. Создание своего MDS

Возьмем пример оверлея с этого ресурса, исходники приложены. Предположим, мы хотим изменить анимации стрейфов с оружием в руках: заменить их на рывки боссов арены из мода "Новый Баланс" (как достать эти анимации описано в этом гайде). Самый простой вариант замены анимаций - просто удалить старые .MAN файлы, отвечающие за эти анимации стрейфов и заменить их на свои (как описано в этом гайде), но у этого подхода много минусов: нам придется перебирать и заменять каждую анимацию стрейфа, и, что самое главное, мы никак не сможем перенастроить свою анимацию - она будет подчиняться тем указаниям, которые описаны в ее MDS. Например, анимация стрейфа одноручного оружия (из HUMANS_1HST1.MDS) длится 14 кадров, а наша анимация рывков 16. Если просто заменить оригинальную анимацию на наш рывок, то вероятнее всего из-за разности кадров это сломает анимацию. Именно поэтому нам нужно определить свой MDS, в котором мы укажем свои собственные правила воспроизведения анимации:
Код:
Model ("Humans_Charge") // Название модели должно быть уникальным
{
    meshAndTree ("HUM_BODY_NAKED0.ASC" DONT_USE_MESH)

    aniEnum
    {
        // Анимации стрейфа с одноручным оружием (L - влево, R - вправо)
        ani      ("T_1HRUNSTRAFEL"        1        "T_2HRUNSTRAFEL"  0.1 0.1  M. "HUM_CHARGE_STRAFEL.ASC" F  0  16)
        {
            *eventSFXGrnd (11 "RUN")
        }
        ani      ("T_1HRUNSTRAFER"        1        "T_2HRUNSTRAFER"  0.1 0.1  M. "HUM_CHARGE_STRAFER.ASC" F  0  16)
        {
            *eventSFXGrnd (8 "RUN")
        }

        // Анимации стрейфа с двуручным оружием (L - влево, R - вправо)
        ani      ("T_2HRUNSTRAFEL"        1         "T_2HRUNSTRAFEL"  0.1 0.1  M. "HUM_CHARGE_STRAFEL.ASC" F  0  16)
        {
            *eventSFXGrnd (11 "RUN")
        }
        ani      ("T_2HRUNSTRAFER"        1         "T_2HRUNSTRAFER"  0.1 0.1  M. "HUM_CHARGE_STRAFER.ASC" F  0  16)
        {
            *eventSFXGrnd (8 "RUN")
        }

        // Анимации стрейфа с кулаками (L - влево, R - вправо)
        ani        ("T_FISTRUNSTRAFEL"    1          "T_FISTRUNSTRAFEL"  0.1  0.1  M. "HUM_CHARGE_STRAFEL.ASC" F  0  16)                    
        {
            *eventSFXGrnd (11 "RUN")
        }
        ani        ("T_FISTRUNSTRAFER"    1          "T_FISTRUNSTRAFER"  0.1  0.1  M. "HUM_CHARGE_STRAFER.ASC" F  0  16)                    
        {
            *eventSFXGrnd (8 "RUN")
        }
    }
}
Структура MDS файлов описана в этом гайде. В Model мы указываем название модели. Оно должно быть уникальным и желательно иметь префикс модели, к которой привязана анимация, в нашем случае HUMANS (но это не обязательно, просто соответствует общему стилю). В блоках ani мы переопределяем анимации, привязывая к ним свой .ASC файл с анимацией. Разберем строку:
Код:
ani      ("T_1HRUNSTRAFEL"        1         "T_2HRUNSTRAFEL"  0.1 0.1  M. "HUM_CHARGE_STRAFEL.ASC" F  0  16)
{
        *eventSFXGrnd (11 "RUN")
}

Параметр

Значение

"T_1HRUNSTRAFEL"

Наименование (ключ) анимации. В оверлее можно использовать только те наименования анимаций, которые определены в базовом MDS (в нашем случае HUMANS.MDS). Если использовать несуществующее наименование, то игра либо проигнорирует эту анимацию, либо выкинет ошибку

1

Слой. В большинстве базовых анимаций указан первый слой

"T_2HRUNSTRAFEL"

Следующая анимация. Нужна для зацикливания: зажали кнопку влево - герой делает стрейф/рывок влево, пока вы держите кнопку

0.1 0.1

Время плавного входа в анимацию и выхода из предыдущей анимации. Указывается для более плавного перехода анимации после рывка

M.

Флаг, обозначающий движение персонажа

"HUM_CHARGE_STRAFEL.ASC"

Название .ASC файла с анимацией

F

Направление анимации (в обычном порядке, от первого кадра к последнему)

0 16

Начальный и конечный кадры анимации. В нашей анимации рывка 16 кадров


*eventSFXGrnd (11 "RUN") воспроизводит звук бега по поверхности (поверхность сама определяется движком) на 11-м кадре. Это нужно для того, чтобы при рывке был звук шага по земле.


Сам MDS файл с оверлеем можно назвать как угодно, но опять же лучше давать ему префикс базового MDS, это соответствует общему стилю наименований. Я назвал файл HUMANS_CHARGE.MDS

2. Компиляция

При компиляции используется тот же подход, который описан в этом гайде: в какой-либо vdf файл с анимациями (самый последний. Если у вас установлен мод, то в его vdf с анимациями) в папку _WORK\DATA\ANIMS\ кладем:
  1. .ASC файлы с анимациям
  2. Свой MDS
  3. HUM_BODY_NAKED0.ASC (сама модель/скелет. Вытащить его можно, например, при декомпиляции HUMANS.MSB)
После этого заходим в игру, загружаем какое-нибудь сохранение, переходим в режим MARVIN, открываем консоль (F2) и пишем apply overlaymds humans_charge.mds (или название вашего .mds). Если вы все сделали правильно, то в консоли напишет, что оверлей применился, а в папке Gothic II\_work\Data\Anims\_compiled появится набор файлов: MSB, MDH и MAN файлы.

Учитывайте, что если вы вносите какие-то изменения в свой MDS, то перед повторной компиляцией вам надо удалить эти скомпилированные файлы, иначе игра будет подхватывать их, игнорируя ваш новый MDS.
 

Вложения

Сверху Снизу