Раздел:
Моделлинг
Итак, сегодня мы научимся конвертировать модели из Torchlight 1 и Torchlight 2. Возможно, этим способом также получится выдёргивать модели из других проектов, сделанных на движке OGRE.
В первую очередь, освоим конвертирование неанимированных моделей, но и также попробуем поработать над моделями с анимациями. Сразу хочу предупредить, что чудес не бывает. Скиннинг в моделях делался ну совсем не под mdx, и полноценный перенос без допиливания руками практически невозможен. Чем сложнее скелет, тем хуже он перенесётся в варкрафт. Например, я долго сражался вот с этой нагаподобной моделью босса из Torchlight 2, но удовлетворительного результата получить не смог.
Тем не менее, кое-каких успехов в конвертировании анимаций достигнуть всё-таки удалось, и я их продемонстрирую.
В первую очередь опишу способ с Blender, но в ближайшее время в подстатье я также изложу альтернативный способ с 3D Studio Max, ибо там есть свои приколы, а также есть возможность экспортировать в mdx1000, благодаря чему можно получить более лучший результат переноса скелета. Более того, на момент написания этой статьи только в 3DS Max и есть возможность экспортировать в mdx1000.

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

  • Файлы игр Tochlight 1 / 2. Игры стоят недорого (а если дорого, то вы знаете, что делать), весят мало. У TL1 архив лежит в ZIP файле. У TL2 архив запакован, его можно вскрыть утилитой Raptor's Torchlight 2 Extractor. Скачать можно здесь или в архиве, приложенном к статье. Либо предлагаю альтернативный вариант: скачать архивы этих игр с яндекс диска
  • Blender 3D. Я буду объяснять на примере 2.79b, и только на нём могу гарантировать работоспособность метода. Теоретически, можно использовать и другие версии, всё зависит от совместимости используемых плагинов. Старые релизы Blender доступны для скачивания на официальном сайте
  • OGRE Command Line Tools версии 1.7.0+. Скачать можно здесь, либо в архиве, приложенном к статье. Дело в том, что 3D редакторы не могут работать с внутриигровыми .mesh и .skeleton файлами, поэтому их нужно перегнать в XML с помощью OgreXMLConverter.
  • Blender Addon Torchlight 2. Плагин для импорта .mesh и .skeleton файлов от pink-vertex. Скачать можно здесь или из архива, приложенного к статье. Установить по инструкции с гитхаба. В том числе, обязательно указать в настройках плагина в Блендере путь до OgreXMLConverter.exe. Есть альтернативная видеоинструкция по установке.
  • Blender MDL Exporter. Название говорит само за себя. Скачать здесь, установить по инструкции.
  • BLP Laboratory. Или любой другой софт, который умеет конвертировать DDS в BLP или TGA. Скачать тут.
Опционально:
  • OGRE Command Line Tools версии 1.6.3. В некоторых ранних источниках встречалась информация, что для Torchlight 1 нужна именно эта версия, а для Torchlight 2 — 1.7.2. Я убедился, что 1.7.2 нормально работает на обеих играх, но на всякий случай рекомендую этот факт держать в голове, и при возникновении проблем с моделями из TL1, пробовать XML Converter из этой сборки. Прикладываю ссылку и закидываю файл в архив.
  • Torchlight Mesh Viewer. Просмотрщик моделей Torchlight 1 и 2. В целом, сыроват, часто подхватывает не все анимации, на некоторых моделях переворачивает текстуру, и очень плохо работает с моделями, у которых сдвинуты PivotPoints (к этому ещё вернёмся). Но иногда для быстрого ознакомления с моделями довольно удобен, так как работает шустрее, чем 3д макс и блендер. Лежит тут и в приложенном архиве.
  • Blender2Ogre. Альтернативный плагин для Blender, добавляющий возможность импорта/экспорта OGRE моделей. Не тестировал. Лежит здесь.
  • Torchlight to Blender. Ещё один альтернативный плагин для блендера, форк самого первого плагина из 2009-го года. Вроде работает, но что-то с ним не так. Пусть будет.
  • Ogre Meshy. Альтернативный просмотрщик моделей. Ссылка
  • Mdlvis/War3 Model Editor/Retera’s Model Studio. Иногда хочется побыстрее вынуть mdx/mdl из “взрослых” 3D редакторов, и допилить в софте попроще. В любом случае, нам как минимум понадобится mdl/mdx конвертер. Думаю, что если вы читаете эту статью, то у вас всё это есть.
В обоих Торчлайтах структура архивов примерно одинаковая. Нас будут интересовать, в первую очередь, две вкусные папки: Levelsets, в которой лежат, грубо говоря, все декорации, и Models, в которой лежат модели всех юнитов, всех предметов, а также модели оружия и брони, которые надеваются на протагонистов.
Ещё есть папки Lights (плоские меши с текстурами эффектов освещения), skyboxes (модели неба) и particles (кое-что лежит в подпапке models).

Конвертирование моделей без анимаций

Итак, я предполагаю, что вы уже настроили по инструкции плагин экспорта, плагин импорта (1.1), и обнаружили вкладку “Torchlight 2” (1.2).
Сразу удаляем со сцены куб, источник света и камеру. Выделяем их правой кнопкой мыши и жмём клавишу “X”. После этого переходим на вкладку Torchlight 2 и жмём в окошке Import Mesh (1.3), откроется окно проводника. Предлагаю начать с оружия, так как это реально кладезь. Идём по пути …\MEDIA\MODELS\WEAPONS\, там находим папку _SHIELDS.
Обратите внимание, что мы выбираем вслепую. Чтобы было проще подобрать интересную модель можно предварительно воспользоваться упомянутым мной просмотрщиком моделей. File -> Open и погнали шерстить архивы.
Вот симпатичный щит. С него и начнём.
Дабл клик по файлу SHIELD04.MESH, и вот он у нас в сцене (4.1). Давайте посмотрим на него с текстурой. Ищем кнопку внизу с выпадающим списком (4.2), включаем отображение материала (4.3).
Если вы передумали, то модель можно удалить (ПКМ + X) или просто отменить импорт, нажав Ctrl+Z. Если вас всё устраивает, то идём на вкладку с текстурами (4.4) и смотрим, какая текстура у нас используется. Там же можно посмотреть и путь к ней (4.5). Учитывайте, что текстур может быть несколько, даже у простых декораций.
В принципе, на этом этапе уже можно конвертировать в .mdl, и дальше работать в Ретере или War3ME. Но давайте настроим материал сразу в Блендере.
Идём во вкладку настроек материала (5.1) и листаем в самый низ, до MDL Material Settings (5.2).
Нажимаем на “+” (5.3) для создания нового слоя. Указываем путь нашей будущей текстуры (5.4), указываем нужный режим фильтрации (5.5).
Всё, File -> Export -> MDL, сохраняем в удобную папку, и больше Blender нам не нужен.
Займёмся текстурой. Для использования в HD графике можно оставить DDS (предварительно оставив этот формат в поле 5.4). Для SD графики нужно конвертировать. Расчехлив BLP Laboratory, идём в ту папку игрового архива, где лежал наш щит. Находим там наш SHIELD04.DDS. Открываем и пересохраняем в BLP, дав файлу указанное в настройке материала имя.
Альфа-канал оставляем без изменений. Остальные настройки типовые для варкрафта. Кладём в папку с моделью.
Проверяем модель в War 3 Model Editor.
Идеально. Пересохраняем mdl в mdx.
Несколько минут в ретере, и наш щит уже красуется в игре на левой руке разбойника.
Готовую модель щита можете забрать в архиве.

Типичные подвохи при конвертировании

При конвертировании домиков я столкнулся с некоторыми нюансами, которые считаю нужным упомянуть.
Во-первых, Некоторые декорации при импорте оказываются в странном положении.
При этом, вернуть модель в центр сцены (перемещение клавишей G, поворот клавишей R и масштабирование клавишей S) очень затруднительно. Дело в том, что PivotPoints в моделях установлен на нулевую координату, а сам меш сдвинут. Полагаю, что это связано с расстановкой декораций в локациях. Лечится просто: Выделяем меш правой кнопкой мыши -> Object (11.1) -> Transform (11.2) -> Origin to Geometry (11.3). В других версиях Blender эта функция может находиться в другом месте.
Во-вторых, к некоторым моделям, использующим несколько текстур, часто применён мульти материал. Модель представляет собой один объект (не разбитый на отдельные) с несколькими материалами, назначенными на уровне полигонов.
Варкрафт так не умеет. При экспорте из макса это является проблемой, но блендеровский плагин сам разобьёт объект на геосеты, исходя из назначенных материалов.
В-третьих, иногда, текстуры растягивает (13.1)
Лечится очень просто. War 3 Model Editor, правой кнопкой мыши по неправильной текстуре (13.2), установить галки на выравнивание (13.3). Спасибо WebSter за совет.

Конвертирование моделей с анимациями

Что ж, пора перейти в волшебный мир анимаций. Как я уже говорил, для наилучшего результата, нужно выбрать что-то попроще.
Возьмём вот этого питомца из Torchlight 2.
Создаём новую сцену в Blender. Куб и светильник удаляем, а вот камеру оставим, она нам ещё пригодится.
По старым чертежам идём во вкладку Torchlight 2 и импортируем наш меш, лежащий по пути MODELS\PETS\DEER.
Вместе с мешем мы видим и кости. В панеле импорта Torchlight моделей подсветилась кнопка Import Animation (15.1). Если она не активна, то нужно выделить скелет ПКМ во вьюпорте или ЛКМ в списке объектов сцены (15.2).
Импортируем анимации. Каждая анимация лежит в отдельном файле.
Основные анимации в Torchlight:
  • Файл, имеющий такое же название, как и модель (в данном случае PET_DEER.SKELETON) содержит в себе однокадровую анимацию bind. Это что-то вроде базового положения костей.
  • IDLE.SKELETON. Анимация Idle. Аналог нашего Stand.
  • ATTACK.SKELETON. Анимация атаки.
  • RUN.SKELETON/WALK.SKELETON. Анимация движения.
  • SPAWN.SKELETON. Анимация появления.
  • DIE.SKELETON. Анимация смерти.
  • FIDGET.SKELETON. Анимация паники. Дело в том, что питомцы в этой игре не имеют анимации смерти, при получении смертельного урона они просто убегают.
  • Другие анимации, встречающиеся в разных моделях.
Итак, сразу выбираем PET_DEER.SKELETON. Смотрим на сцену, модель должна стоять ровно. Иногда, она переворачивается. В этом случае, надо выделить модель и скелет, нажать на клавишу R, нажать на клавижу оси (X, Y или Z) и повернуть всю конструкцию правильно. В случае с оленем всё в порядке. Возвращаемся в раздел импорта анимаций и двойным кликом проходимся по всем анимациям. Проигрывать анимацию можно кнопками плеера (17.1), проходить по кадрам можно на таймлайне (17.2)
Нажмём ЛКМ на треугольник в углу (17.3), и потянем вправо, чтобы создать второе окно.
Нажимаем на кубик (18.1) и переключаемся с режима 3D View в режим Dope Sheet. Там включаем Action Editor (18.2), и идём к списку Action’ов (18.3). Как видим, все наши анимации стали Экшнами. Нам надо разместить их всех в одну линейку. Для этого мы будем копировать кадры из каждого Action и вставлять их все в один. Спасибо Андреич за объяснение.
Для удобства сразу переименуем bind во что-то более осмысленное, например Animation Line. Вписываем новое название, нажимаем Enter.
Переключаемся на Action Idle, и выделяем там все кадры анимации. Чтобы выделить всё нажмите на клавишу A. Также можно выделять рамкой (нажав на клавишу B), кругом (нажав на клавишу C) или правой кнопкой мыши отдельные кадры.
Все выбранные кадры подсвечены жёлто-оранжевым. После того как мы всё выбрали нажимаем Ctrl+C, и переключаемся на наш первоначальный Action. Тот, который bind, который Animation Line. Устанавливаем зелёную линию подальше первого кадра (20.1), и нажимаем Ctrl+V. Новые кадры появились (20.2).
Мы видим, что у некоторых костей (например Bip01_Jaw) движение есть только в первом кадре анимации, но нет в последнем. Чтобы избежать лишних проблем в варкрафте, я предлагаю от этого сразу избавиться, путём дублирования этих кадров в конец анимации. Выделяем ромбики любым удобным способ, и нажимаем Shift+D (дублировать). Дотягиваем их до последнего кадра анимации. Получилось вот так.
Думаю, суть понятна. Продолжаем делать по аналогии. Предлагаю анимацию Fidget использовать в качестве Stand - 2. А с анимацией смерти мы разберёмся чуть позже. Заходим по очереди в каждый Action, выделяем кадры, идём в Animation Line, сдвигаем зелёную полоску, и вставляем кадры. При необходимости где-то что-то правим.
Итак, мы получили шкалу анимации со всеми кадрами. Теперь, давайте всё-таки подумаем о смерти. Поскольку анимации в торчлайте лежат в отдельных файлах, то мы можем схитрить, и взять анимацию у другой похожей модели. Я нашёл лошадку, лежащую по пути MODELS\CRITTERS\HORSE. У неё есть анимация DIE1.SKELETON. Импортируем её в нашу модель.
Мда. Не бог весь что-то, но лучше, чем ничего. Берём.
Раз уж мы всё равно здесь, давайте создадим основу для анимации разложения Decay. Выделим последний кадр кости root из анимации смерти и дважды его продублируем (23.1).
Включаем последний кадр и идём в Graph Editor (23.2).
Закрываем все замки (24.1), кроме Z Location, нажимаем на клавишу G, и опускаем кость (24.2) до тех пор, пока наш олень не окажется ниже оси (24.3).
Готово. Мы только что сделали анимацию.
Возвращаемся в Dope Sheet. Теперь нам нужно расставить маркеры.
Устанавливаем зелёную полоску на первый кадр анимации, и нажимаем клавишу "M". Появляется треугольник.
Нажимаем Ctrl+M и переименовываем его в Stand - 1. Спасибо Evolving за тутор.
Далее идём в последний кадр анимации, создаём маркер там, и его переименовываем также в Stand - 1. Таким образом, мы создали первую секвенцию. По аналогии проходим всю линейку до конца.
Поскольку юниты в варкрафте предпочитают бегать, а не ходить, то анимацию Run используем как Walk. А анимацию Walk переименуем в Cinematic Walk One, чтобы иметь возможность использовать её в игре.
После расстановки маркеров, все наши секвенции должны появиться в разделе MDL Sequences (27.2).
Там же можно настроить параметры анимаций вроде редкости (27.3).
Вспомним про камеру. Во вьюпорте нажимаем на клавишу N, откроется панель свойств. Ставим галочку Lock Camera to View, и нажимаем на Num0, мы перейдём на вид из камеры. Двигая мышью установим камеру на морду оленя.
Это будет наш портрет. Всё, галку Lock можно убрать.
Настраиваем материал и экспортируем в mdl. Конвертируем текстуру BLP Lab’ом по той же схеме, что и со щитом. Проверяем в War3ME.
Кажется, что получилось недурно, довольно близко к оригиналу. Может быть чуть-чуть похуже.
Проверяем в игре.
До полноценной игровой модели пока не дотягивает, здесь ещё пилить и пилить. Ту же анимацию разложения, портретные анимации, тимколор, событийные объекты, и об оптимизации надо не забыть. Но модель рабочая, анимации удовлетворительного качества, стилистика симпатичная. Я считаю, что результат неплохой.
Модель оленя с текстурой вы также найдёте в архиве.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
32
2 года назад
0
Каким самым быстрым способом можно ознакомится со всеми моделями сразу?
2
23
2 года назад
2

Ну офк, при условии, что архив с моделями скачан
0
32
2 года назад
0
Да спасибо, всё получилось
0
11
2 года назад
0
Именно такие статьис моделями и спасают варик на сегодняшний день
0
32
2 года назад
0
po1son, нет, вы не правы, варик спасают модели для классической графики, кампании про артаса и развеивание мифов про байты для 1.24 патча
0
23
2 года назад
Отредактирован Makeba
0
Возможно, этим способом также получится выдёргивать модели из других проектов, сделанных на движке OGRE
Попробовал игрушку Garshasp: The Monster Slayer, тоже на огре. Декорации можно оттуда забирать прям этим же плагином.
А вот анимации там по-другому запакованы, чтобы их загрузить в блендер нужен плагин Kenshi. Но результат конверта в варкрафт получается ещё хуже, чем из Торчлайта.
Загруженные файлы
0
23
1 год назад
0
Опытным путём Ruti Ragnason выяснил, что при импорте в блендер по описанному способу, у некоторых моделей появляются лишние деформации на костях в анимациях, преимущественно в районе нижних конечностей.
Нужно править руками или использовать другие пути конвертации (в 3дмакс модель загоняется без вышеуказанных проблем).
Удаляйте статью
0
23
11 месяцев назад
0
Удаляйте статью
Вроде бы получилось избавиться от этого бага. Обновил ссылку на новую версию плагина, и поменял файл в приложенном к статье архиве
0
35
11 месяцев назад
0
poisoNDealer, и на всех моделях баг пропал?
0
23
11 месяцев назад
Отредактирован Makeba
0
Экскалибур, кек, не на всех
Обновил ещё раз, должно быть норм github.com/theguywhodoesntcare/blender_addon_torchlight2
Загруженные файлы
0
35
11 месяцев назад
Отредактирован Anime Chan
0
poisoNDealer, ну там пару моделей нужно исправить. Вдобавок того же слизня или зомби, когда в процессе конвертации происходит баг и нельзя экспортировать. У слизня некоторые анимации не импортит
0
23
11 месяцев назад
Отредактирован Makeba
0
У слизня некоторые анимации не импортит
Не работает из-за того, что плагин не импортирует масштабирование.
Добавил поддержку скейла, вроде работает, но я не знаю конвертнётся ли это всё нормально в варкрафт. Да, конкретно у этой модели рут кость сбита, надо вручную править в нулевом кадре (повернуть на 90 по Y).

Про зомби сказать ничего не могу
Загруженные файлы
0
23
11 месяцев назад
Отредактирован Makeba
0
Добавил поддержку скейла
И забыл о том, что оси с блендеровскими не совпадают, кость плющит не в ту сторону
Экскалибур, поменял оси местами, но потести эту тему
Загруженные файлы
0
35
11 месяцев назад
0
Загруженные файлы
0
35
7 месяцев назад
Отредактирован Anime Chan
0
Как мне анимировать воду? В просмотрощике моделей она имеет анимацию, а как её в блендере импортировать
0
23
7 месяцев назад
0
Как мне анимировать воду? В просмотрощике моделей она имеет анимацию, а как её в блендере импортировать
Насколько я помню, анимация воды делается покадровой сменой текстур. По памяти, там наборы лежат в папках типа sharedtextures/water, путь можно уточнить в .material файле. В варкрафте также можно сделать, статья на хгм есть. Вручную или какой-нибудь генератор анимации написать
Всякие водопады вроде через UV анимации сделаны, не помню.

P.S. Несколько уточнений, которые не были упомянуты в этой статье

  • По совету некоторых пользователей, можно делать в блендере Merge by Distance (Remove Doubles в 2.79). Сливает дублированные вершины, оптимизируя меш, и избавляя от дальнейшей головной боли с нормалями.
  • Если вы счастливый обладатель рефоги, то есть возможность сконвертировать с полным сохранением качества оригинальных анимаций. Нужен плагин от twilac и Blender для него, он позволит экспортировать модель с сохранением весов.
  • Из-за особенностей хранения кадров в огре, в mdx на выходе может оказаться много (сотни) пустых ключевых кадров и пустых треков. В вышеуказанном плагине есть возможность одной галочкой очистить модель от пустых кадров, в RMS от твилака есть аналогичная функция.
0
35
7 месяцев назад
0
статья на хгм есть
Как она называется
0
23
7 месяцев назад
0
0
35
5 месяцев назад
0
RMS от твилака есть аналогичная функция.
Модель будет трусить или качать немного на stand это видно
Чтобы оставить комментарий, пожалуйста, войдите на сайт.