• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

Gothic ½ zHumansRemaster - встраиваемая версия Humans-ремастера

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
  • Первое сообщение
  • #1
zHumansRemaster
Встраиваемый Humans-ремастер

Доступно к скачиванию через Менеджер ресурсов в разделе 'Плагины'
- Скачать Менеджер Ресурсов - 1559419291725.png
Либо посмотреть вложение к сообщению.

Требования: Union 1.0l или выше
Авторы: alex_draven, Gratt
Humans-ремастер:
*click*
zModelProtoExtender: *click*
Тип обновления: менеджер ресурсов

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

Плагин тестировался на Gothic I - Gothic Mod Fix от ElderGamer, Gothic II - L'HIVER Edition от unknown111 и на Gothic II - Пробуждение от Orc Hunter.


 

Вложения

  • zHumansRemaster.zip
    28,1 MB · Просмотры: 365
Последнее редактирование модератором:

Xnore

Участник форума
Регистрация
5 Фев 2018
Сообщения
41
Благодарности
14
Баллы
170
Готика пробуждение, после последней обновы. При первой загрузке всё нормально, при повторной такая ошибка.

1643637088884.png
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
Xnore, суть ясна, что нечто хочет удалить оверлей, но делает это не так, как задумано движком.
Но надо больше конкретики. Есть простой алгоритм как словить ошибку? Может быть надо пройти мимо чего-то или проиграть определенное действие?
 

MaxHot

Участник форума
Регистрация
1 Янв 2022
Сообщения
18
Благодарности
2
Баллы
40
После обновления плагина, при загрузке сохранения в Пробуждении пишет тоже такую ошибку
 

Gratt


Модостроитель
Регистрация
14 Ноя 2014
Сообщения
3.301
Благодарности
4.636
Баллы
625
Xnore, MaxHot,
Окей, позже обновлю мод и гляну. Киньте сейв.
 

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.081
Благодарности
1.901
Баллы
320
Написал патч для Г2А, который проверяет, выполнилась ли анимация t_jump_2_stand на 50% или больше и, если так, вызывает на этой анимации метод zCModel::FadeoutAni(int) и запускает анимацию _s_walk. (Позже обнаружил, что первый вызов не нужен - вызовется сам).

На оригинально игре это позволило сделать более плавный переход из прыжка в боевую стойку. Но с этим плагином не работает: на половине прогресса происходит резкий переход в боевую стойку.

Если оставить только вызов zCModel::FadeoutAni, то анимация t_jump_2_stand будет в состоянии isFadingOut только 1 кадр вместо 5 кадров на оригинале (используются клавиши марвина F9 и F10).

Если оставить только вызов zCModel::StartAni(_s_walk, zCModel::zMDL_STARTANI_DEFAULT), то это сразу прервёт анимацию t_jump_2_stand.

Может быть, известно в чём дело?
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.880
Баллы
420
позволило сделать более плавный переход из прыжка в боевую стойку
Не майтесь фигней. В игре в режиме боя используются обычные анимации прыжков. Разрабочик не предусмотрел полноценный режим jump для всех боевых режимов.
Для одноруча, например, это могло бы выглядеть так:
t_Stand_2_1hJump
s_1hJump
t_1hJump_2_Stand

В таком случае можно было бы согласовать позы для любого боевого режима, в том числе в оверлеях. А так игра использует анимацию, подогнанную исключительно под режим run/walk.
Stand в общем виде это или s_run, или s_walk.

Для того же одноруча это будет s_1hrun/s_1hwalk. Чтобы переход сгладить, надо вклинивать промежуточные фазы типа:
stand_2_1hrun
stand_2_1hwalk

Но я полгаю, для движка stand -это вообще обобщенное слово для любого состояния простоя, независимо от того, какой это run или walk. Так что едиснтвенный правильный метод - сделать специальные фазы для прыжка в режиме боя.

Более грубый вариант решения проблемы - тупо запретить прыжки с места, если активен боевой режим. Работать будут только прыжки с разбега. С ними проблем особых нет. Я бы так и сделал через Union, оставив эту штуку опциональной в INI.
 

Raswen

Гражданин Хориниса
Регистрация
18 Фев 2014
Сообщения
1.352
Благодарности
784
Баллы
260
Более грубый вариант решения проблемы - тупо запретить прыжки с места, если активен боевой режим. Работать будут только прыжки с разбега. С ними проблем особых нет. Я бы так и сделал через Union, оставив эту штуку опциональной в INI.
Это то, что сделает куклу полностью плавной.
- Убрать запрет на прыжок с оружием в руках, мы никого в прыжке не бьём.
- Прыжки в спокойном режиме принудительно останавливать в конце анимации. Таким образом, устранится обрыв приземления. <Run> <jamp> <stop> <run> Такой вариант будет всегда приземлятся плавно на поверхность.
 

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.081
Благодарности
1.901
Баллы
320
Не майтесь фигней.
Почему фигнёй? Достаточно плавные переходы получаются.
Разрабочик не предусмотрел полноценный режим jump для всех боевых режимов.
Поэтому я и задействовал программное смешивание анимаций, которое он предусмотрел.
Но я полгаю, для движка stand -это вообще обобщенное слово для любого состояния простоя, независимо от того, какой это run или walk.
Да. Кстати, я назавания анимаций не писал в предыдущем посте - то были названия полей контроллера.
Более грубый вариант решения проблемы - тупо запретить прыжки с места, если активен боевой режим.
Можно nextAni устанавливать в _s_walk. Тогда после окончания анимации он плавно перейдет в боевой режим.
 
Последнее редактирование:

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.081
Благодарности
1.901
Баллы
320
Можно nextAni устанавливать в _s_walk. Тогда после окончания анимации он плавно перейдет в боевой режим.
Кстати, это и будет реальным багфиксом: разрабочики просто забыли это сделать в паре мест. Правда, ремастер с ним всё равно почему-то не работает плавнее *sorry*
Вот как это задумывалось Пираньями:

А это моя попытка, видимо, менее удачная:
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.880
Баллы
420
Можно nextAni устанавливать в _s_walk
s_walk никакого отношения к режиму 1H не имеет. Для 1H есть свое состояние s_1Hwalk и s1Hrun. Прыжок с места создан исключительно для обычного режима передвижения. То, что он работает в боевке - чистой воды ошибка настройки динамической модели.Своих фаз анимации прыжка для боевки разработчики не завезли.
 

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.081
Благодарности
1.901
Баллы
320
_s_walk никакого отношения к режиму 1H не имеет. Для 1H есть свое состояние s_1Hwalk и s1Hrun.
Посмотри надписи на первом кадре первого видео: в поле _s_walk как раз и записывается одна из этих анимаций. Т.е. я не имя анимации имел в виду, а поле контроллера, в котором записан индекс анимации для текущего режима боя/ходьбы.
Прыжок с места создан исключительно для обычного режима передвижения. То, что он работает в боевке - чистой воды ошибка настройки динамической модели.Своих фаз анимации прыжка для боевки разработчики не завезли.
В коде не видно намерения разрабов ограничить прыжки для боевого режима. Зато видна интенция сделать плавный переход от прыжка к любому из режимов простоя за счёт установки следующей анимации в значение _s_walk. Так что если это и баг, то это баг дизайна игры, а не кода.

Если вырезать все прыжки, то только опционально. А если опционально, то и с оригинальной системой нужно что-то делать.
В общем-то, я уже поправил, только хотелось чтобы это и на ремастере работало. Так что, если вдруг поймёте почему анимации ремастера не умеют в Fadeout, дайте знать: может и это получится исправить.
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.880
Баллы
420
Так что, если вдруг поймёте почему анимации ремастера не умеют в Fadeout, дайте знать
Прыжок приземляет тебя в анимацию stand обычного режима без оружия. А туша находится в режиме ближнего боя. Там разрыв идет между прыжком, принадлежащим к одному режиму передвижения, и боевой стойкой, принадлежащий совершенно другому режиму. Нельзя просто прописать переходы между анимациями, связи которым не назначены в движке. В Готике в целом все разграничено на свои отдельные фазы. За исключением пару таких кривых мест, к которым также относится и режим sneak, для котрого не существует отдельных анимаций боя.

Должен быть прыжок с места со своими анимациями, относящимися к ближнему бою. И соотвествующие переходы из них в состояние s_1hrun/s_1hwalk.
 

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.081
Благодарности
1.901
Баллы
320
Нельзя просто прописать переходы между анимациями, связи которым не назначены в движке.
А я прописал. И получилось, на мой взгляд, неплохо.

И я разобрался почему с ремастером плавный переход из прыжка не работает: смешивание отключено в скриптах:
1644521356927.png
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.880
Баллы
420
Ну так поставь не ноль и увидишь, что никакого эффекта для перехода в боевую стойку нет. Потому что:
2_Stand в данном случае это переход на анимацию s_run/s_walk. А у тебя в боевой стойке s_1hrun/s_1hwalk.

