WarCraft 3: Импорт модели в 3DMax 5.1

» Раздел: Моделлинг

Автор оригинала: Cookie

Необходимые инструменты

  • Архиватор MPQ - по возможности. Подойдет как WinMPQ,так и MPQueen,так и MPQView
  • Blp->Tga конвертер - опять подойдет любой,как Wc3 Image Viewer,так и Wc3 Image Extractor и им подобные.
  • Fadi Importer Script - Нужен для импорта модели.
  • Yobgul's Converter - для перевода mdx<->mdl
  • Блокнот/Любой другой текстовый редактор - для редактирования mdl
  • Warcraft Art Tools - для экспорта max->mdx
  • 3D Studio Max 5.1 - автор рекомендует именно эту версию, хотя Max 4.2 тоже может сработать. Насчет GMax'a даже не спрашивайте.
В конце статьи лежат прямые ссылки на файлы.

Получение модели без ключей анимации

Мы возьмем в качестве примера модель Артаса с молотом из архива War3.mpq.
Примечание: автор советует это делать при помощи WinMPQ, хотя намного удобнее сразу разархивировать и вытащить модель с текстурами (и заодно конвертировать их) с помощью Wc3ImageExtractor
  • Разархивируйте ее(со всеми текстурами)
  • Теперь откройте Yobgul's converter и конвертируйте вытащенную модель в mdl.
  • Откройте файл Arthas.mdl текстовым редактором.
Теперь будьте внимательны! Одна неточность может все испортить!
Найдите такие строчки в файле:

Sequences 13 {
Anim "Stand - 1" {
Interval { 3333, 6667 },
MinimumExtent { -154.372, -145.345, -41.5714 },
MaximumExtent { 135.577, 144.604, 118.823 },
BoundsRadius 207.343,
}
Anim "Stand First" {
Interval { 10000, 16667 },
Rarity 5,
MinimumExtent { -154.372, -145.345, -50.8508 },
MaximumExtent { 135.577, 144.604, 129.42 },
BoundsRadius 207.442,
}
Anim "Stand Second" {
Interval { 20000, 26667 },
Rarity 6,
MinimumExtent { -154.372, -145.345, -58.5597 },
MaximumExtent { 135.577, 144.604, 187.532 },
BoundsRadius 212.742,
}
Anim "Stand Ready" {
Interval { 30000, 31000 },
MinimumExtent { -162.5, -143.208, -29.7471 },
MaximumExtent { 133.44, 142.467, 104.669 },
BoundsRadius 210.441,
}
Anim "Attack - 1" {
Interval { 33333, 34333 },
NonLooping,
MinimumExtent { -161.692, -145.092, -39.2506 },
MaximumExtent { 167.024, 144.35, 160.411 },
BoundsRadius 220.168,
}
Anim "Attack - 2" {
Interval { 36667, 37833 },
NonLooping,
MinimumExtent { -175.945, -147.584, -67.5383 },
MaximumExtent { 172.425, 144.604, 217.012 },
BoundsRadius 221.646,
}
Anim "Death" {
Interval { 40000, 41500 },
NonLooping,
MinimumExtent { -154.372, -145.345, -73.0451 },
MaximumExtent { 135.577, 172.391, 186.321 },
BoundsRadius 220.569,
}
Anim "Stand Victory" {
Interval { 46667, 49333 },
MinimumExtent { -154.372, -145.345, -1.06609 },
MaximumExtent { 135.577, 144.604, 199.406 },
BoundsRadius 224.501,
}
Anim "Spell" {
Interval { 53333, 55500 },
NonLooping,
MinimumExtent { -154.372, -145.345, -40.0393 },
MaximumExtent { 135.577, 144.604, 238.33 },
BoundsRadius 224.491,
}
Anim "Stand Channel" {
Interval { 60000, 61667 },
MinimumExtent { -154.372, -145.345, -0.62305 },
MaximumExtent { 135.577, 144.604, 239.487 },
BoundsRadius 233.49,
}
Anim "Stand Hit" {
Interval { 66667, 67167 },
NonLooping,
MinimumExtent { -172.083, -141.673, -25.705 },
MaximumExtent { 131.905, 140.932, 122.483 },
BoundsRadius 216.574,
}
Anim "Dissipate" {
Interval { 73333, 75333 },
NonLooping,
MinimumExtent { -154.372, -145.345, -66.6171 },
MaximumExtent { 135.577, 175.079, 553.363 },
BoundsRadius 324.988,
}
Anim "Walk" {
Interval { 126667, 127433 },
MoveSpeed 250,
MinimumExtent { -152.235, -143.208, -31.0483 },
MaximumExtent { 144.95, 142.467, 153.409 },
BoundsRadius 214.518,
}
}
Нашли? Замечательно. Теперь скопируйте номер последнего кадра (В данном случае это анимация Walk, кадр №127433) и вставьте этот номер как номер последнего кадра первой анимации, затем замените первый кадр первой анимации на 0 и удалите все анимации, кроме 1. В результате получится:

Sequences 13 {
Anim "Stand - 1" {
Interval { 0, 127433 },
MinimumExtent { -154.372, -145.345, -41.5714 },
MaximumExtent { 135.577, 144.604, 118.823 },
BoundsRadius 207.343,
}
}
Получилось? Славненько. Теперь сохраните mdl и трансформируйте его обратно в mdx при помощи того же Yobgul's converter.

2. Работа с моделью

Итак, вы получили готовую модель без имен анимаций (все анимации теперь как одна). Теперь открывайте Max. Во вкладке Utilities выберите MaxScript, затем Run Script->[Скрипт Fadi] и в раскрывающемся списке ниже выберите Mdx Importer/Exporter. Появится небольшая менюшка.
Поставьте галочку на Create Skinning и немного подождите.
Теперь выберите единственную анимацию из списка (мы ведь в прошлой части объединили все анимации в одну!) и примените ее. В результате получится ~38000 кадров.
Теперь, после импорта вы получили модель со всеми анимациями, костями и ключевыми кадрами. Порадовались немного, сохранили сценку в Max'e и закрыли импортер.
Теперь создайте маленький прямоугольник в точке с координатами (0,0,0) и назовите ее...ну скажем Bone_ABCDEFGH (Пусть только начинается с "Bone_")
Примечание: по-видимому, автор пользуется старой версией Art Tools
И в User Property Editor (входит в комплект Art Tools) смените свойство этого объекта на Bone. Теперь найдите главную кость, которая не зависит ни от какой другой, но связана со всеми остальными, она, как правило, называется Bone_Root, и свяжите эту кость с созданным параллелипипедом. Теперь поверните Bone_ABCDEFG на 90 градусов вправо.
(Дело в том,что скрипт Fadi разворачивает при импорте все на 90 градусов влево. Исправим этот досадный баг)
А теперь выберите ВСЕ кости,и обозначьте их как Bones в Property Editor, Geoset теперь должен повернуться в нормальное положение.
Поздравляю! Вы закончили Вторую часть!

3. Текстурирование и прочее...

Сохраните сцену, желательно под другим именем, на всякий пожарный...
Теперь выберите все Geosets и обозначьте их как [Connected] в User Property Editor->Mesh Properties.
теперь воспользуйтесь редактором материалов и назначьте модели соотвествующую текстуру.
Fadi скрипт неправильно импортирует UVWwrapping, так что вам придется включить wrapwidth и wrapheight. Вы можете это сделать, кликнув на канале Diffuse и выбрав опции U и V или просто все сделать сами.
Теперь вам придется разедить один сплошной Mesh на разные части тела (рука, там, нога, ухо :)) и разделить части тела на куски (верхняя часть ноги, нижняя и т.п.)
Теперь используйте у модификатора Skin-Envelope функцию редактирования (Edit Envelope),чтобы посмотреть, какие части соединены с какими костями.
Заметьте, что модель Артаса слегка... кхэм... запутанная, но вы обязательно во всем разберетесь =)
Теперь совсем небольшие поправки. Скрипт Fadi (ну и бездарь! - прим. переводчика) и здесь совершает неточность: он не совсем правильно импортирует ключи. Подвигайте их на таблице, чтобы разобраться, что к чему.
Ну и наконец, когда все путем, после завершения манипуляций над ней, экспортируйте модельку при помощи Art Tools. Вот и все.
[Пример]
Там все, что вам нужно, кроме макса и арт тулз + сценка с артасом прилагается.
Примечание: советую создать отдельную директорию для работы с каждой такой моделью, например назовите ее Arthas

4. Где найти необходимые файлы

Итак, по порядку:

Просмотров: 11 966

ХоМкА #1 - 11 лет назад 1
Да, неплохо, но где можно достать такое старьё, как 3ds max 5.1. У всех уже давно восьмой макс, вот немогли придумать для 7-го и 8-го рапример.
d1masikk #2 - 8 лет назад 1
если кто то решит занятся, я нашёл 3ds max 5 на torrent.ru
там поиск и всё
Satellite #3 - 8 лет назад 1
БОЛЬШАЯ ПРОСЬБА обновить ссылки в конце статьи
Suselishe #4 - 8 лет назад 1
Люди,а сцылки то реально обновить надо бы!!!
BioAleks #5 - 8 лет назад 0
хорошая статья, тока 2009 макс весит дофига
Skolozdra #6 - 8 лет назад 1
Да, ссылки в конце надо обновить