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

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

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

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

Вступление

Итак, всем доброго времени суток. Перерыв весь интернет, нигде не нашёл плагина, который позволял бы импортировать\экспортировать модель из 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