Converting 3d model from Soul Calibur 4

Converting 3d model from Soul Calibur 4

Русский / English

В статье подробно описан процесс конвертирования моделей из игры Soul Calibur 4 в 3ds Max. Сконвертированные модели имеют скелет и готовы к анимации.

Примечание: Статья рассчитана на пользователей знакомых с работой в 3ds Max и не описывает такие моменты как, например, текстурирование объектов, настройка материалов и т.п.

Для  конвертирования потребуются следующие инструменты:

  • 3ds Max (я использую 2008 х64) должно работать на версиях: 7-2011
  • SPD Unpacker v0.2.1 (распаковщик моделей из *.spd файлов) Автор: Tosyk [скачать]
  • Microsoft .NET Framework v3.5 (библиотеки для работы SPD Unpacker) Автор: Mic*oft [страница]
  • FBX Plug-in (плагин для 3ds Max для открытия *.fbx) [страница]
  • gw::OBJ Importer (плагин для 3ds Max) [страница]

1. Распаковка игровых архивов. Все ресурсы игры Soul Calibur 4 находятся на диске, в данном случае это диск для xbox360. Для распаковки ресурсов предлагаю воспользоваться этим туториалом [страница].

2. Конвертирование моделей. В этой статье я объясню как конвертировать персонажей. Однако конвертирование объектов ничем не отличается. Архивы содержащие ресурсы относящиеся к персонажам располагаются по адресу:

<путь распаковки>\Soul-Calibur-4-(xbox360)\creation\model\

И имеют префикс R_ALL_*. Например первый такой архив это:

<путь распаковки>\Soul-Calibur-4-(xbox360)\creation\model\R_ALL_00b_360.spd

В таких архивах находятся персонажи с полным набором начальной (по игровым условиям) атрибутики. Во всех остальных архивах в этой же папке находятся дополнительные аксессуары/объекты/текстуры для этих (тех, что с префиксом R_ALL_*) персонажей.
Для примера конвертирования я возьму архив с персонажем Kilik, файл с этим персонажем:

<путь распаковки>\Soul-Calibur-4-(xbox360)\creation\model\R_ALL_00c_360.spd

Распаковывать *.spd файлы удобнее всего с помощью SPD Unpacker‘а который я сделал на основе двух программ:

  • xbdecompressor.exe (декомпрессор) Автор: Mic*oft
  • spd_ex.exe (распаковщик) Автор: Orez [страница]

за что авторам огромное спасибо!

Для распаковки нужно перетащить и отпустить R_ALL_00c_360.spd на c4_spd_un.exe. При этом вместо файла R_ALL_00c_360.spd будет создана папка с таким же именем (в данном случае — R_ALL_00c_360) с распакованными внутри папкой textures с текстурами (*.dds) и файлами:

  • R_ALL_00c_360_dec.fbx — 3d модель со скелетом
  • R_ALL_00c_360_dec.obj — 3d модель без скелета
  • R_ALL_00c_360_dec.mtl — файл с материалами (нужен для *.obj)
  • R_ALL_00c_360_dec_map.txt — список текстур *.dds из папки textures

Исходный файл R_ALL_00c_360.spd будет также перемещён в эту папку.

В 3ds max версии 2008 есть встроенный плагин для импорта *.fbx файлов, но для лучшей совместимости 3ds max с *.fbx файлами я рекомендую установить плагин для импорта *.fbx — запустить установщик и следовать инструкциям. В 3ds Max, запустить импортер File -> Import -> Autodesk (*.fbx) и выбрать файл. В следующем окне настроек плагина fbx нужно нажать Ok. После загрузки модели в 3ds max в окне просмотра будет это:

Предлагаю немного оптимизировать\улучшить модель:

  • убрать мерцание — выделить всё (Ctrl+A), правой кнопкой щёлкнуть на модели -> Object Properties (Свойства объекта) -> поставить галочку на пункт Backface Cull. Это избавит модель от отображения полигонов с обратной стороны, часто эти полигоны пересекаются с полигонами повёрнутыми к нам лицом, что вызывает мерцание
  • увеличить модель — выделить всё (Ctrl+A) и инструментом Scale увеличить модель на 10000%, таким образом персонаж (в данном случае Kilik) станет ростом примерно 183 см
  • размещение аксессуаров — все элементы одежды/брони у персонажей расположены в нулевой точке координат, это особенность конвертера и с этим ничего не поделать, с помощью инструмента Align перетаскиваем все аксессуары в нужные места, это очень просто сделать ориентируясь на оси объектов и правильное положение на скриншотах из интернета. Вот настройки инструмента Align, подходят для всего кроме челюсти:
  • удалить кадр анимации — выделить всё (Ctrl+A), и удалить первый кадр анимации с полосы анимации, это уменьшит отображаемое количество линий во окне просмотра, к слову сказать при импорте *.fbx в настройках импортера можно убрать галочку в разделе Animation
  • разделить модель — в одной сцене находится 2 костюма одного и того же персонажа, но имеют общий скелет, первый обычный костюм, а второй так называемый rage-костюм отличается тем, что выглядит разорванным. Для удобства работы можно выделить все элементы каждого костюма и заключить выбранное в группы

После вышеперечисленных манипуляций получим готовую модель (я скрыл кости):

Чтобы определить в каком файле какой персонаж находится предлагаю воспользоваться списком соответствий, он основан на списке, автором которого является Firsak [страница]:

Спойлер
R_ALL_001_360.spd — Mitsurugi
R_ALL_002_360.spd — Seong_Mi-Na
R_ALL_003_360.spd — Taki
R_ALL_004_360.spd — Maxi
R_ALL_005_360.spd — Voldo
R_ALL_006_360.spd — Sophitia
R_ALL_007_360.spd — Siegfried
R_ALL_008_360.spd — Rock
R_ALL_00b_360.spd — Ivy
R_ALL_00c_360.spd — Kilik
R_ALL_00d_360.spd — Xianghua
R_ALL_00e_360.spd — Lizardman
R_ALL_00f_360.spd — Yoshimitsu
R_ALL_011_360.spd — Nightmare
R_ALL_012_360.spd — Astaroth
R_ALL_014_360.spd — Cervantes de Leon
R_ALL_015_360.spd — Raphael
R_ALL_016_360.spd — Talim
R_ALL_017_360.spd — Cassandra
R_ALL_01a_360.spd — Yun-Seong
R_ALL_022_360.spd — Setsuka
R_ALL_023_360.spd — Tira
R_ALL_024_360.spd — Zasalamel
R_ALL_028_360.spd — Hilde
R_ALL_029_360.spd — Algol
R_ALL_02a_360.spd — Vader
R_ALL_02b_360.spd — Yoda
R_ALL_02c_360.spd — Apprentice
R_ALL_030_360.spd — Amy
R_ALL_040_360.spd — Angol-fear
R_ALL_041_360.spd — Kamikirimusi
R_ALL_042_360.spd — Shura
R_ALL_043_360.spd — Ashlotte
R_ALL_044_360.spd — Scheherazade
R_ALL_050_360.spd — Arcturus
R_ALL_080_360.spd — неидентифицированный персонаж, мужчина
R_ALL_081_360.spd — неидентифицированный персонаж, женщина
R_ALL_082_360.spd — Jacqueline
R_ALL_083_360.spd — Auguste
R_ALL_084_360.spd — Lizardman
R_ALL_085_360.spd — неидентифицированный персонаж, мужчина
R_ALL_086_360.spd — Valmiro
R_ALL_087_360.spd — Algol
R_ALL_088_360.spd — G-Mitsurugi (Dummy)
R_ALL_08f_360.spd — неидентифицированный персонаж, мужчина
R_ALL_101_360.spd — Mitsurugi (добавлено 2011-04-01)
R_ALL_102_360.spd — неидентифицированный персонаж, женщина
R_ALL_103_360.spd — Taki
R_ALL_104_360.spd — Maxi (добавлено 2011-04-01)
R_ALL_105_360.spd — Voldo
R_ALL_106_360.spd — Sofitia
R_ALL_107_360.spd — неидентифицированный персонаж, мужчина
R_ALL_108_360.spd — Rock (добавлено 2011-04-01)
R_ALL_10b_360.spd — Ivy
R_ALL_10c_360.spd — Kilik
R_ALL_10d_360.spd — Xianghua
R_ALL_10e_360.spd — Lizardman
R_ALL_10f_360.spd — Yoshimitsu
R_ALL_111_360.spd — Nightmare
R_ALL_112_360.spd — Astaroth (добавлено 2011-04-01)
R_ALL_114_360.spd — Cervantes de Leon (добавлено 2011-04-01)
R_ALL_115_360.spd — Raphael
R_ALL_116_360.spd — Talim
R_ALL_117_360.spd — Cassandra
R_ALL_11a_360.spd — Yun-seong
R_ALL_122_360.spd — Setsuka
R_ALL_123_360.spd — Tira
R_ALL_124_360.spd — Dverger
R_ALL_128_360.spd — Hilde
R_ALL_129_360.spd — Algol
R_ALL_12a_360.spd — Vader
R_ALL_12b_360.spd — Yoda
R_ALL_12c_360.spd — Apprentice
R_ALL_130_360.spd — Amy
R_ALL_140_360.spd — Angol-fear
R_ALL_141_360.spd — Kamikirimusi
R_ALL_142_360.spd — Shura
R_ALL_143_360.spd — Ashlotte
R_ALL_144_360.spd — Scheherazade
R_ALL_150_360.spd — неидентифицированный персонаж, мужчина
R_ALL_180_360.spd — неидентифицированный персонаж, женщина
R_ALL_183_360.spd — Marienbard
R_ALL_184_360.spd — Lizardman
R_ALL_185_360.spd — неидентифицированный персонаж, мужчина
R_ALL_186_360.spd — неидентифицированный персонаж, мужчина
R_ALL_188_360.spd — неидентифицированный персонаж, мужчина
R_ALL_18f_360.spd — неидентифицированный персонаж, женщина
R_ALL_285_360.spd — неидентифицированный персонаж, мужчина
R_ALL_286_360.spd — неидентифицированный персонаж, мужчина
R_ALL_381_360.spd — неидентифицированный персонаж, мужчина
R_ALL_385_360.spd — неидентифицированный персонаж, мужчина
R_ALL_485_360.spd — неидентифицированный персонаж, мужчина

