Конвертирование моделей Morrowind в Warcraft III

Добавлен , опубликован

Нам понадобится

  • Собственно игра The Elder Scrolls III: Morrowind - из неё мы будем брать модельки
  • 3DMax версий 4 или 5 - главный инструмент модельщика
  • WarCraft Art Tools - для сохранения моделек в .mdx-формат
  • Photoshop, наверное любой версии - для перегона текстур в .tga-формат
А вот далее идут нестандартные программки и плагины.
  • BSAPack - программа с недружественным интерфейсом для разархивации bsa-архивов игры
  • NifScope - программка для просмотра моделек в .nif-формате
  • NifImport - плагин для 3DMax, для импорта .nif-моделей в 3DMax
  • DDS - плагин для Photoshop, чтобы он "понимал" .dds-формат текстур
Все, кроме NifScope находится в архиве, который вложен в статью. NifScope скачайте по ссылке.
Вот! Как с кем обращаться опишу ниже.

Шаг 1. Выдираем модельки из Morrowind

Для этого потребуется архив игры, это файлы morrowind.bsa, tribunal.bsa и bloodmoon.bsa, для примера возьмём morrowind.bsa - основной архив игры. Копируем его в папку с программой BSAPack и в Run.bat прописываем параметры командной строки,

C:
cd \Temp
bsapack unpack Morrowind.bsa
Здесь С: - это диск на котором расположена программа BSAPack
Теперь запускаем bat-файл и вуаля, весь архив распаковался в нашу папку с программой. Кроме моделей там ещё много чего для любителей покопаться в ресурсах игр, но сегодня нас интересуют только две папки - \meshes - модели и \textures - текстуры, соответственно. С помощью программы NifScope можно отыскать необходимую для конвертирования модель. Для примера я возьму модельку дома Хлаалу - ex_hlaalu_b_01.nif, которая расположена в папке x/. NifScope наверняка выругается о том, что ему не хватает текстур, но всё равно выведет нетекстурированную модель домика в окошке, а так же покажет список отсутствующих текстур. Отыщите эти текстуры и скопируйте их в отдельную папку, туда же скопируйте сам файл модельки. Тут надо заметить, что программа выдаёт список недостающих текстур, причём пишет, что они в .tga-формате, хотя на самом деле - они в .dds-формате, так что ищите именно .dds-ки с такими именами и их копируйте.

Шаг 2. Конвертируем текстуры

Берёте плагин DDS и копируете его в папку <Папка_фотошопа>/Plugns, где <Папка_фотошопа> - это папка, куда установлен Photoshop. Запускаете Photoshop и преспокойно просто открываете любую .dds-ку, с этим плагином фотожаба их понимает. При открытии программа спросит, какой уровень mip-карты открывать - открывайте самый большой.
Дело в том, что формат .dds - это специальный форматик для текстур в Direct3D и он может хранить внутри себя несколько mip-карт сразу (те, кто знают, что это, меня поймут, остальные - не забивайте голову чушью). Короче говоря, что... Открыли? Теперь сохраняйте в .tga с 32-мя битами, чтоб не потерять альфа-канал. Переконвертируйте все текстуры в .tga и пойдём дальше.

Шаг 3. Собственно, конвертируем

