CG in Games tosyk's blog

6Апр/115

Converting 3d model from Gray Matter

Русский / English

В статье подробно описан процесс конвертирования моделей (скелет и веса присутствуют), а так же анимации из игры Gray Matter (pc) в 3ds Max.

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

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

  • 3ds Max (я использую 2008 х64) должно работать на версиях: 7-2011
  • Blender v2.49b (3d редактор) Автор: Blender Foundation [страница]
  • Python v2.6.5 (библиотеки для работы Blender) Автор: Python Software Foundation [страница]
  • PyFFI (библиотеки для работы скриптов для Blender) Автор: Amorilia [страница]
  • FBX Plug-in (плагин для 3ds Max для открытия *.fbx файлов) Автор: Autodesk [страница]
  • gray-matter-pc-b3d-importer-2010-12-19.blend (скрипт для Blender для импорта *.b3d файлов) Автор: Mariusz Szkaradek [скачать] [страница]
  • PAK util v0.55 (программа для распаковки *.pak файлов) Автор: bacter [скачать] [страница]

1. Распаковка игровых архивов. После установки игры все ресурсы будут находится в папке Data в архивах *.pak. Для распаковки этих архивов нужно использовать программу GrayMatter PAK util. Выглядит она так:

Напротив фразы .PAK file: выбираем *.pak архив, напротив слова Directory: выбираем путь извлечения и нажимаем кнопку Extract.
Советую каждый архив распаковывать в свою папку с именем архива.

2. Конвертирование моделей. Все игровые персонажи, а так же некоторые ключевые игровые объекты находятся в архивах *.pak в папке:

<путь установки>\Gray Matter\Data\characters\

Для примера конвертирования я взял модель Mephi:

<путь установки>\Gray Matter\Data\characters\id_mephi.pak

После распаковки этого архива получим:

  • anims - папка с анимацией
  • mephi.fbm - папка с текстурами
  • mephi_dc.fbm - папка с текстурами (второй костюм)
  • mephi.b3d - 3d модель персонажа
  • mephi.mat - свойства материала для файла mephi.b3d
  • mephi_dc.b3d - 3d модель персонажа (второй костюм)
  • mephi_dc.mat - свойства материала для файла mephi_dc.b3d

Перед началом конвертирования нужно установить Python, Blender и PyFFI.
Для удобства предлагаю для каждого распакованного архива создавать папку с тем же именем, таким образом у меня получается папка с файлами/папками:

<путь установки>\Gray Matter\Data\characters\id_mephi\

В созданую папку нужно скопировать файл gray-matter-pc-b3d-importer-2010-12-19.blend. Теперь запускаем этот файл, откроется Blender:

Справа - окно 3d просмотра. Слева - скрипт, который нужен для импортирования *.b3d файлов. Внизу - панель управления анимациями.
Далее, жмём правой кнопкой по скрипту слева и запускаем его выбрав команду Execute Script:После запуска скрипта откроется небольшое окошко, в котором нужно выбрать какую модель из папки (их в ней только две: mephi.b3d, mephi_dc.b3d) нужно загрузить:

Я выбрал

<путь установки>\Gray Matter\Data\characters\id_mephi\mephi.b3d

и нажал Ok. После непродолжительного процесса модель и анимация (о которой ниже) загружены в Blender:

Для экспорта 3d модели в *.fbx жмём File -> Export -> Autodesk FBX (.fbx)...:и сохраняем модель со следующими параметрами:

Устанавливаем самый новый плагин для импорта *.fbx файлов в 3d max. Открываем 3d max. Импортируем файл *.fbx, в моём случае это:

<путь установки>\Gray Matter\Data\characters\id_mephi\mephi.fbx

После окончания процесса импорта в окне предпросмотра увидим следующее:

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

  • изменить положение костей скелета: заметно, что у некоторых моделей положение большинства костей не соответствует модели, видимо это связано с тем, что разработчики использовали один скелет для всех похожих персонажей. Для изменения положения костей нужно: выделить объект -> в модификаторе Skin разделе Advanced Parameters убрать галку с Always Deform, далее изменять положение костей, после завершения включить Always Deform
  • изменить направление нормалей отдельных полигонов
  • затекстурить модель

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

Сохраняем модель так:

<путь установки>\Gray Matter\Data\characters\id_mephi\mephi.fbx

3. Конвертирование анимации. При импорте моделей в Blender импортируется так же и анимаци. Она автоматически подгружается в программу из папки anims, из файлов *.bba. Выбрать анимацию можно нажав на кнопку Browses existing choices or adds NEW (1), воспроизвести анимацию нажав на кнопку Play Timeline (2):

Выбираем первую анимацию walk.bba, жмём Play Timeline, это вызовет воспроизведение анимации ходьбы.

Примечание: Для того чтобы выбрать другую анимацию нужно предварительно щёлкнуть правой кнопкой мыши по скелету в сцене.

Далее, для экспорта анимации в *.fbx жмём File -> Export -> Autodesk FBX (.fbx)... и сохраняем анимацию со следующими параметрами:

Я сохранил анимацию тут:

<путь установки>\Gray Matter\Data\characters\id_mephi\anims\walk.fbx

Далее, в 3ds max загружаем недавно сохранённую 3d модель:

<путь установки>\Gray Matter\Data\characters\id_mephi\mephi.fbx

и импортируем в сцену анимацию walk.fbx, получим нечто похожее:

Анимация загружена в 3ds max.

4. Текстуры и материалы. В игре Gray Matter используется два основных типа текстур: диффузный (diffuse map) и карты нормалей (normal map). Все текстуры в формате *.dds.

5. Визуализация3ds max и шейдеры.

Комментарии (5) Пинги (0)
  1. извини за глупый вопрос но как нужно импортировать fbx файлы в 3d max (параметры) ибо загружается только квадрат:((

  2. всё решил проблему другим путём, экспортирю в блэндере в формат obj:)

  3. Здравствуйте, а у вас часом не сохранился GrayMatter PAK util? Его создатель, похоже, вычистил все ссылки на него.
    Если вы, конечно, ещё заглядываете в этот блог.
    Надеюсь на чудо.

  4. —отбой по палате, не заметила ссылки на дропбокс наверху. Спасибо!

  5. >Darina
    >Если вы, конечно, ещё заглядываете в этот блог.
    регулярно.


Leave a comment

(required)

Нет обратных ссылок на эту запись.