Долой унылые mdlvis-анимации! Скорпи обещал что-то вкусное, так вот встречайте xlDataConverter и это только начало =)
Это программа для преобразования Collada (DAE) моделей в Warcraft 3 MDL.
COLLADA — это формат, разработанный для обмена между 3D приложениями. Управляется некоммерческой организацией Khronos Group.
COLLADA использует открытый стандарт XML для обмена форматами, которые в противном случае были бы несовместимы.
COLLADA был задуман как промежуточный формат для переноса файлов. Реализована поддержка таких программ, как Maya (используя ColladaMaya); 3ds Max (при помощи ColladaMax); Poser (v.7.0); Lightwave 3D (version 9.5); Cinema 4D (MAXON); Softimage|XSI; Houdini; MeshLab; CityScape, CityEngine, SketchUp, Blender, modo и Strata 3D. Adobe Photoshop с версии CS3. Игровые движки, такие как Unreal engine, Unity и Torque 3D, также поддерживают этот формат.
— Wikipedia.

Что эта детка умеет

  1. Конвертировать геометрию, с мешами, с правильными нормалями, с текстурными координатами;
  2. Конвертировать пути к текстурам и забивать их в материалы/слои;
  3. Конвертировать кости. Нет костей? Наплевать, она создаст для каждого объекта кость в центре и перенесет простую анимацию;
  4. Понимать skin-controllers (контроллеры мяса);
  5. Понимать "веса" костей и переводить их как требуется;
  6. Создавать анимации, правильно считать кадры и fps;
  7. Создавать все виды трансформаций warcraft 3;

Что она пока не умеет

  1. Читать более 1 группы полигонов в объекте, это задача номер 1 для след. версии;
  2. Любые массивы (вершин, нормалей, костей и т.п.) ограничены в 32768 элементов (хотя варкрафт ломается уже на 25к вершинах). Если в вашей модели больше - ждите неожиданностей. Планируется исправить до 2 миллиардов;
  3. Простые цвета вместо текстур пока не работают, планируется в следующих версиях;
  4. Нет источников частиц, возможно, будет в след. версиях;
  5. Модель иногда криво расположена относительно основных осей, это исправляется заданием в кости Root нужных трансформаций;
  6. Читает только 3DS MAX формат вершин;
  7. Читает только матричные преобразования;
  8. Могут быть проблемы с файлами, у которых в пути есть русские символы, да гори в аду ты проклятый iostream;
  9. Использует пока только 1 канал у каждой анимации;
  10. Пока только линейная анимация;
  11. Обратная конвертация, планируется в будущем;
  12. Создает много лишних аним, потом разберемся;
  13. Есть некоторые проблемы с анимацией масштабирования;
  14. Конвертирование Blender DAE анимаций не поддерживается по причине иной структуры матриц трансформаций;

Вот она, вот она программа моей мечты, во-о-от она!

На самом деле не ждите, что эта программа сделает вам чудо, ведь это ещё только alpha версия, всякое случается :D

Как пользоваться?

  1. Создать геометрию, кости, анимации, текстуры на сцене 3DS MAX;
  2. Выбрать Export - .DAE, далее в окошке настроек экспорта обязательно указать ориентацию Z-up;
  3. Перетащить готовую .DAE модель на значок программы, должно появиться окно предупреждений. Если не было ни одного предупреждения, окно закроется и модель можно смотреть в war3me и mdlvis, конвертировать в mdx желательно через mdlvis;
  4. Если есть какие-то предупреждения, читайте, исправляйте в максе, отправляйте сюда итп;
  5. Хотите опции? Они есть. Это аргументы командной строки, включаются они так:
xlDataConverter.exe "model.dae" "model.mdx" опция1 значение1 опция2 значение2
Тоесть перетаскивать модель уже недостаточно, надо задать пути вручную.
Какие бывают опции (пока на инглише):
        options: name: possible values, first values are default
        (dae to mdl)
            "timeMultiplier":       "1000.0", (real from 1)
                Mdl-relative animation time multiplier (1000 points/second in Warcraft 3 by default);
            "bonesJointsOnly":      "no", "yes"
                "no" if you don't want to convert simple nodes of objects;
            "weightSplitBound":     "0.25", (real from 0 to 1)
                All the bones with the weight less than this value are ignored;
            "invertTexcoordU":      "no", "yes"
                "yes" if you want to invert text coords horizontal;
            "invertTexcoordV":      "yes", "no"
                "yes" if you want to invert text coords vertical (it inverts in warcraft3 by default);
            "convertNodes":         "yes", "no"
                Process nodes information;
            "convertMaterials":     "yes", "no"
                Process materials and textures information;
            "supplementMaterials":  "yes", "no"
                Adds a dummy texture to empty layers and materials without layers;
            "lightOptimize":        "yes", "no"
                Lightweight optimization, removes duplicate vertices 
                but merges different normals of one vertex into single normalized vector. 
                It's recommended to keep it turned on;
            "weedOutSequences":     "yes", "no"
                Removes duplicate and intermediate sequences from list;
Схема работы алгоритма "weedOutSequences":
Еще можно приписать через пробел mode auto, тогда она не будет ждать любой клавиши, если есть варнинги.
Если вписать mode manual, она будет в любом случае ждать любой клавиши в конце.

Скачать

