Как вставить модель в игру с помощью Blender 3D — S.T.A.L.K.E.R. Inside Wiki

Как вставить модель в игру с помощью Blender 3D

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск

Отступление

На данный момент существует версия плагина для Blender 2.77, которая (по состоянию на июль 2016 года) находится в разработке, следовательно, пожелания и замечания очень приветствуются.

Вступление

Итак, всем доброго времени суток. Перерыв весь интернет, нигде не нашёл плагина, который позволял бы импортировать\экспортировать модель из Blender 3D, разве что наткнулся на фразу "...пускай "Питоновцы" (Python - язык, на котором написан Blender 3D) сами пишут скрипт экспорта в .object, Blender'ом вряд ли кто сейчас полюзуется..." и был 3.8.4

5) Плагины для работы с X-Ray форматами в MilkShape 3D

6) X-Ray SDK

Примечание 1: почему Blender версии 2.49? Потому что версии выше, уже содержащие плагины по экспорту формата smd, экспортирует smd, которые очень криво читаются программой Milkshape 3D 3.8.4

Примечание 2: перед работой желательно скопировать текстуры, которые использует модель в папку с установленным X-Ray SDK, а именно в level_editor\gamedata\textures\.

Приступим...

Импорт модели .ogf в Blender 3D и её подготовка

Для начала импортируем необходимую нам модель для правки. Для этого откроем программу Milkshape 3D, импортируем, сохраняем в формат .ms3d.

Далее открываем Blender 3D с установленными выше плагинами, жмём File -> Import -> Milkshape 3D (.ms3d)

Blender and ms3d 01.jpg

На скриншоте изображена модель рук с восстановленным скелетом. Я просто опишу, как я добился модели "чисто рук", без пистолета, иначе завалю скринами.

Значит, импортировал модель рук и пистолета со скелетом из формата .ms3d. Затем удалил старый криво импортированный скелет модели и создал новый скелет только для рук, более понятный. При этом с самой модели удалил меш пистолета и глушителя.

Итак, остались только руки с заново созданным скелетом.

Примечание 3: я переделал с нуля скелет потому, что при импорте в Милку составляющие модель худа меши могут накладываться на скелет абы как, и сам СДК будет принимать его по-своему.

С импортом модели самого оружия - а я решил создать свой худ пулемёта РП-74 (он же ПКМ) - делаем то же самое. И импортируем модель из формата .ms3d в тот же файл с руками. Модель самого пулемёта я взял из ЧН, удалил кость, привязывающую пулемёт к новым рукам (это кость wpn_body).

Проделав нехитрые манипуляции, я подогнал размер модели оружия к размерам рук (можно и наоборот), а также подогнал сам скелет оружия под подогнанную к рукам модель оружия.

Blender and ms3d 02.jpg

Примечание 4: общее число костей — костей рук и оружия в скелете — не должно превышать 64. Это ограничение движка. Для ЧН и ЗП ситуация иная, есть на это отдельная статья.

Настраиваем саму модель - устраняем дефекты сглаживания, правим UV-развёртку, настраиваем "развесовку" групп вершин к костям... Если нужно, конечно.

Примечание 5: центр модели должен совпадать с общим центром арматуры (скелета), иначе при экспорте можете получить "эффект вытянутых пальцев".

Примечание 6: желательно, чтобы одна анимация отрисовывалась не в одном и том же файле, а в отдельном файле во избежание несчастных случаев с самой моделью и порчи других анимаций.

Всё, наша модель со скелетом готовы. Можно анимировать. Как анимировать - это уже вопрос по самой программе.

Blender and ms3d 03.jpg

ВНИМАНИЕ! При анимировании модели старайтесь избегать таких приёмов, как масштабирование и ей подобных - Milkshape и формат .smd не понимают его.


Экспорт анимированной модели в Milkshape

Если вы уже окончательно решили, что ваша модель и её анимации готовы для отправки в Зону, то следуйте дальше...

