Добавление аддонов на оружие без редактирования анимации — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
(Отмена правки 14865, сделанной участником 77.37.156.23 (обс.)) |
OlegatoR (обсуждение | вклад) |
(не показаны 3 промежуточных версий 3 участников) | |
(нет различий)
|
Текущая версия на 11:15, 12 марта 2017
Данная статья посвящена возможности прикрепления обвесов на оружие просто не имеющих их в модели HUD. То есть при выполнении всего ниже сказанного можно будет повесить глушитель на СВД, прицел на ТОЗ-34 и т.д (Подствольник на данный момент установить не получится — как не крути понадобится новая анимация). И ещё один нюанс — аддон на пушке можно будет сделать либо несъемным, либо отсутствующий (при попытке сделать обвес съемным, игра вылетает с банальным логом «stack trace»). Делал с замахом на ЗП, ЧН, но подходит и к ТЧ - различия только из - за разделения мешей и анимаций - руки от оружия.
Ну давайте собственно перейдем к делу.
Содержание
Необходимый минимум
- Самое главное — прямые руки растущие из плеч и умеющая мыслить голова.
- Умение работать с 3D редакторами и конфигами оружия или желание научиться там работать и хотя бы немного времени.
- Milkshape 3D или любой другой редактор с нужными плагинами импорта\экспорта.
- Сталкер SDK не суть важно какой.
- Конвертер Бардака (понадобится для вытаскивания анимаций и файла .bones) и умение с ним работать.
- Распакованные архивы Сталкера.
Этап I — редактирование модели
- Для начала импортируем нужную модель.
- Импортируете требуемые вам аддоны(если вместе с ними импортируются новые кости - удалите их), редактируете их по своему вкусу и ставите куда вам больше нравится.
- Далее создаете новую кость под аддон (wpn_scope - для оптики и wpn_silenser для глушителя) на том джоинте который не должен двигаться относительно обвеса. К примеру оба аддона для ТОЗ-34 будут завязаны на переламывающемся стволе - кость с названием bend_reload. Новая кость должна находиться на той же координате что и кость-основа. Оригинальные джоинты не двигать!!!
- Осталось прибиндидь аддоны к соответствующим костям и экспортировать в .object.
- А для World модели просто создаете дополнительные джоинты не суть важно где.
- Этап редактирования закончен.
Этап II — настройка модели в SDK
Импортирование файла .bones и анимаций
Начнём с форматов. .bones - это формат зон соприкосновения мешей с окружающим миром. Содержится в мировой модели. .skls - это формат множественной анимаций (1 файл - несколько анимаций). Содержится либо в HUD'е модели (в основном ТЧ), либо в .omf файла имеющего вид wpn_(название оружия)_hud_animation.omf
Теперь я расскажу о создании .bat файла требуемого для работы с конвертером Бардака, так как здесь погорело не мало народу. Технология довольна проста - создаёте .txt файл, набиваете требуемую команду (например: converter -skls wpn_svd_hud_animation.omf) и "сохранить как".
Ставите вот это в соответствующих строках:
Имя файла: (любое).bat
Тип файла: все файлы
И сохраняете. Готово.
Настройка в SDK
Загружаете ранее созданный .object Настраиваете вкладки surfaces и object по своему вкусу.
Настройка для HUD модели - вкладка motions. Импортируете вытащенный skls через edit\append (через motion reference получите вылет в игре). Экспортируете на замену оригинальному wpn_(название)_hud.ogf
Настройка для World модели - вкладка bones. Загружаете .bones через file\load и настраиваете. Экспортируете на замену оригинальному wpn_(название).ogf
Более подробно о настройке в SDK можно узнать в этой статье. А о настройке конфигов в этой и этой статьях.
От автора
Теперь если вы ни где не накосячили, всё должно работать. Удачи вам в ваших творческих свершениях! И ещё, если кто найдет способ устранения вылета не дающего сделать новый аддон съемным, прошу - дополните эту статью.
Заранее спасибо!
Дополнение: редактирование моделей ТЧ
К сожалению, описанный выше способ не сработает при редактировании моделей ТЧ – по двум причинам:
- в Milkshape если просто добавить кости с помощью инструмента Joint – при просмотре анимаций модель завяжется в узел;
- при импорте анимаций SDK выдаст нечто наподобие «не могу найти кость <bone_name> в анимации <animation_name>» и, соответственно, откажется импортировать.
Придется действовать по-другому. Из инструментов, кроме выше перечисленного, понадобится Ms3d Hierarchy Editor.
Порядок действий:
1. Создаем копию исходной модели.
2. В копии добавляем нужные кости.
3. Добавленные кости поварачиваем на -90 градусов по оси Х относительно родительской кости (далее станет видно для чего). К сожалению поворот костей в Milkshape работает как-то странно – поэтому придется вручную разместить кости так, как будто всю совокупность костей повернули.
4. С помощью Hierarchy Editor’а в копии отсоединяем старшую из созданных костей от ее родителя.
5. Всю изначальную геометрию и весь изначальный скелет в копии удаляем (таким образом должны остаться только созданные кости).
6. Открываем оригинал и подгружаем (Merge) копию.
7. В оригинале модели с помощью Hierarchy Editor’а привязываем созданные кости к нужным родителям.
Как видим, совокупность созданных костей повернулась на +90 градусов и оказалась расположена там, где требовалось. Сохраняем (+ экспортируем в .object).
8. Поочередно импортируем и пересохраняем с измененным скелетом все анимации.
После этого из полученных .object и .skl файлов в SDK как обычно собираем модель. Теперь к созданным костям спокойно можно присоединять аддоны – анимации будут корректны, аддоны будут одеваться/сниматься.
Пояснение: процесс «создание костей – отсоединение – удаление исходной геометрии и скелета – объединение моделей – присоединение костей» необходим для решения первой из указанных проблем – завязывания модели в узел. Вторая проблема решается пересохранением всех анимаций.
Важное замечание: для того, чтобы съемные аддоны работали корректно, созданным костям нужно дать стандартные имена:
- wpn_silencer – для глушителя;
- wpn_scope – для оптического прицела;
- wpn_grenade_launcher и wpn_grenade – для подствольного гранатомета (возможно понадобятся еще кости – для прицела и спускового крючка).