Берём плаг NifImport и копируем его в папку /plugins - в папке 3DMax-а. Всё, запускаем 3DMax и лёгким нажатием кнопки Import (File->Import) импортируйте наш ex_hlaalu_b_01.nif в 3DMax. Модель открылась? Хорошо! Ну во первых невооружённым взглядом видно, что модель нетекстурированная, во-вторых - там, обычно, есть совершенно нам не нужный mesh, который отвечает за расчет collision - то бишь столкновений. В списке объектов - он безымянный. Без угрызений совести его можно удалить.
В принципе геометрия модельки целостная и хорошая, править там ничего не надо, а вот с текстурами вопрос сложный. Ну во первых, это надо создать правильные материалы в 3DMax - для Art Tools, но это я описывать не стану, это всё есть в статье о моделировании с Art Tools. А вот второй вопросик будет поинтереснее. Так как Warcraft не поддерживает такую приятную вещь как tiling - тайлинг текстур. Это когда на одной поверхности одна и та же текстура встречается много много раз, хороший пример - текстура ландшафта. Там одним маленьким кусочком текстуры замощён весь ландшафт. С помощью такой штуки можно получать хорошее качество текстурирования, при относительно низком размере текстуры. Вот Близзы как-то обделили нас такой функцией, и теперь нам придётся либо "натягивать" текстурки на объекты, либо создавать специальную текстуры высокого разрешения, в которой можно раскопировать одну и ту же текстуру на всю поверхность. Я взял первый вариант, так как в принципе, качество текстур в Morrowind неплохое и в WarCraft сильно страшно выглядеть это не будет. Так что нам потребуется разметить текстурные координаты на mesh-ах, я в этом случае пользовался - UVW Map - Box. Всё, текстурки разметили, ненужные mesh-и удалили, теперь осталось выровнять модель по центру и изменить её позицию по высоте. В случае домика ex_hlaalu_b_01 его нужно поднять, чтобы на уровне поверхности земли как раз оказался вход в дом и небольшой порог. Да, кстати, чуть не забыл, я ещё добавлял к домику дверку, там где входы, а то они там не предусмотрены, ну я думаю, это будет не сложно, в папке с текстурами есть текстурки дверей, сделаете plane и на него натянете текстурку, правильно выровняйте и всё хорошо. Вот в общем и всё, модель готова. Можно экспортировать модель в .mdx - Art Tools сам создаст нужные .blp - текстуры и теперь модельку можно использовать в WarCraft III.
  • Так как весь софт уровня конвертирования моделек не очень качественный, то иногда случаются вылеты 3DMax-а, будьте аккуратнее, чаще делайте backup'ы. В принципе я думаю, что в сети есть другие программы и плагины, которые могут делать конвертирование более успешно, если я что-то найду, то обязательно дополню.
  • .nif-формат моделек, на самом деле применяется и в Oblivion, а так же, я его, по-моему, видел в Civilisation IV. Так что с тем же успехом можно и их модельки конвертировать в WarCraft, однако на счёт Oblivion-а меня терзают смутные сомнения по поводу текстур - очень уж много шейдерных наворотов в игре.
  • Что касается анимации персонажей в Morrowind, то тут совершенно иная тема, все люди и нелюди в игре собираются как бы по частям - по бодипартам (bodyparts - части тела). То есть на скелет с анимацией сажается отельно голова, туловище, руки, ноги и пр. Это было сделано для упрощённой смены всевозможных броников, перчаток, поножей, шлемов и пр. То есть когда вы в игре надеваете глухой закрытый шлем, то меняется вся модель башки - вместо неё ставится модель шлема. Так что я считаю правильным тут будет - выхватить отдельно модельки "ручек" и "ножек" и по отдельности их насажать на скелет какого-нибудь футмэна (footman) и не запариваться, ибо достать скелетик с анимацией из Morrowind, думаю будет сложно.
Дополнено позже: в принципе, я нашёл сами "скелеты" с анимациями - они хранятся в файлах base_anim.1st.nif, base_anim_female.1st.nif (женская анимка), ну и есть ещё некоторые, однако 3DMax напрочь отказался их грузить и постоянно вылетал. Я их смотрел в NifScope. Так что либо другой плагин надо, либо что-то ещё. Забавы ради - откройте файл anim_dancinggirl.nif - в игре в одном месте есть танцующие девушки, это их анимки.
Ещё чуть позже: так же во время конвертирования модели статуи дракончика (в Эбенгарде помните?), импорт дал непонятные результаты - сами mesh'и были правильные, а вот размещены чёрти как, пришлось их равнять!
Вот в общем и всё, о чём я хотел вам поведать. Ничего вобщем-то серьёзно нового тут нет, просто набор софта и прямые руки, и будет вам счастье.
`
ОЖИДАНИЕ РЕКЛАМЫ...