Milkshape. Перенос моделей оружия из ЧН, ЗП в ТЧ — S.T.A.L.K.E.R. Inside Wiki

Milkshape. Перенос моделей оружия из ЧН, ЗП в ТЧ

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

Версия от 12:10, 5 апреля 2010; Loxotron (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Как известно, в ЧН система худовых моделей оружия претерпела серьезные изменения. Если в ТЧ оружие и руки представляли собой единую модель с единым скелетом, то, начиная с ЧН, руки стали представлять собой одну модель, а оружие – другую. В целом, данный ход выглядит вполне логичным – можно легко реализовать замену костюма, не надо хранить руки в одном файле с моделью оружия, что экономит место на диске и т.д. Однако в результате получается несовместимость оружия из ТЧ с оружием из ЧН.

Видим, что, вроде бы, перенести оружие из ЧН\ЗП в ТЧ достаточно просто – надо только объединить скелеты рук и оружия, и дело в шляпе. На практике это действительно несложно – при условии, что работаем мы в Maya. Но модмейкеры, как известно, в большинстве своем народ бедный, и Maya им не по карману :). Что же, придется действовать «народными средствами», т.е. при помощи Milkshape 3d, благо, необходимые плагины для него имеются.


1. Два в одном, или объединение скелетов.

Запускаем Милкшейп и импортируем файлы с моделями рук (meshes\dynamics\weapons\wpn_hand\wpn_hand_01.ogf , можно выбрать другой из той же папки) и нашего оружия (допустим, wpn_ak74_hud.ogf).

Milka perenos1.jpg

Видим, что получилось два независимых скелета. Непорядок. Ищем в меню пункт, позволяющий присоединить один джоинт к другому, и… нервно бьем кулаком по столу, так как такого пункта там, как ни странно, нет. Сохраняемся.

Далее есть два пути: изучить структуру MS3D-файла и вручную произвести необходимые правки, или воспользоваться утилитой MS3D Hierarchy Editor (взять можно здесь), специально написанной мной для таких случаев. Думаю, практически все согласятся, что второй способ удобнее, проще и быстрее.

Помещаем файл с утилитой в одну папку с сохранением, запускаем утилиту, вводим название сохранения и видим пронумерованный список из всех джоинтов в сохранении, а также их родительских элементов. В ответ на приглашение вводим <М>, выбираем режим работы Relative (хотя, в принципе, можно попробовать и Absolute – только не забудьте создать копию сохранения), ищем в списке джоинты wpn_body (корневой джоинт оружия) и lead_gun. Вводим подряд их номера.

Milka perenos2.jpg

Запускаем Милкшейп, и видим, что скелеты объединены.


Milka perenos3.jpg

Теперь, если использовался режим Relative, надо выровнять оружие относительно его скелета. Для этого выбираем все вершины (треугольники, группы – меш, одним словом) оружия и перемещаем его так, чтобы добиться первоначального положения джоинтов в оружии. ВНИМАНИЕ! Ни в коем случае не двигайте и не вращайте джоинты! Убьете все! Если возникла крайняя необходимость изменить их положение – перейдите в режим анимации и работайте в нем!

Milka perenos4.jpg

Все! Экспортируем получившуюся модель в формат СДК, загружаем ее в Actor Editor и смотрим, что получилось.

А у нас на очереди анимации.


2. Невозможное возможно, или перенос анимаций.

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

Итак, приступим. Если при работе со скелетом вы находились в режиме анимации, для начала выделите все джоинты и выберите Animate->Remove All Keyframes. На всякий случай.

Теперь берем конвертер Бардака, файлы с анимациями рук (wpn_hand_*_hud_animation.omf) и оружия (здесь анимации могут быть как в отдельном OMF’е, так и в одном OGF’е с оружием), и извлекаем отдельные .skl-файлы с анимациями. Все необходимые анимации проще всего посмотреть в конфиге.

Теперь импортируем анимации оружия и рук для одной и той же ситуации (допустим, reload). Здесь следует оговориться, что оружейных анимаций для какой-либо ситуации может просто не существовать. При этом используется оружейная анимация idle(при импорте в таких случаях будьте аккуратны – можно случайно импортировать анимацию idle для рук и получить немного не то, что ожидалось). Переходим в режим анимации. Выделяем ТОЛЬКО джоинт wpn_body и производим для него Animate->Remove All Keyframes.

Milka perenos5.jpg

Теперь изменяем его положение в первом кадре так, чтобы оружие лежало в руках, а не летало рядом с ними. Жмем Ctrl+K. Проверяем, для всех ли джоинтов первый кадр выставлен ключевым, если нет, кейфреймим. Сохраняемся. Смотрим анимацию, исправляем, если что-то не устраивает.

Milka perenos6.jpg

Экспортим в skl, загружаем в СДК, проверяем. Обычно все проходит нормально, но могут появиться и артефакты. Два наиболее часто встречающихся их вида это:

1) «Исчезновение» - можно заметить, что какая-то из частей модели на какое-то время пропадает. Как ни странно, связано это именно с кейфреймами. Для исправления следует определить, между какими ключевыми кадрами это происходит. Далее выбираем все джоинты и в режиме анимации аккуратно вращаем их в проблемных кейфреймах немного в сторону, а затем возвращаем в исходное положение и жмем Ctrl+K.

2)«Выверт» - при просмотре выясняется, что какая-то часть руки неестественно вращается вокруг своей оси. Для исправления кейфреймим все промежуточные кадры вышеописанным способом.


После получения и экспорта нормальной анимации (сохраниться не забыли?) приступаем к обработке остальных. Для этого копируем MS3D-файл, открываем копию, выбираем джоинт wpn_body, жмем Animate->Copy Keyframes. Выбираем все суставы, Animate->Remove All Keyframes. Импортируем новые анимации, и удаляем все кейфреймы для wpn_body. После этого в первом кадре выполняем Animate->Paste Keyframe и Set Keyframe для wpn_body. Теперь позиция оружия в этой анимации точно соответствует позиции в предыдущей.


Далее настраиваем все в СДК (о том, как это делается, написано в статье «Создание HUD модели оружия»), экспортим в OGF, настраиваем конфиги и проверяем все в игре.


Milka perenos7.jpg


Sin!, Feb 2010


Перенос из doc в wiki - loxotron

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