Gratt
Модостроитель
- Регистрация
- 14 Ноя 2014
- Сообщения
- 3.301
- Благодарности
- 4.635
- Баллы
- 625
Мультиплатформенный плагин zModelProtoExtender
Расширение возможностей оверлеев и анимаций
Доступно к скачиванию через Менеджер ресурсов в разделе 'Плагины'
- Скачать Менеджер Ресурсов -
Расширение возможностей оверлеев и анимаций
Доступно к скачиванию через Менеджер ресурсов в разделе 'Плагины'
- Скачать Менеджер Ресурсов -
Требования: Union 1.0h или выше
Платформа: Gothic I, Gothic Sequel, Gothic II, Gothic II NoTR
Исходный код: GitHub
Плагин предназначен для загрузки новых анимаций без необходимости в пересборке базового MDS.
Также плагин позволяет загружать оверлеи со скелетами, которые отличаются от скелета базового MDS.
Областью применения плагина может быть что угодно - от пакетов новых mobsi анимаций до собственных ремастеров.
Поставляться такие пакеты могут независимо от установленных модификаций или других кастомных пакетов анимаций.
1. Встраивание новых анимаций:
Изначально движок не способен загружать новые анимации на лету. Для движка идентификатором анимации является ключ, содержащий ее общую информацию. Набор ключей определяется базовым MDS. Это означает, что оверлеи могут иметь любые ключи, но при условии, что одноименный ключ присутствует в базовом MDS.
Поэтому для добавления анимаций пользователь вынужден прописывать новый кллюч в базовый MDS, а затем компилировать его. Иначе любая попытка загрузки оверлея с неизвестными ключами заканчится критической ошибкой.
Сейчас такая проблема в прошлом. Если пользователь попытается загрузить оверлей с неизвестными ключами, плагин самостоятельно допишет их в базовый для всех NPC.
2. Плавный переход оверлеев:
Известно, что при попытке применить оверлей к персонажу, все его анимации принудительно сбрасываются, что влечет за собой ряд неудобств (прим. невозможно реализовать бесшовный спринт) и багов (прим. зависание анимации при работе ai). По сути, эта система является защитой, позволяющей движку перезагрузить анимации, однако, как мы видим, она несовершенна.
Чтобы не портить игроку впечатление от игры, плагин меняет логику переключения оверлеев. Теперь новые или старые анимации незаметно обновляются в списке анимаций. Но если в момент переключения оверлея проигрывается подменяемая анимация, то плагин производит плавный переход из старой в новую.
3. Совместимость анимаций от разных скелетов:
Движок в части анимаций сильно зависим от скелетной иерархии (иерархии узлов модели). Если скелет MDS оверлея отличается от скелета базового MDS, то игрок либо получает критическую ошибку, либо анатомия персонажа ломается до неузнаваемости. Все потому, движок определяет кости не по их виртуальному имени, а по порядковому номеру в иерархии (порядок определяется во время экспорта ASC). Если хотя бы одна кость будет стоять не на своём месте, то все зависимые от конкретного скелета анимации будут сломаны.
Теперь при загрузке оверлея плагин будет сравнивать скелеты. Если у оверлея коллекция костей отличается от базовой, то плагин достраивает недостающие узлы. Если отличается их порядок, то плагин отсортировывает все иерархии по единому шаблону, а также обновляет индексы узлов в самих анимациях на новые.
4. Автоматическое подключение MDS:
Хотя это можно назвать автоподключением оверлеев, на деле этот процесс немного сложнее. Такое подключение предполагает, что плагин позволит загружать не только отдельно взятый MDS (загружаемый), но и вместе с ним все MDS, имя которых содержит префикс с именем загружаемого (встраиваемые). Например:
Daedalus:
HumanS.mds // загружаемый MDS
HumanS.Remaster.mds // встраиваемый MDS
HumanS.Remaster_1HST0.mds // встраиваемый MDS
HumanS_1HST2.mds // загружаемый MDS
HumanS_1HST2.Remaster.mds // встраиваемый MDS
Последнее редактирование: