Вступление
Здравствуйте, меня зовут Владислав Московцев и сегодня я вам расскажу - как конвертировать модели из игры The Lord of The Rings: Battle for Middle-Earth I и Battle for Middle-Earth II под WarCraft III
В общем, где встречается файл расширение моделей: W3D
В первую очередь, освоим конвертирование не анимированных моделей, но и также попробуем поработать над моделями с анимациями. Сразу хочу предупредить, что чудес не бывает. Скиннинг в моделях делался ну совсем не под mdx, и полноценный перенос без допиливания руками практически невозможен. Чем сложнее скелет, тем хуже он перенесётся в варкрафт.
Что понадобится?
- The Lord of The Rings: Battle for Middle-Earth - сама игра (первая или вторая часть);
- W3D Viewer - программа для просмотра моделей W3D формате;
- Final Big или Game Extractor - программа для извлечения файлов игры;
- Blender 3.4 - программа для работы с моделями;
- War3 Model Editor 1.05 - программа для редактирования моделей формате mdx, mdl;
- Mdlivis 1.40 - программа для редактирования моделей формате mdx;
- BLP Laboratory - программа для конвертации текстуры формат blp;
- OpenSAGE.BlenderPlugin - аддон для Blender 3.4 версии. Импорта и экспорта моделей формате W3D;
- mdl-exporter - аддон для Blender 3.4 версии. Импорта и экспорта моделей mdx, mdl;
Извлечения моделей
Рассмотрим два варианта извлечения моделей через программы: Final Big или Game Extractor.
Хочу сразу предупредить, что две модели (героя и здание) мне предоставил пользователь gordik . Поэтому, я покажу на примере игры C&C Generals процесс распаковки.
Извлечение ресурсов с помощью программа Final Big
Откройте программу FinalBig.exe и нажмите кнопку Open. После этого перейдите в папку с игрой.
В папке с игрой откройте архив Textures.big
Нажмите Edit -> Extract All -> OK
Выберите место куда хотите извлечь текстуры
Дождитесь извлечение текстур. Ошибка ''Не отвечает'' должна исчезнуть.
Готово! Текстуры извлечены. Такое действие проделываем с моделями из архива W3D.big
Извлечение ресурсов с помощью программы Game Extractor
После установки программы он попросит вас установить минимальную версию программы Jawa, если у вас данная программа не стоит.
Это инструкция как пользоваться. Если Вы не поймёте, то нажимайте Close to Welcome Wizard и читайте далее.
Сбоку мы должны выбрать папку с игрой, используйте кнопку треугольника.
Выберите архив W3D.big
После того как появился список моделей, то нажмите ПКМ (правой кнопки мыши). Выберите Select Files -> Select All.
После этого снова идем вбок этому окну и выбираем место для извлечения моделей (папку).
На список ресурсов моделей нажимаем ПКМ (правой кнопкой мыши) и выбираем Extract All.
Ожидаем!
Нажимаем ОК
Готово! Модели извлечены. Такое действие проделываем с папкой Textures.big
Установка аддонов Blender 3.4
Мы будем устанавливать два плагина - это OpenSAGE.BlenderPlugin и mdl-exporter для 3.4 Blender.
Откройте программу Blender. Нажмите на вкладку Edit - Preferences
Нажмите вкладку - Add-ons
Выберите архив с плагином mdl-exporter и потом OpenSAGE.BlenderPlugin формате zip (Осторожно! если плагин mdl-exporter не установился или OpenSAGE.BlenderPlugin, то в ручную установите по пути: blender-3.4.0-windows-x64 - 3.4 - scripts - addons - export_mdl и io_mesh_w3d. Предварительно из архива распаковать папку)
Во вкладке Community перейдите и напишите там в поиске - mdl. Поставьте галочку
Во вкладке Official перейдите и напишите там в поиске - w3d. Поставьте галочку
В низу на три полоски нажмите и нажмите - Save Preferences
Во вкладке Edit - Import, проверьте Westwood W3D и WarCraft 3
Во вкладке Edit - Export, проверьте Westwood W3D и WarCraft 3
Если они отображаются, то хорошо! Значит Вы все сделали правильно.
Работа с юнитом. Blender
Открываем Blender 3.4 -> File-> Import -> Westwood 3D (w3d/w3x)
Импортировать модель. В нашем случае оно имеет префикс skn
Модель импортировали! Удаляем квадрат и сделаем, чтобы показывало текстуры
Выбираем меш (треугольник)
Переходим во вкладку Shading и смотрим название текстуры геосета
Дальше переключаемся на вкладку Layuot -> Вкладка материалы (глобус внизу) и ищем там Layers.
Прописываем аналогично текстуру, но только в расширении BLP. Выставляем Transperent и Two Sided для каждой текстуре
Нажимаем File -> Export -> FBX (.fbx) и ставим Forward (Y Forward), Up (Z Up)
После этого File -> Import -> FBX (.fbx) и выбираем нашу модель
После этого Нажимаем File -> Export -> WarCraft 3 (.mdx/.mdl) и выбираем:
Scale - 10
Forward (Y Forward)
Up (Z Up)
Forward (Y Forward)
Up (Z Up)
Импортируем модель заново, после этого импортируем анимацию
Нажимаем File -> Export -> WarCraft 3 (.mdx/.mdl) и выбираем:
Selected Objects
Scale - 10
Forward (Y Forward)
Up (Z Up)
Scale - 10
Forward (Y Forward)
Up (Z Up)
Ошибки модели
Здесь поговорим про ошибки, которые я столкнулся при работе с моделькой. А также решение этих проблем.
1 Ошибка
У модели есть проблема с плащом, где красная ткань вылезает
2 Ошибка
У модели есть проблема с кругом, модель находится не в центре координат
3 Ошибка
У модели есть проблема с оружием, меч немного криво в руках
4 Ошибка
Эта ошибка возникает в некоторых анимациях, когда ты экспортируешь модель в .mdx/mdl
Решение ошибок
1 Ошибка
Нам нужно выделить плащ, нажать на кнопку материалы (глобус) и выбрать пункт Blackface Culling
Всегда делайте этот пункт перед моделькой без анимации, а потом когда импортируете каждую новую анимацию.
2 и 3 Ошибка
Нам нужно выбрать скелет, а потом геосет меча. После этого переходим во вкладку Dope Sheet - Action Editor
Из режима Object Mode переходим режим Pose Mode
В режиме Pose Mode выбираем кость меча
Во вкладке Action Editor переходим во вкладку Graph Editor
Нам нужно выбрать скелет, а потом геосет меча. После этого переходим во вкладку Dope Sheet - Action Editor
Сбоку вы видите Координаты, а на диаграмме кадры. Отключайте с помощью глазика не нужные линии и найдите ту, которая отвечает за передвижение лево, право, вниз, верх и с помощью этого опускайте вниз или верх диаграмму с помощью клавиши G. Старайтесь влево или вправо диаграмму не перетаскивать.
По такому принципу найдите Root кость юнита и с помощью неё перетащите в центр юнита. Это нужно будет делать так в каждой последующей анимации, которую вы будете импортировать с нового листа.
4 Ошибка
Для решение этой ошибки нужно экспортировать модель FBX формат, после этого импортировать FBX файл и экспортировать mdl. Не забывайте про настройки, которые были вверху описаны при экспорте как FBX, так и MDL
Собираем модель RMS (By Tw1lac)
Откройте программу RMS
File -> Модель без анимации выберите
Нажмите Edit -> выберите всю модель и перейдите Add -> Animation -> Import -> From File
Выбрать модель анимации
Выбрать в списке сверху анимацию
Нажать ОК.
Это нужно делать с каждой добавлением новой анимации
Сохраняем нашу модель, когда все анимации собрали
Настройка модели
War3 Model Editor 1.05
Давайте переименуем анимации
Windows -> Sequence Manager
Выбираем анимацию и даем имя
Я уже всё проставил - Attack, Death, Spell анимации нужно проставить Non Looping. Нажмите на анимацию два раза щелчком мышки.
Collision Shape
Переходим Windows -> Node Manager
Нажимаем на пустое поле ПКМ и выбираем Create Collision Shape
Sphere выбираем, прописываем радиус глобуса (Bounds Radius) и выставляем центре с помощью X-Y-Z Координат. Верх-Вниз-Сторону. Чтобы опускать или другую сторону двигать, то добавляйте черточку (-) перед цифрами.
Для отображения Collision Shape перейдите Edit - Properties и там поставьте галочку Collision Shape в программе War3 Model Editor 1.05
После того как Вы создали первый Collisin Shape01 и Collison Shape02 нужно данные скопировать X-Y-Z и открыть Edit Node чтобы внести те же данные, которые вы вносили изначально
После того как внесли, то не забудь переименовать UNNAMED в Collison Shape01
Готово, мы создали.
Это нужно для того, чтобы при выборе в редакторе карт или в игре, наш юнит смог нормально выбираться
Точки крепления через Mdlivis
Этот пункт я не буду расписывать, просто прочитайте с моей старой статьи этот пункт:Перейти
Работа с текстурой BLP Laboratory
Этот пункт я не буду расписывать, просто прочитайте с моей старой статьи этот пункт:Перейти
Создание камеры через War3 Model Editor 1.05
Кликните по Windows -> Camera
Модель поместите в центр, ближе к лицу. ПКМ по окне и создаём камеру
Оптимизация модели
Пару советов, которые помогут оптимизировать модель.
Blender
Перетащите курсор как на скриншоте, после этого нажмите клавишу "А" в режиме Edit Mode
В Edit Mode нажмите Mesh -> Cleam Up -> Merge By Distance
Если внизу увидели цифры, то значит вы сделали всё верно
Оптимизация через Mdlivis
Откройте Mdlivis, выделите все вершины
Нажмите Оптимизация -> Оптимизатор
Выберите всё, кроме последнего пункта. Последний пункт ломает лица и пользы никакой не несёт.
Сохраните модель
Оптимизация через RMS (By Tw1lac)
Откройте модель
Выберите все кости в Edit
Кликните по Optimize -> Simplify Keyframes
Выбрать так, как показано на скриншоте
Нажать "ОК" и сохраните модель
Заключения
Кликните по Edit -> Optimize -> Recalculate Normals и сделайте на 90 + галочку поставьте
- Для лучшего результата конвертируйте модель под Reforged, для этого нужно в Blender поставить галочку Use SkinWeight
- После этого через программу RMS кликните Script -> HD-SD (1000-800) перевести. Это лучше помогает с весами моделей и меньше будет ошибок
Edited by konvan5
Здание может иметь в названии ABARNORFORT_SKN и ABARNORFORT_BLD. В данном случае ABARNORFORT_SKN это просто модель и ABARNORFORT_BLD это анимация стройки.