3. Текстуры и материалы. Текстуры распаковываются вместе с моделями в папку textures и имеют формат *.dds. Однако вероятно в игру Soul Calibur 4 встроен «мощный» редактор настройки цветов персонажа/костюма/аксессуаров. Разработчики разделили все вероятные места покраски элементов персонажа по отдельным каналам и файлам-маскам.

В этом разделе я расскажу как настроить материал Vray для персонажа Soul Calibur 4 так, чтобы цвета при рендере соответствовали тому, что представленно в игре. В качестве примера я взял основной элемент костюма для Ivy (Isabella Valentine):

Спойлер

  1. выбрать материал кликнув на него
  2. кликнуть на кнопку Standart
  3. выбрать материал Composite
  4. Клукнуть Ok
  5. в следующем окне выбрать Discard old material
  6. кликнуть на Base Material
  7. клукнуть на Diffuse Color
  8. выбрать Mix
  9. кликнуть Ok
  10. в Color #1 выберите вашу основную (диффузную) текстур (тип материала — Bitmap)
  11. в Color #2 в цветном «боксе» выберите Основной цвет, в моём случае это Золотой цвет
  12. параметр Mix Amount установите равным 70.0
  13. поднемитесь в материал Composite, кликните на None напротив Mat. 1 и выберете материал Standart
  14. для Diffuse Color выберете тип материала Mix и войдите в него
  15. в Color #1 выберите вашу основную (диффузную) текстур (тип материала — Bitmap)
  16. в Color #2 выберите тип материала Mix
  17. параметр Mix Amount установите равным 70.0 и войдите в Mix
  18. в Color #1 в цветном «боксе» выберите Белый цвет
  19. в Color #2 в цветном «боксе» выберите Дополнительный цвет, в моём случае это Пурпурный цвет
  20. в Mix Amount выберететип материала RGB Tint
  21. в Soul Calibur 4 для раскрашивания текстур используются текстуры-маски: Красный (Red) канал + Зелёный (Green) канал + Голубой (Blue) канал. В данном случае нам нужен только Красный канал, выберите белый цвет для R и чёрный цвет для G и B
  22. выберети вашу текстуру-маску для Map
  23. после Визуализации вы получите это (Жёлтый цвет можно поменять в шаге 11, Пурпурный цвет можно поменять в шаге 19):

После настройки материалов и с помощью визуализатора Vray можно получить такие рендеры:

Спойлер

Для того чтобы определить цвета для каждого персонажа Mario_Kart сделал скриншоты игрового редактора [скачать] [страница]. Однако стоит учесть цветовые погрешности при визуализации, потому как на цвет в случае с 3ds max влияет довольно много условий, а на цвета в игре почти ничего не влияет.
Так же для примера я публикую модель персонажа Kilik в формате *.max для 3ds max 2008 [скачать].

5. Визуализация. 3ds max и Vray.

33 thoughts on “Converting 3d model from Soul Calibur 4

  1. Уведомление: celecoxib pronunciation
  2. Уведомление: augmentin mrsa
  3. Уведомление: buspar 10mg
  4. Уведомление: celexa pregnancy category
  5. Уведомление: remeron and dementia
  6. Уведомление: acarbose bayer
  7. Уведомление: abilify use
  8. Уведомление: protonix mechanism of action
  9. Уведомление: diltiazem contraindications
  10. Уведомление: repaglinide and diabetes prevention
  11. Уведомление: muscle relaxer robaxin
  12. Уведомление: semaglutide and wellbutrin xl
  13. Уведомление: why am i gaining weight on effexor
  14. Уведомление: actos colegiados
  15. Уведомление: porn

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *