WarCraft 3: Как вставить в War модель WoW?

MdlVis Tutorial

Приступим!

Итак, для работы вам понадобятся:
  1. Та модель WoW, которую планируется "загнать" в War (её файл имеет расширение .m2, если кто не знает :)), уже извлечённая из MPQ со всеми требуемыми текстурами. Правда тут есть один нюанс: в ряде случаев неизвестно, какие именно текстуры нужны этой модели. Причём иногда выцепить текстуры вообще не удается. Тут ничего страшно нет, хотя немножко геморра имеется. Следует помнить, что каждая модель имеет как минимум одну текстуру. Причем имя текстуры обычно начинается с имени модели. Например, модели Succubus.m2 соответствует текстура SuccubusSkin.blp.
Да, текстуры имеют расширение BLP. Но это не тот BLP, который понимает War. Это - особый формат, BLP2. О том, чем он отличается от обычного и как конвертировать blp2 в "нормальный" blp, поговорим чуть ниже.
Если вам не удается найти все текстуры модели - не огорчайтесь: достаньте хотя бы те, что нашли. В крайнем случае можно использовать и одну "голую" модель без текстур, а текстуры достать позже - после установления их имён (об этом - также чуть ниже).
  1. Редактор mdlvis версии не ниже 1.2. Взять его можно здесь:
Размер архива м.б. различным в зависимости от версии, но всяко не больше 300Кб. Это - наш основной рабочий инструмент.
  1. Мозги, терпение, DirectHands самой последней версии и т.п. мелочи.
  2. Желателен также редактор Photoshop и какой-нибудь конвертер tga<->blp. Если их нет, то уменьшить размеры текстур не удастся и придётся импортировать их в натуральном виде.

КАК?!

Процесс конверсии/импорта модели WoW осуществляется так:
  1. Грузим модель WoW в MdlVis.
  2. Настраиваем текстуры и конвертируем их из blp2 в blp.
  3. Если нужно, настраиваем набор анимаций.
  4. При желании каким-нибудь образом можем уменьшить размер модели.
  5. Сохраняем модель как MDX.
  6. Готово! Импортируем в WE и наслаждаемся.
А теперь рассмотрим каждый из этих шагов подробнее.
.

Грузим модель

