Перенесение моделей из DX игр на Source
Нам потребуется:
3D Ripper DX 1.8 | Скачать |
S.T.A.L.K.E.R. - Shadow Of Chernobyl
|
|
Autodesk 3D Studio Max 2010 (торрент)
| Скачать
|
Source SMD Importer/Exporter
| Скачать
|
Adobe Photoshop CS 3/4/5 (торрент)
| Скачать
|
Adobe Photoshop .VMT Plugin
| Скачать
|
GUI Studio MDL
| Скачать
|
Итак, что за 3D Ripper такой? Эта прога позволяет импортить геометрию из DirectX 6/8/9 (как написано в версии 1.8) игр в формат ".3DR" (плагин для Макса устанавливается автоматически) путём сканирование видеопамяти. То есть, она как бы делает скриншот, только 3D-шный из игры, тырит геометрию, текстуры и шейдеры.
Скачали всё что нужно для тутора, установили, начнём.
Шаг 1. Rip сцены.
Будем тырить модель машины ЗАЗ 968М из S.T.A.L.K.E.R.'а.
Открываем Риппер, вылазит вот такое окошко:
Настроим кое-что:
Please select DirectX 6/8/9 application to analize - здесь выбираем наш EXE-шник запуска игры. (То есть, выбираем наш "XR_3DA.exe" в папке "bin" в директории Сталкера. Например у меня это "D:\Игры\S.T.A.L.K.E.R\bin\XR_3DA.exe")Command line parameters - сюда пишем дополнительную команду для запуска, в данном случае нам не нужно, оставим пустым.Options:Capture Key - Клавиша для сохранения геометрии, текстур и шейдеров
Wireframe mode Key - Клавиша для включения Wireframe режима в игре
Disable Textures Key - Клавиша для выключения текстур в игре
Галочки, которые справа, нам не нужны.
Frames output directory - директория сохранения наших *.3DR
Textures output directory - директория сохранения текстур
Shaders output directory - директория сохранения шейдеровТак, настроили? Вперёд! Жмём "Launch".
Запускается игра, загружаем и идём к той модели, которую будем рипать. Как я сказал, в нашем случае это Запорожец.
Стоим лицом к ней, чтоб была видна вся модель, жмём "F12".
В зависимости от конфигурации вашего компа, игра подвиснет на некоторое время, сохраняя ".3DR", текстуры и шейдеры.
Хорошо. Выходим из игры, она нам больше не понадобится.
Шаг 2. Исправление модели.
Запускаем 3DS Max, импортируем наш ".3DR"
Вылезает окошко импорта, вроде ничего настраивать не надо, только в Recommended values выберем единственное значение.
Жмём "ОК".
Опять же, в зависимости от вашей конфигурации, ждём некоторое время, когда Макс загружает наш ".3DR".
Сцена загрузится очень маленькой и может быть повёрнутой (а иногда и искаженной), но мы же не ищем лёгких путей :D
В самом центре координат и будет то место, откуда "фоткали".
Сохраняем "Запор" в другой файл. Выделяем его, File=> Save as => Save selected (Файл => Сохранить как => Сохранить выделенное)
Вот так:
Закрываем эту сцену она нам больше не нужна, открываем только что сохраненную модель.
Что самое первое, дак надо выбрать "Hierachy" => "Affect Pivot Only" => "Center to object", чтобы сместить наш Pivot (опору, эти стрелочки, за которые перемещаем) объекта на его центр, затем опять нажимаем на "Affect Pivot Only".
Дальше, выпрямляем наш Запор, разворачиваем как надо, можно, если перекошена модель, применить модификатор FFD 2x2x2 и исправлять с ним.
Отмасштабируем объект, взяв за пример какую-нибудь декомпилированную модельку тачки из игры. (MDL Decompiler'ом декомпилируем в .SMD, и импортнём с помощью SMD Import плагина в Макс прямо в эту сцену.)
Выровняли? Отмасштабировали? Хорошо. Займёмся текстурами.
Шаг 3. Текстуры и экспорт Reference модели.
Открываем Material Editor в Максе (жмём "M"). Жмём на такую пипетку, как показано на рисунке, и тыкаем ей на модель. У нас сразу высветится текстура, которой покрыт наш объект.
Смотрим, где она лежит, как называется, и открываем её в Photoshop. Сохраняем в .tga с именем "zaporozhec" (для того, чтобы читал Макс), и сохраняем в *.VTF, с помощью .VTF плагина для Photoshop, для того, чтобы читал движок, тоже с именем "zaporozhec". Важно, чтобы .tga и .vtf были одного имени. Затем вылезает табличка "VTF Options", просто выбираем "Template - Compressed Texture"
Затем пишем ".vmt" - материал текстуры: создаём .txt документ, туда пишем следующее:
"VertexLitGeneric" // Шейдер - "Вертексное освещение"
{
"$basetexture" "models\stalker\zaporozhec\zaporozhec" //базовая текстура модели
}Сохраняем с расширением ".vmt" (Файл=>Сохранить как=> zaporozhec.vmt)
Кладём наши .vmt и .vtf в папку игры, в /materials/models/stalker/zapor/.
Переключаемся на Макс.
Займёмся моделью: применим нашу текстуру с новым именем. Для этого в Material Editor'е выберем в списке шейдеров шейдер "Standard", и выберем нашу только что сделанную .tga текстуру запора.
И с помощью нашего SMD Export плагина, экспортируем нашу модель, которую назовём "zapor.smd" в папку игры, в models/stalker/zapor. Не забудем сохранить исходник!
Экспортим вот так:
Всё. Основа модели запорожца готова.
Шаг 4. Collision Model.
Так, теперь займёмся физбоксом (collision model, модель столкновений) нашей модели.
Это упрощённая физическая модель столкновений с окружающим миром, она нужна для того, чтобы в модель не проваливались разные физ. объекты, сам игрок через неё не проходил, через неё не пролетали пули.
Делать физбокс несложно, просто создаём box'ы, повторяющие упрощённую геометрию машины. Важно, чтобы боксы быле НЕ вогнутые. Вот примерно так:
После того, как физбокс сделали, удаляем объект запорожец из сцены.
Затем, применяем этим боксам группу сглаживания 1 и наносим текстуру (можно ту, которую уже использует "zapor.smd".)
Source SMD Exporter'ом экспортим модель под именем "zapor_phymodel.smd" в папку игры models/stalker/zapor.
Так:
Всё, референс готов, физбокс готов, можно компилировать.
Шаг 5. Компиляция.
Делаем .QC скрипт: он нужен для компилятора, в нём указываются все .smd, текстуры, анимации и т.д. Компилятор собирает .mdl по этому .QC скрипту.
Создаём в папке игры, в /materials/models/stalker/zapor/ текстовый документ.
Пишем вот что:
$modelname "stalker/zapor/zapor.mdl" //название скомпилированной модели
$scale 1.0 // масштаб
$body "body" "zapor.smd" // наш smd
$cdmaterials "models\stalker\zaporozhec" // путь к текстуре
$surfaceprop "metal" // материал, из которого сделана модель
$sequence idle "zapor" fps 30 ACT_IDLE 1 // анимация, у нас только idle
$staticprop // модель статическая
$collisionmodel "zapor_phymodel.smd" // наш collision model
{
$concave // сам физбокс имеет вогнутые места (не его части)
}Сохраняем как "zapor.qc".
.qc скрипт создан. Открываем GUI Studio MDL, выбираем этот QC, компилируем.
Если компиляция прошла успешно, готовая модель появится в папке игры, в /materials/models/stalker/zapor/.
Теперь можно её смело использовать на карте.
Модель в редакторе:
Что было:
А что стало:
Источник: http://КажьАжь ©
Комментарии
06.09.2011
Или проблема в Ripper'е????