Прикрепляю
  • Само приложение xlDataConverter
  • конвертер кватернионов от Toadcop, пригодится для настройки поворота у костей
  • как бонус модель "Дана танцует сальсу"

Исходный Код / Source (Visual C++)

С вами был ScorpioT1000, пейте коктейль Пина колада
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
38
Андреич, надо просто забыть об mdx, dae и всём, что с ними связано) не тот век
31
ScorpioT1000:
Андреич, надо просто забыть об mdx, dae и всём, что с ними связано) не тот век
не вижу ничего плохого в том, чтоб некоторые модельки конвертнуть в варик...
хотя, если мне не удастся найти способ без создания анимаций с нуля - забью...

адо просто забыть об mdx, dae и всём, что с ними связано
upd: забил...
24
Андреич, из макса комфортно можно конвертить при помощи NeoDex, своеобразная альтернатива SC2 ArtTools, только для варкрафта
Хех, провтыкал что Алексей уже написал об этом)
31
darkowlom, у меня он отказывается конвертить даже геометрию...
не говоря уже об анимации...
не, возможно, если всё делать изначально в максе то там другой результат будет...
но конвертированный из блендера .фбх он не экспортит...
хотя подозреваю, что просто надо кое-что подправить...
13
Андреич, давно уже с этим не работал, но помню, что там геометрию нужно конвертировать в editable mesh, без этого не выходе получается пустая модель. По настройке анимаций есть две статьи на хайве, но при конвертации модели, в которой все анимации в одном файле, ни каких проблем не должно возникнуть.
38
Дело в том, что на формат COLLADA разработчики забили еще в 2008 году. Он поддерживается максом для старых редакторов и игр, которые все еще развиваются и работают только с коллада. Современные же игры всё чаще юзают FBX.
С другой стороны, коллада умеет очень многие вещи, т.е. хранить целиком сцены или проекты в одном файле. Там неплохой уровень абстракции, есть понятие "библиотека", которая содержит в себе "коллекции". Это касается не только геометрии и анимации, но так же материалов. Кроме того, все параметры тоже могут быть анимированы.
Если надо, я могу выложить сурсы этой тулы, если есть знакомые лоулевел геймдевы, может, что-то накрутят.
Мне лично не интересно ковыряться в варкрафте.
Ладно бы там только с анимацией были косяки, там ведь ещё текстуры неверно натягиваются на нормали (по устаревшей схеме), из-за чего постоянные косяки с освещением.

Выложил исходный код.

Вообще, кому интересно ковырять MDL, там есть хороший парсер формата MDL, загоняющий файл в структуры C++. После этого можно хоть в 3DS, хоть куда конвертировать - вопрос написания конвертера.
31
ENAleksey, с мешем разобрался, но при конверте в редактируемый меш, приходиться заново крепить к костям...
а вот с анимацией до сих по беда...
в mdx конвертит, правильно её называет, времени анимации указывает... но анимка пустая...
38
Андреич, а ты у анимки пробовал границы указать другие? Может, кадры есть, а анимка не на тот диапазон указывает
13
Андреич, у меня всё нормально было, когда я конвертировал .smd модели из Mount&Blade, анимации корректно извлекались (проблема была лишь в том, что все анимации были в своих файлах, приходилось в максе собирать их и прибавлять значение для старого таймкода каждой анимации). Скинь свой .fbx файл, точно не помню как я раньше делал, посмотрю - вспомню.
31
ENAleksey, вот... простая тестовая моделька без текстур с одной анимкой...
Кстати, нет ли способа конвертить в редактируемый меш без отвязки от костей (я делал через collapse)...

ScorpioT1000:
Андреич, а ты у анимки пробовал границы указать другие? Может, кадры есть, а анимка не на тот диапазон указывает
щас попробую сделать...

upd: есть подвижки...
добавив в modifier list "mesh select" смог экспортнуть модельку с анимками и привязанными костями...
все равно есть проблемка высотой анимации...
щас попытаюсь объяснить поподробней...
когда просто импортируешь модель в макс там 3 объекта...
сузанная (сам меш), Armature (в форме куба) и одна кость...
если сразу же проиграть анимацию, она нормально воспроизводиться, в точности также, как я её делал в блендере...
но если удалить armature то анимация останется, но будет уже немного другой... повороты (rotation) будут также воспроизводиться.. но перемещения (translation) будут как-будто бы обрублены... то есть сдвигаться совсем чуть-чуть...
в данном случае сюзанна будет подниматься вверх совсем немного...
пока что удалось экспортировать только такую "неполную анимацию..."
Загруженные файлы
13
Андреич, да, совсем забыл об отвязке костей при применении модификатора Edit Mesh, в этом и была вторая проблема с которой я сталкивался, приходилось вручную прикреплять их обратно (но позднее я, вроде бы, начал делать по-другому, но всё-равно были какие-то проблемы).
Андреич:
добавив в modifier list "mesh select" смог экспортнуть модельку с анимками и привязанными костями...
Эх, если бы раньше узнал, столько времени бы сэкономило...
Андреич:
пока что удалось экспортировать только такую "неполную анимацию..."
Да, у меня раньше так же получалось, потом решил просто добавлять Edit Mesh и прикреплять кости самостоятельно.
Хотя нет, это происходило тогда, когда я поворачивал меш с закрепленным костями на 180 градусов.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.