Открываем MdlVis. Жмём кнопку "Открыть" (она, правда, в виде пиктограммы с открытой папочкой, но вы её легко найдете. В крайнем случае можно воспользоваться командой меню "Файл->Открыть"). Открывается стандартное диалоговое окно, где вы должны найти файл, подлежащий конверсии. Только сначала в списке "Тип файлов" выберите пункт "Модели WoW (*.m2)", иначе MdlVis просто не даст вам загрузить модель. Итак, ищем файл (в качестве примера я рассмотрю модель Суккуба - Succubus.m2) и жмём OK. После этого MdlVis анализирует загружаемый файл и пытается построить максимально похожую WC3-модель. Одновременно все текстуры, соответствующие модели и лежащие в одной папке с файлом *.m2, конвертируются из формата blp2 в blp. Их имена при этом не меняются, меняется только содержимое (ну и размер, конечно). Кстати, текстуры blp2 можно конвертировать и "вручную", отдельно от модели. Для этого используется команда "Файл->Конвертировать WoW-текстуру". Она работает аналогично: перезаписывает выбранный файл blp2 его конвертированным аналогом.
Итак, если всё пройдет благополучно и не вознинет никаких ошибок, то в рабочей области MdlVis мы увидим сетку модели. Кликнув по клавише "поворот" на панели инструментов, мы сможем рассмотреть эту сетку со всех сторон.
[Примечание: данная статья подразумевает наличие определенного навыка работы с MdlVis. Но даже если вы никогда не работали с этим редактором, не беда: в нем не так уж сложно разобраться. Кстати, у MdlVis'еров со стажем возникнут некоторые проблемы. Дело в том, что в новой версии MdlVis по просьбе Troll'а и Wolverine изменён способ вращения сцены - теперь Shift способствует наклону осей, а не повороту вдоль Z. В общем, движение сцены приближено к 3DSMax'овскому.]
.

Текстурный гемор.

В War'е каждый персонаж задаётся своей собственной моделью. Одна модель - один персонаж. В WoW существуют группы персонажей, которые задаются ОДНОЙ моделью, но покрытой различными текстурами. Например, модель Succubus.m2 порождает 5 персонажей:
И все они отличаются только текстурой. War так не умеет. Следовательно, ОДНОЗНАЧНО сопоставить модели все требуемые текстуры не удается. Поэтому при конверсии модели WoW в WC3 необходимо вручную выбрать ту текстуру, которая вам нравится больше всего. Разберем, как это делается. Выделяем часть точек поверхности (при этом они становятся красными) и, тяпнув для храбрости пивка (кстати, IMHO пиво - лажа полная, все виды этого напитка состоят из трех компонентов: вода+спирт+димедрол), жмем кнопку "Текстурирование".
Если при этом не появится никаких сообщений вида "Текстуры не найдены", можем себя поздравить: нам удалось извлечь из MPQ все до единой текстуры, необходимые данной модели, а MdlVis их все распознал. К сожалению, столь благоприятное развитие событий встречается весьма редко.
Итак, мы уже в редакторе текстурных карт. В его рабочей области м.б. изображена текстурная развертка или же пустое серое пространство - как уж там с текстурой повезло. Но нас интересует совсем другое - расположенный внизу список текстур модели:
Да, в этом списке должны содержаться имена+пути всех текстур, необходимых для отображения модели. На самом же деле там содержатся:
  1. Имена текстур, которые удалось распознать однозначно и на 100%, записаны В ВЕРХНЕМ РЕГИСТРЕ. Кроме того, они также содержат путь текстуры, например:
CREATURE\KELTHUZAD\KEL'THUZAD.BLP
В этом случае вы легко сможете найти данную текстуру в MPQ, если до сих пор не сумели этого сделать (т.е. вы получили неплохую подсказку, где искать текстуру). После извлечения текстуры не забываем конвертировать её в blp и прописываем прямо в поле списка нужный путь (обычно просто стирается всё, что идёт перед именем текстуры).
  1. Имена текстур, которые удалось распознать, но которые допускают замену. Они записаны в "обычном" виде и без путей, например: SussubusSkin.blp
Встретив такую текстуру, вы можете оставить её "как есть", а можете поменять на похожую (по вашему желанию и вкусу). Например, для Суккуба в это поле можно вписать SuccubusSkinBlue.blp, SuccubusSkinDarkviolet.blp, SuccubusSkinViolet.blp и SuccubusSkinRed.blp. Изменив поле текстуры, не забываем нажимать Enter, иначе изменения не сохранятся! Чтобы увидеть, как изменился внешний вид модели, после смены имени текстуры выходим обратно в редактор вершин (нажатием F1) и, нажав клавишу F, смотрим на внешний вид модели. Итак, нужные имена таких "заменяемых" текстур подобраны. Отлично! Теперь самое время перейти к наиболее геморной части:
  1. В списке содержатся также имена текстур, которые MdlVis не нашел и не сумул распознать. Это - также заменяемые текстуры, но запрятанные более "глубоко". Не сумев расшифровать имя текстуры, MdlVis формирует своё собственное по следующей схеме:
[Имя модели][идентификатор].blp
Например: TaurenMaleTauren.blp
идентификаторы позволяют догадаться, что должна содержать такая текстура. А вот где её найти - над этим вам предстоит размышлять самостоятельно. Вот список всех возможных идентификаторов:
А. Body - текстура с таким идентификатором содержит изображение "тела" или одежды (обычно персонажа). Как правило, в MPQ такие текстуры имеют имена вроде [имя модели]SkinXX_YY.blp, где XX и YY - некоторые номера.
Б. Cape - накидка. Текстуры всяких плащей и т.п. Они общие для всех персонажей и, видимо, содержатся в общем разделе MPQ (т.к. у меня нет WoW, дать более конкретный совет я не могу, ищите сами). Если с поиском такой текстуры совсем уж туго, можете использовать вместо неё любое изображение с плавными переходами (т.к. эта текстура определяет только внешний вид плаща/накидки/капюшона и т.п.).
В. Hair - содержит текстуру волос. Пока что мне не встречались модели, использующие текстуры с таким идентификатором (обычно волосы рисуются на общей текстуре).
Г. Tauren - текстура с изображением тауренской шерсти (к примеру, на загривке). Обычно такие текстуры имеют имена вида [имя модели]SkinXX_YY_Extra.blp. Подобные текстуры используются вроде бы только моделями тауренов :).
Д. _Skin01 - обычно используется персонажами из категории Creature. Обозначает "первую" текстуру (часто она оказывается единственной).
Е. _Skin02, _Skin03 - для персонажей категории Creature обозначают соответственно вторую и третью из используемых текстур. Обычно сами текстуры тоже пронумерованы и найти их в MPQ весьма просто.
Найдя нужные текстуры, прописываем их имена в списке текстур (не забываем про Enter!)