Нужно нашу модель с анимацией экспортировать теперь в формат .smd (тут-то и пригодился плагин для Blender'а). Формат .smd устроен так, что при сборке в одну модель, содержащей в себе анимацию, нужно экспортировать саму модель со скелетом отдельно, и анимации тоже отдельно. И это, пожалуй, единственный широко доступный формат, который понимают известные 3d-редакторы и конвертеры для игр.

Изначально формат .smd, да и сама программа Milkshape задумывались для работы с моделями игр серии Half-Life, но решили немного их расширить...

Чтобы экспортировать саму модель, пока без анимаций, в режиме Object Mode кликаем сначала на саму модель, и, не снимая выделения с неё, щёлкаем по скелету. Далее в Blender'е жмём File -> Export -> Half-Life 2 (.smd) or (.vta). Выбираем из раскрывшегося меню Static Mesh, экспортируем.

Теперь, чтобы экспортировать анимацию, опять же выделяем модель и арматуру (скелет), жмём File -> Export -> Half-Life 2 (.smd) or (.vta), только теперь экспортируем как Animated Mesh и именуем соответсвенно, чтобы прописать их в игре. И так проделываем со всеми остальными анимациями.

После того, как вы полностью экспортировали и саму модель со скелетом, и анимации, каждую по отдельности, можете закрыть Blender и переходим в Milkshape 3D.


Экспорт модели в СДК

Когда открыли Милку, импортируем сначала саму модель в формате .smd: File -> Import -> Half-life SMD. В параметрах импорта указываем меш (Triangles) и кости (Skeleton), но кости не переименовываем. Указываем необходимые текстуры, экспортируем модель в формат .object, причём необходимо явно задать расширение: имя_модели.object.

Blender and ms3d 04.jpg

Далее импортируем анимации: File -> Import -> Half-life SMD -> ставим галку только напротив Skeleton. Просматриваем анимацию, если есть сомнения (кнопка просмотра в правом нижнем углу). Если просмотрели анимацию, выходим из режима просмотра анимации. Экспортируем анимацию в формат .skl, также указываем расширение: имя_анимации.skl. То же проделываем с другими анимками.

После того, как экспортировали модель и все анимации, смело закрываем Милку. Открываем Actor Editor из X-Ray SDK...


Экспорт модели в игру.

Открываем Actor Editor. Жмём File -> Load, ищём нашу модельку в формате .object. Подгружаем нашу модель...

Теперь черёд анимаций. Открываем во вкладке Motions в поле Object items, нажимаем Append и ищем нашу анимацию в формате .skl. И по очереди загружаем остальные анимации.

Blender and ms3d 05.jpg

Примечание 7: ВАЖНО! После того, как подгрузили модель со скелетом, убедитесь, что она повёрнута "дулом от вас", т.е. спиной, (как на скриншоте выше) иначе в конфигурационных фйлах придётся заморачиваться с настройками разворота. Если разворот сбивает анимация, то отредактируйте её, иначе в игре анимация будет проигрываться не так, как задумано.

Примечание 8: ВАЖНО! Если при просмотре анимации в СДК вы видите такие артефакты, как исчезающие или дёргающиеся пальцы или что-то подобное, переэкспортируйте анимацию из Milkshape, а кривую анимку удалите, нажав на неё а затем на кнопку Delete рядом с кнопкой Append. Если же анимация сложная (как в моём случае), то редактировать проблемные кости придётся в Blender'е и экспортировать в Милку, а оттуда в СДК. Если проблемные кости не исправляются, то их, только их аккуратно нужно переанимировать в Milkshape, после чего экспортировать проблемную анимацию в СДК.

Примечание 9: ВАЖНО! Для таких анимаций, как перезарядка, выстрел, показ\прятание оружия нужно поставить ограничение на проигрывание циклов. Просто выделите подобную анимацию, и в её свойствах поставьте галку напротив Stop at end.

Blender and ms3d 06.jpg

И НАКОНЕЦ! После того, как собрали модель с анимациями, уже теперь можно экспортировать в формат игры .ogf.

С моделью оружия от третьего лица всё гораздо проще. Нужно лишь переконвертировать её из оригинального .ogf (в моём случае из ЧН), перевести его в .object при помощи конвертера от bardak'а, загрузить этот .object в СДК и просто экспортировать снова в .ogf - это для устранения конфликта движка с моделью.


Заключение

После всей этой мути уже смело можно ковыряться в конфигах - на это есть отдельная статья. На первый раз кажется очень тяжело, что лучше уж заплатить несколько тысяч за лицензионный 3DS MAX или Maya... Но поверьте, когда увидите сиё творение в игре, сразу простите себе все обиды за потраченное время :)

Результат:

Перезарядка пулемёта...

...и стрельба.

Участник: Venom9875



Другие места
LANGUAGE