Я так понял, ты запилил костыль, который добавляет переход к несвязанным логически фазам анимаций. Но по факту этого в движке нет. Код написан просто и тупо: в нем физически нет указателя на боевую стойку. А значит, и блендить движку нечего.

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

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.081
Благодарности
1.901
Баллы
320
Ну так поставь не ноль и увидишь, что никакого эффекта для перехода в боевую стойку нет. Потому что:
2_Stand в данном случае это переход на анимацию s_run/s_walk. А у тебя в боевой стойке s_1hrun/s_1hwalk.
Да как нет то!? Я видео для чего приводил? Будет смешана конечная фаза анимации T_JUMP_2_STAND с анимацией S_1HRUN. Вот ещё раз сравнение прыжка ремастера без блендаута и с ним (с моим фиксом, разумеется):

Я так понял, ты запилил костыль, который добавляет переход к несвязанным логически фазам анимаций. Но по факту этого в движке нет.
Я указал движку, что после анимации T_JUMP_2_STAND надо переходить в анимацию S_1HRUN (ну или какая там будет в зависимости от режима). А смешивать их движок будет автоматически. В коде Пираний есть одно упоминание этого приёма, я просто добавил то же самое в пару других мест:
1644529504749.png


Единственное, боёвку приходится немного править, чтобы новые состояния модели не оказывали на неё влияния.

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

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.880
Баллы
420
Да как нет то!? Я видео для чего приводил?
Я про чистую версию пояснял, почему у меня нули и почему в чистой версии бесполезно писать что-то отличное от нуля.
Ты же сделал пусть и рабочий, но костыль. С точки зрения логики построения модели такой переход не совсем корректный, т.к. сшивает две анимации от совершенно разных состояний тела. Более правильный способ сделать отдельный прыжок для боевых состояний. Типа t_1hjump_2_stand. И тогда все смешивание будет работать через внешний скрипт.
Daedalus:
ani        ("t_Stand_2_1hJump"         1    "s_1hJump"        0.0    0.0    MF    "Hum_1hJump.asc"        F    0    22)

ani        ("s_1hJump"                      1    "s_1hJump"        0.0    0.0     MF    "Hum_1hJump.asc"    F    23    23)

ani        ("t_1hJump_2_Stand"        1    ""                      0.0     0.0    M.    "Hum_1hJump.asc"        F    24    33)

Базовая анимация прыжка правится так, что стартовая и конечная точка - это боевая стойка. И всё. Распихивается по всем оверлеям. И работает как часы.
 
Последнее редактирование:

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.081
Благодарности
1.901
Баллы
320
Я про чистую версию пояснял, почему у меня нули и почему в чистой версии бесполезно писать что-то отличное от нуля.
Я понял.
Ты же сделал пусть и рабочий, но костыль.
Нет, не костыль. В оригинале движок не в курсе, что после анимации T_JUMP_2_STAND начнётся анимация S_1HRUN, например. Именно это я и исправил. Теперь он в курсе. И может принять решение о смешивании двух анимаций, если их соответствующие параметры этому способствуют.
Базовая анимация прыжка правится так, что стартовая и конечная точка - это боевая стойка. И всё. Распихивается по всем оверлеям. И работает как часы.
Спорить, что вагон новых, качественно сделанных анимаций, будет выглядеть лучше программного смешивания, я, конечно же, не буду.

P.S. Кстати, заметил, что с этим плагином скелет-маг не может достать свою магию (Г2А).
 

alex_draven


Модостроитель
Регистрация
13 Сен 2007
Сообщения
2.183
Благодарности
2.880
Баллы
420
В оригинале движок не в курсе, что после анимации T_JUMP_2_STAND начнётся анимация S_1HRUN, например.
Все правильно. Не в курсе. Еще раз: потому что прыжок НЕ принадлежит боевому режиму. Нельзя связать то, для чего не прописан переход. Ты его указал вручную. Только тогда это начинает работать.

Кстати, заметил, что с этим плагином скелет-маг не может достать свою магию (Г2А).
Я уже разобрался с этим. В Г2а разрабы что-то перемудрили со скриптами для магов-скелетов. В результате чего только с родным оверлеем магия работает. Оверлей каким-то образом блокирует скриптовую ошибку. И циклический расколбас уходит. Если в оригинале убрать у мага оверлей, он тоже глючит. Может глючить даже без магии с кулачным боем. Поэтому я тупо сделал оверлей как в Г2а и все работает теперь.
В Г1 подобной фигни нет.
 

Raswen

Гражданин Хориниса
Регистрация
18 Фев 2014
Сообщения
1.352
Благодарности
784
Баллы
260
Ты его указал вручную
Никто лучше ничего подобного не предлагал за 20 лет и думаю не предложит. Хоть как это назовите, костыль не костыль, главное это работает и смотрится очень хорошо.
 
Сверху Снизу