ПРИМЕРЫ:

  1. Модель рыцаря (HumanMaleGuard.m2). Грузим её в MdlVis. Переходим в редактор текстурных карт. Вылазит сообщение об ошибке - значит, каких-то текстур не хватает. Смотрим: в списке содержится один-единственный пункт - HumanMaleGuard_Skin01.blp. Следовательно, эта модель использует одну-единственную текстуру. То, что она оканчивается на "_Skin01" показывает, что эта текстура скорее всего лежит в MPQ в категории Creature рядом с самой моделью. Смотрим: там находится текстура HumanMaleGuard.blp. Других текстур, относящихся к этой модели (т.е. начинающихся с её имени) там нет. Следовательно, она-то нам и нужна. Извлекаем её из MPQ. Прописываем в MdlVis вместо HumanMaleGuard_Skin01.blp нужное имя: HumanMaleGuard.blp. Не забываем нажать Enter! Теперь выходим обратно в редактор вершин (F1), конвертируем нашу текстуру ("Файл->Конвертировать WoW-текстуру") и жмём F. Готово! Никаких сообщений об ошибках не появляется, рыцарь готов! Можно сохранить модель как MDX и импортировать в WE вместе с текстурой HumanMaleGuard.blp, не забыв в менеджере импорта WE удалить префикс пути "war3imported\".
  2. Модель Crocodile.m2 - шестиногий крокодил, жуткое чудище. На этот раз, видя, что модель содержится в категории Creature, ищем там же текстуры, начинающиеся с "Crocodile". Таких находится целых 4: CrocodileSkinAlbino.blp, CrocodileSkinMarsh.blp, CrocodileSkinRiver.blp и CrocodileSkinSwamp.blp. Заранее извлекаем их в одну папку с моделью. Грузим модель в MdlVis, смотрим список текстур... И - приятная неожиданность: никаких ошибок не вылезло! Значит, MdlVis нашёл все необходимые текстуры. В списке - всего одна текстура, CrocodileSkinAlbino.blp. Следовательно, она заменяемая (набрана малыми буквами). Вместо неё мы можем прописать имя любой из вышеперечисленных "крокодильих" текстур для изменения вида крокодила. При импорте в WE нужно импортировать только выбранную текстуру. Все остальные моделью не используются - их импортировать не нужно. Конвертировать текстуры тоже в данном случае не нужно: если они лежат рядом с моделью, то MdlVis автоматически (в момент конверсии модели) конвертирует и всю группу текстур.
  3. Модель Лича-Ильича... Э, прошу прощения, просто лича - KelThuzad.m2. Грузим модель. Смотрим текстуры. Тут же - сообщения об ошибках (часть текстур не найдена). Смотрим список... Ещё одна приятная неожиданность: имена всех текстур НАПИСАНЫ ЦЕЛИКОМ ЗАГЛАВНЫМИ БУКВАМИ! А перед именами идут их пути. Следовательно, MdlVis расшифровал имена всех текстур. Они все незаменяемые, но зато мы теперь можем легко найти их в MPQ.
.
В принципе, для нормального импорта модели проделанной работы уже достаточно: сохранение в MDX даёт работоспособную модель, которую уже можно использовать. Новичок может этим и ограничиться. Однако более "продвинутый" мапмейкер наверняка захочет извлечь из WoW-модели максимум эффекта при минимуме затрат. В следующем разделе мы поговорим о тонкой настройке анимаций модели.
.

Настройка набора анимаций. [Новички могут пропустить этот раздел.]

Модели WoW содержат множество качественных анимаций. Модели персонажей могут содержать до 150 различных анимационных последовательностей. Конечно же, в War'е использовать их все сразу весьма и весьма затруднительно (хотя всё-таки возможно). К тому же однозначно перевести анимации WoW в WC3 не удается. И хотя автоматическая конверсия, выполняемая MdlVis'ом, даёт неплохой результат, но ручная настройка набора анимаций позволяет добиться ещё большего. Для такой настройки нажимаем F3. При этом запускается редактор анимаций (в случае больших моделей на его запуск уходит значительное время). Вообще-то это самый глючный модуль MdlVis (хотя сразу после постинга этой статьи я им займусь), но просматривать там анимации теперь можно вполне нормально. Список анимаций находится справа (по умолчанию там стоит "Вся линейка"). Все их можно просматривать. Для начала, просто посмотрите, что вообще содержится в данной модели. А я пока "задвину" тут немного ликбеза. Итак, каждая модель содержит анимации. Эти анимации объединяются в группы. Все анимации группы имеют одинаковые имена и отличаются только индексом (например, Stand, Stand 1, Stand 2, Stand 3 - это ГРУППА). В группе должны содержаться только однотипные анимации. Например, Stand - анимации стояния (анимция простого стояния+анимация какого-нибудь особого движения или поворота + и т.д.). В группе может содержаться и всего одна-единственная анимация. Например, анимация Death (гибель персонажа) - это сама по себе группа.
Группы, в свою очередь, объединяются в НАБОРЫ. Набор должен содержать все группы, необходимые для нормального функционирования модели, а именно:
Stand (персонаж стоит, ничего не делает),
Walk (ходьба)
Attack (атака)
Death (гибель)
Spell (колдовство).
Кроме того, у модели м.б. ряд "плавательных" анимаций. Они оканчиваются суффиксом "Swim" (Stand Swim 1, Stand Swim 2, Walk Swim и т.д.). Затем могут существовать различные дополнительные виды анимаций (их очень много. Например, Stand Victory - анимация победы, используется в кинематиках; Walk Fast - бег, Spell Channel - непрерывный каст магии и т.п.).
Каждая модель может содержать до пяти наборов анимаций. При этом анимации второго набора дополняются суффиксом Second (Stand Second 1, Stand Second 2, Walk Second, Stand Swim Second и т.д.). Анимации третьего набора дополняются суффиксом Third, четвертого - Fourth, и пятого - Fifth. (Однако уже попытка указать Sixth приведёт к ошибке).
Для чего всё это нужно. Наборы позволяют сгруппировать анимации одинакового назначения, но разного стиля. Рассмотрим War'овскую модель Иллидана. У этого героя есть две формы: обычная и демоническая. При этом каждая форма обладает анимациями Stand, Walk и всеми прочими. Но анимации демона и непревращенного героя выглядят по-разному. Поэтому анимации обычной формы составляют первый набор, анимации же демонической формы - альтернативный (они дополняются суффиксом Alternate, т.е. это как бы шестой набор).
Многие персонажи WoW умеют обращаться с различными видами оружия: кулак, ноги (пинок), праща, одноручное оружие, двуручное оружие и т.д. Само собой, что анимации вооруженного и безоружного персонажа существенно отличаются. MdlVis мешает их в кучу. Если же выделить, к примеру, все "безоружные" анимации персонажа в первый набор, ношение двуручного оружия - во второй, одноручного - в третий и т.д., то потом в War'е, триггерно переключая наборы, можно менять тип анимации персонажа (это очень полезно для RPG-игр. К примеру, взял герой меч - меняется тип анимации. Как это осуществляется в самом War'е - рассмотрим чуть ниже. Кстати, собственно оружия модели WoW часто не содержат: они анимированы так, как будто используют оружие, но их руки сжимают пустоту. В этом случае оружие моделируется отдельно и прикрепляется к персонажу опять-таки триггерно. Об этом мы тоже ещё поговорим).
Итак, рассмотрим на конкретных примерах формирование наборов анимаций.

**ПРИМЕРЫ:**

  1. Модель Грифона - Gryphon.m2. Смотрим список анимаций. Первое, на что стоит обратить внимание: в этом списке присутствует группа анимаций Cinematic. В эту группу MdlVis собирает все неидентифицированные анимации модели WoW. Их можно просмотреть и, в случае необходимости, переименовать. И наоборот, все ненужные анимации стоит собрать в эту группу, чтобы потом удалить. Следует отметить, что Грифон - модель летающего персонажа. При составлении набора анимаций таких моделей стоит учитывать высоту полета. Например, если сравнить анимации Stand и Stand 1:
то можно увидеть, что они отличаются по высоте. Если соединить эти анимации в одну группу (а MdlVis так и сделал: собрал их в Stand), то модель будет весьма некрасиво "дёргаться" - периодически менять высоту полета. Следовательно, или Stand, или Stand 1 стоит исключить из группы. Удобнее, пожалуй, исключить Stand 1. Просто переименовываем эту анимацию во что-то другое (правим имя прямо в том поле, где оно прописано). Лучше всего переименовать её в Cinematic 01 (или еще с каким-нибудь номером). Какое попало имя давать нельзя: если в модели встречаются имена неизвестных War'у групп, модель станет глючить. А вот числовые индексы в самой группе можно давать и не по порядку (и они могут даже совпадать!). После переименования не забываем нажать Enter - иначе новое имя анимации не сохранится! Далее смотрим анимации Attack и Attack 1. Видим, что по высоте во время атаки грифон расположен ниже, чем во время Stand. НО: высота грифона в Attack и в Attack 1 одинакова! А значит, никаких рывков не будет. Высоты должны совпадать только внутри группы. Между группами доппускаются различия. Итак, тут всё нормально, идём далее. А далее идёт анимация Walk. И мне она не нравится: дело в том, она очень похожа на анимацию Stand. А если посмотреть в конец списка, то можно обнаружить там куда более красивые анимации полета - Walk Fast и Walk Fast 1. Что ж, изменяем Walk на Cinematic 02, а в Walk Fast и Walk Fast 1 стираем "Fast". Готово! Теперь анимации полета тоже выглядят пристойно. Ну, в принципе, на этом можно и закончить. Сохраняем модель и выходим из MdlVis (кстати, потом в случае чего можно будет вновь загрузить модель - естественно, уже MDX-файл - и продолжить "доводку" анимаций).
  1. Модель рыцаря. Эта модель интересна тем, что у него есть анимации, учитывающие вооружение. И можно создать 3 набора анимаций: анимации без оружия, анимации с одноручным оружием и анимации с двуручным оружием. По умолчанию MdlVis мешает их в кучу. Что ж, приступим!
Stand - анимация без оружия (стоит, руки по швам). Так и оставляем.
Walk - тоже идёт без оружия.
Walk Fast - можно оставить как есть.
Cinematic 261 - стоит, но с оружием в одной руке (хотя, как уже указывалось, оружие в модели WoW часто не входит. Например, этот рыцарь сжимает рукой пустоту вместо меча. Но меч очень легко домыслить). Переименуем в Stand Second (не забываем про Enter!).
Stand Hit - оставляем (анимация пропущенного вражеского удара).
Attack Alternate - непонятно, почему эта анимация попала в альтернативный набор. Это явно анимация удара кулаком! Переименуем в Attack. В набор без оружия!
Attack Alternate 1 - это уже удар мечом для одной руки. Будет Attack Second.
Cinematic 212 - ? Какая-то странная анимация (пьет из фляжки, что ли?) Оставляем как есть.
Death - все ясно, оставляем.
Cinematic 83 - оставляем как есть (вообще-то это Stand Hit, можно бы и переименовать).
Cinematic 274 - стоит с двуручным мечом - это уже третий набор (Stand Third).
Cinematic 105 - оставляем (хотя это вроде бы Stand Hit Second).
Sleep - анимация спанья (спит на ходу). Оставляем.
Attack Alternateex - удар двуручным мечом. Переделываем в Attack Third.
Attack Alternateex 1 - та же группа. Будет Attack Third 1.
Cinematic 226 - оставляем (вообще-то это переходная анимация между атаками, можно бы обозначить как Stand Ready Third).
Cinematic 137 - рыцарь пятится задом наперёд :). В War'е такая анимация не имеет аналогов. Оставляем. (Напомню, что анимации с тегом Cinematic просто игнорируются War'ом).
Готово? Да как бы не так! Конечно, анимации попереименованы, но наборы неполны: например, в наборе Second не хватает анимации Death (как и в наборе Third). И самое главное, что взять их неоткуда: в модели они попросту отсутствуют. Что же делать? А ничего: дело в том, что если War не находит анимаций какого-то набора (к примеру, нет в модели Walk Second) он вместо неё использует соответствующую анимацию из первого набора (Walk). Т.е. первый набор является общим, за его счет дополняются до полного комплекта все остальные наборы. Кстати, в самой модели анимация Walk как раз и построена из расчета, что она будет общая для всех наборов.
Итак, сохраняем и эту модель.
.
Теперь вы представляете, как работать с анимациями. Модели полностью настроены. Однако, они ну ОЧЕНЬ уж велики по объему. "Вес" моделей некоторых персонажей может составлять до 2Мб! Да это же просто грабеж!!! Карта при вставке моделей "вздувается" ну прямо на глазах. Непорядок. Кстати, текстуры тоже весят немало. Следовательно, неплохо бы найти способ уменьшить вес моделей и текстур.
.

Посадим модель на диету!

Начнем с моделей. Вы думаете, они так много весят из-за своей высокополигональности? Да как бы не так! На самом деле всё место сжирают анимации (точнее, линейки ключевых кадров - сокращенно КК). В некоторых моделях анимации могут составлять до 80% их размера! Конечно, если планируется использовать их все до единой, с этим придется смириться. Но вот когда часть анимаций не нужна, от них можно избавиться. При этом модель очень сильно похудеет. Не вдаваясь особо в теорию этого дела, рассмотрим сразу практический пример.

ПРИМЕРЫ:

  1. Модель суккуба - Succubus.m2. Итак, смотрим. Прежде всего, анимации с тегом Cinematic просто игнорируются War'ом, а значит, их можно спокойно удалить. Выбираем анимацию Cinematic 251. При этом справа (под параметрами анимации) есть кнопка "удалить", которая ну просто сама просится под курсор мыши. Не торопитесь! При нажатии этой кнопки удаляется только запись об анимации, а весь набор КК остается. Поэтому размер модели уменьшится при таком удалении всего на несколько байт. А нам нужно удалить именно КК. Для этого щёлкаем правой клавишей мыши по анимационной линейке:
да-да, именно по той белой полосе с синими штрихами. При этом появится всплывающее меню с одним-единственным пунктом "Очистить". Жмем на него. Нас попросят подтвердить очистку. Жмем "Да". И полоса становится девственно чистой: все синие штрихи с неё исчезают! Вот теперь можно удалить и саму анимацию. Сохраняемся и смотрим на размер файла: он уменьшился с 524Кб до 508. Хорошо, но мало. Впрочем, у нас есть ещё Cinematic 102. Аналогично удаляем все её КК, затем саму анимацию... И получаем 475Кб. Так, вроде удалять больше нечего. Хотя... Есть ещё анимация Walk Fast. War сам по себе её не использует, она может быть "запущена" только триггерно. Если же нам она не нужна, удаляем и её. Получаем 452Кб. Есть ещё Stand Victory, но её удалять нельзя, т.к. она использует тот же интервал кадров, что и Stand 1. И если мы их сотрем, то Stand 1 навернётся. Ну, вроде и всё. Похоже, конечный размер в 452Кб уже близок к своему пределу. Хотя, если в War'е не планируется давать юниту на основе этой модели абилки с непрерывным кастом, то можно ещё удалить группу Spell Channel. Однако тут выигрыш будет совсем символическим, т.к. в этих анимациях очень мало КК. Кстати, каждый КК отображается на анимационной линейке синим штрихом. Так что взглянув на линейку и оценив количество КК в анимации, можно прикинуть, насколько выгодно окажется её удаление. Видим, что очень много КК содержат анимации группы Stand. Так что если очень уж хочется уменьшить размер модели, можно оставить в группе только Stand, а Stand 1, Stand 2 и Stand Victory убрать. При этом модель "худеет" до 395Кб, а качество анимации падает незначительно. Кстати, следует помнить, что модели MDX при импорте в карту увеличивают её размер не на полный свой объем, а где-то на 2/3 его. Дело в том, что любая карта - это тот же MPQ-архив. А MDX-файлы всё-таки сжимаются, хотя и плохо.
  1. Рыцарь - HumanMaleGuard.m2. Здесь все анимации используются - мы же ведь сами только что "распихали" их по наборам. Поэтому удалить можно только короткие анимации группы "Cinematic". Соответственно, и уменьшение размера тут будет небольшим: вместо 331Кб получим 304.
Впрочем, на других моделях уменьшение размеров может быть больше.
.
Если файлы MDX хотя бы пакуются, то blp-текстуры - это уже упакованное изображение. Поэтому они практически не сжимаются архивированием. А размер карты при их импорте возрастает на размер самих текстурных файлов. Как можно уменьшить размер текстуры? Счастливые обладатели какого-нибудь blp<->tga -конвертера обычно решают эту проблему более сильной запаковкой. Т.е. при упаковке текстуры в BLP устанавливают Quality как можно меньше. После ряда экспериментов я выяснил, что оптимальным значением является Quality=75. При дальнейшем его снижении качество начинает падать уже в разы, а размер полученного blp - на считанные килобайты. Следовательно, нужно воспользоваться каким-либо другим способом уменьшения текстур. Например, можно использовать особености текстурирования War'а. Во-первых, каждая текстура помимо собственно изображения содержит набор MIP-карт. Они обеспечивают правильное отображение текстуры (без оквадрачивания) при масштабировании модели. Чем же это может нам помочь? А вот чем. Если размеры текстуры больше, чем 128x128, то при её уменьшении в 2 раза по X и по Y качество падает весьма незначительно, а размер уменьшается в разы! Например, если текстуру SuccubusSkin.blp перевести в tga, уменьшить Photoshop'ом в 2 раза (получив текстуру 128x128), а потом перевести обратно в blp, то размер этого файла упадёт с 70 до 24Кб! Т.е. почти в 3 раза. А качество почти не снижается (в случае использования обычной камеры War'а, когда персонажи отображаются крошечными модельками, разницы вообще незаметно. Ну, а если приблизить камеру вплотную к юниту да ещё и повернуть её так, чтобы он стоял во весь рост, то разница, само собой, будет). Если же падение качества при такой операции совсем уж неприемлимо, то можно использовать половинный вариант: уменьшить текстуру только по оси Y, а по X оставить без изменений (получив текстуру 256x128). При этом текстура, конечно, исказится. Но механизм текстурирования моделей War обеспечит её правильное наложение даже в этом случае! А размер blp-текстуры составит 42Кб, чуть больше половины исходного.
Ну, и для скептиков (вроде TONIC), которые долго работали в Photoshop'е и считают, что при уменьшении текстуры в 2 раза качество падает минимум в 4, и что вообще вся эта идея - лажа, привожу пример. А именно - скриншоты модели Суккуба. На первом скриншоте у модели нормальная текстура(256x256), на втором - уменьшенная по X и Y в 2 раза (128x128), и на третьем - промежуточный вариант (256x128).
Качество падает. Конечно же, оно падает! Но не слишком значительно. Пожалуй, наиболее заметна потеря резкости на участках, богатых мелкими деталями и четкими цветовыми границами (например, на её трусах). Кроме того, я специально установил камеру чуть ли не вплотную к персонажу и повернул её так, чтобы видеть Суккуба во весь рост. А при использовании нормального масштаба, "обычной" камеры War'а разницы вообще не ощущается.
[Возможно, у кого-то уже созрела идея уменьшить модель не в 2, а в 4 раза по X и Y. Могу вас огорчить: такой вариант не прокатит. У MIP-карт резерв прочности тоже не безграничный. И качество падает резко, рывком].
.
Итак, модель оптимизирована, текстуры тоже. А значит, самое время её поюзать. Пускаем WE!
.

Использование модели в War'е.

Поскольку вы уже и так умеете использовать импортированные модели, я заострю своё внимание лишь на некоторых моментах.
Прежде всего, у моделей WoW масштаб варьируется в широких пределах. Поэтому какие-то модели будут огромными, а какие-то - совсем миниатюрными. Если размер юнита, созданного на основе модели, вас не устраивает, то его всегда можно изменить. Для этого в Редакторе Объектов в поле Графика - Масштабирование пропишите нужное вам значение масштаба.
Теперь рассмотрим вопрос о персонажах, которые могут носить различные виды оружия. Соответственно, в зависимости от носимого оружия характеристики героя будут разными (скорость бега, сила атаки и т.п). Как это реализовать? Проще всего создать на основе одной и той же модели (к примеру, того же рыцаря) несколько различных юнитов. Каждому из них установить свои характеристики (для данной формы). А затем воспользоваться полем Редактора Объектов "Графика - Нужная анимация". В этом поле нужно указать набор анимаций, которые будут использоваться этим типом юнита. Если данное поле оставить пустым, будут использоваться ТОЛЬКО анимации первого набора. Если там поставить Second, то будут использоваться только анимации второго набора (ну, и дополняющие их до полного комплекта анимации первого - см. раздел об анимациях). Соответственно, Third - третий набор, Fourth - четвертый и Fifth - пятый. Далее работают триггеры. Когда герой, к примеру, берёт одноручный меч, этот юнит заменяется (триггерно) на юнит типа "рыцарь с двуручным мечом". В принципе, замену можно и не триггерно осуществлять, а путем создания особых абилок. Но это уж зависит целиком от вашей фантазии.
Если в WE поставить на карту юнитов этих новых видов (которые используют одну модель, но разные анимационные наборы), то можно увидеть, что они и стоят уже по-разному (т.к. один использует Stand, второй - Stand Second и т.д.). К сожалению, в WE существует один глюк (точнее, там до фига глюков, но вот вам ещё один). При отображении юнита, использующего первый набор многонаборной модели, WE начинает его "дёргать", мешая в кучу анимации всех наборов сразу. Почему-то такой глюк проявляется только на первом наборе. Пусть вас это не тревожит: War анимирует юнитов нормально, т.е. без глюка и как положено.
.
Конечно, когда рыцарь фехтует отсутствующим мечом, это нехорошо. Впрочем, найти модели оружия обычно несложно (или же можно заказать их кому-нибудь). А "цеплять" их на юнит можно триггерно. Думаю, вы знаете, как это делается ("Спецэффект - Create Special Effect on Unit"), а если нет, то прочтите статью о точках прикрепления.
Да, именно о них мы сейчас и поговорим. Модели WoW имеют совершенно особый набор точек прикрепления, очень слабо связанный с War'овским. Сейчас мы их все и рассмотрим.
  1. origin - это стандартная точка прикрепления, "земля". Сюда обычно крепится аура. Всё, что будет "повешено" на эту точку, ляжет у ног персонажа.
  2. overhead - тоже стандартная. Точка находится над головой персонажа. Сюда тоже можно привесить какое-нибудь сияние.
Эти две точки (origin и overhead) присутствуют в каждой модели, тогда как все остальные точки могут и отсутствовать.
  1. Hand First Rigth, Hand First Left - точки находятся на ладонях персонажа (правой и левой соответственно). Сюда вешается оружие или иные предметы, переносимые в руках. У моделей животных (типа грифона) эти точки находятся довольно низко под когтями. Предназначены для крепления туда чего-то объёмного (возможно, добычи?).
  2. Hand Second Left - находится на левом запястье. Может, сюда требуется крепить браслет? Парная ей правая точка отсутствует (её просто нет). Эта точка есть только у персонажей и отсутствует у моделей из категории Creature (кстати, у них вообще есть только половина всех возможных точек прикрепления. Так что будьте внимательны! Не факт, что понравившаяся вам точка существует).
  3. Hand Third Right и Hand Third Left - движемся вверх по руке :). Эти точки находятся на локтях - правом и левом соответственно.
  4. Hand Fourth Right и Hand Fourth Left - находятся на плечах (правом и левом).
  5. Foot Second Right и Foot Second Left - на самом деле находятся на коленях - правом и левом. А к ступням ничего прикрепить нельзя (нет соответствующих точек прикрепления).
  6. Chest Left и Chest Right - теоретически эти точки должны находиться на груди (слева и справа). Реально же они обычно полностью совпадают и находятся спереди посередине бюста.
  7. Chest Second - находится сзади между лопаток персонажа.
  8. Head First - расположена на макушке головы.
  9. Head Second - находится на лице в районе губ.
  10. Weapon Rear Left и Weapon Rear Right - когда на персонаже надеты ножны, крепление оружия к этим точкам должно "загонять" его в эти ножны. А когда ножен нет, оно вешается на спину (слева и справа).
  11. Weapon - то же самое, только ножны должны быть явно для одноручного меча. А так оружие опять-таки оказывается на спине.
Точки типа "Weapon XX" есть только у персонажей.
  1. Chest - находится в районе живота.
  2. Back Left и Back Right - ? в моделях пока не встречал.
  3. Weapon Mount Left и Weapon Mount Right - тоже предназначены для ножен и оружия, но расположены у пояса (слева и справа).
.
Ну, вот вроде и всё. Тем, кто ещё не заснул от моей нудятины, говорю: "Спасибо за внимание!".
Читаем, комментируем, разбираемся, задаём вопросы.
С уважением, Алексей.

Просмотров: 19 149

vladenis #1 - 4 года назад -1
Блин почему то когда я пытаюсь запустить модель в mdlvise вылазиет ошибка делал все как написано в статье помогите пожалуйста
LongbowMan #2 - 4 года назад 2
vladenis, есть специальная тема на форуме и есть возможность задать вопрос в Q/A на сайте. Только если вы там спросите в такой же форме, то вам никто не поможет, ибо телепаты здесь не водятся.