Добавлен , опубликован

MdlVis Tutorial

Содержание:

Общее знакомство

Итак, теперь мы уже можем приступить собственно к изучению редактора MdlVis. Сразу должен заметить, что это - только версия 1.0 редактора, так что я не знаю, как он будет работать на Вашей машине. И уж конечно, в редакторе наверняка есть не выявленные глюки (хотя по сравнению с бета-выпуском их стало значительно меньше).
Редактор представлен всего одним файлом: mdlvis.exe. Запустите его, и у вас откроется главное окно редактора:
Пока оно пусто. Прежде всего, нужно загрузить файл для редактирования. Мы рассмотрим работу с редактором на примере все той же модели Дриады (уже, разумеется, конвертированной в mdl-формат). Загрузить файл можно либо с помощью меню
(Файл->Открыть), либо нажатием кнопки Открыть либо с помощью комбинации клавиш Ctrl+O.
После загрузки файла рабочая область редактора приобретает вид:
Итак, что мы здесь видим? На дриаду вроде не очень похоже: Но это и есть модель дриады - вид сверху (он всегда включается при загрузке модели). Кроме того, модель видна на уровне вершин. Синие точки - это вершины, через которые проходит контур модели. Но вообще-то изображение больше похоже на кляксу.
Поэтому изучение редактора мы начнем с навигации - разберем, как можно по-смотреть на модель с более выгодной позиции. Для навигации в редакторе предусмотрена навигационная панель инструментов:
Она находится сверху. Первая кнопка - режим редактирования (сейчас включена именно она). Вторая - масштабирование. Кликните по ней. При этом она становится вдавленной, а курсор мыши приобретает форму лупы. Кроме того, справа от рабочей области редактора появляется текущее значение масштаба изображения. Изменять масштаб нужно движением курсора мыши по вертикали с зажатой левой кнопкой. Вверх - увеличение, вниз - уменьшение. Кроме того, можно ввести масштаб вручную (там, где записано его текущее значение) и нажать Enter. Это масштабирование (так же как и все остальные действия навигационной панели) не изменяют саму модель, они только смещают точку зрения (для более удобного редактирования). Вторая кнопка
  • поворот модели. Щелкните по ней. Теперь модель можно вертеть. К сожалению, мне не удалось правильно подобрать матрицу поворота, так что это больше похоже на наклон модели, а не на поворот. Скажу только, что движения курсора мыши вверх/вниз/вправо/влево с зажатой левой кнопкой приводят к наклону модели в соответствующем направлении. А поворот модели вокруг оси Z (вертикальная ось, выделена синим цветом) осуществляется движением курсора мыши по горизонтали с зажатой левой кнопкой+клавишей Shift на клавиатуре. Кроме того, можно вручную вводить углы поворота вокруг осей, хотя тут я не гарантирую надежного результата, т.к. матрица поворота заполняется почти наугад.
Последняя кнопка осуществляет движение системы координат (вместе с моделью) в пространстве. Правила использования - аналогично остальным кнопкам.
Разумеется, кнопки Навигационной панели - не единственный способ управления просмотром модели. Например, счастливые обладатели мыши со скроллом (колесиком) могут масштабировать модель (больше/меньше) простым поворотом колесика мыши в любой момент, вне зависимости от того, какая кнопка навигационной модели активна.
А теперь попробуйте, пользуясь навигационными кнопками, добиться, чтобы модель приобрела вышеуказанный вид. Согласитесь, сейчас уже можно понять, что тут изображено. Кстати, Вы наверно уже заметили, что тут показана только часть модели: нет коленей, нет оружия, к примеру. Дело в том, что любая модель War'а состоит из набора поверхностей (Geosets в терминологии моделеров). На самом деле это очень удобно: осуществляется редактирование не всей модели сразу, а лишь ее отдельных частей.
Управление отображением осуществляется при помощи вот такой
панельки, доступной только в режиме редактирования (т.е. при нажатой
стрелочке на навигационной панели). Список <Объект> содержит полный список поверхностей модели. Обычно чем сложнее модель, тем больше в ней поверхностей. Например, очень много поверхностей содержит модель Иллидана. В поле этого списка отображен номер текущей поверхности. Сейчас, например, активна (показана) поверхность №1. Вы можете выбрать любую поверхность из этого списка, тогда она станет активной. Кроме того, поставив галочку <Показ поверхностей> Вы можете увидеть сразу всю модель (хотя доступной для редактирования остается только активная поверхность, остальные отображаются контурно):
При этом внизу (сразу под переключателем <Показ поверхностей>) активизируется список отображаемых поверхностей. Сняв галочку напротив номера соответствую-щей поверхности, вы сделаете ее невидимой.
Теперь продолжим разговор о различных видах модели. Если Вы щелкните правой кнопкой мыши по слову <перспектива> вверху слева рабочей области, то появится всплывающее меню, где Вы сможете выбрать вид (виды сбоку, сзади, сверху, снизу и др.).
Кстати, если вам надоело каждый раз после запуска MdlVis искать нужную мо-дель и открывать ее, вы можете воспользоваться Проводником Windows, чтобы связать MDL-файлы с редактором.

Система координат.

Система координат редактора сильно отличатся от 3DSMax и соответствует координатной системе самого Warcraft'а. Прежде всего, обратите внимание на коорди-натные оси. Ось X выделена красным цветом, Y-зеленым, Z-синим. Если забудете, какая ось как раскрашена - посмотрите направо, на панели инструментов буквы X,Y,Z выделены соответствующими цветами.
Точке пересечения осей соответствуют координаты (0;0;0) . В плоскости XY находится т.н. сетка. Она нужна для масштаба. Один квадрат сетки имеет размеры 64x64. Тогда как одна клетка местности в WorldEditor'е - 128x128 (т.е. 2x2 квадрата сетки). Если эта сетка мешает Вам, ее можно отключить с помощью главного меню (Вид->Сетка XY). Там же можно включать/выключать сетки для остальных плоско-стей или же включить мелкую сетку (квадраты 8x8 для особо мелких работ):
Если Вы уже меняли активную поверхность (см. выше), то обратили внимание на то, что кнопка, расположенная чуть правее навигационной панели, становится активной:
Это - кнопка отмены. Она позволяет отменить последнее действие. С тем же успехом можно использовать команду меню
Правка->Отменить или комбинацию Ctrl+Z.

Работа с вершинами

Теперь попробуем как-нибудь изменить нашу модель. Очень часто, к примеру, на форумах попадаются просьбы типа <сделайте мне такую-то модель, только без оружия>. По-моему, с такими просьбами просто стыдно вылезать на форум. Удаление части модели (оружия, рогов, ушей - такая просьба мне тоже попадалась! - или еще чего-нибудь) осуществляется крайне просто, меньше чем за минуту. Поэтому мы сейчас попробуем удалить оружие у дриады (разоружим ее). Прежде всего, нужно попереключать все поверхности и посмотреть, какие из них содержат оружие. Так мы выясним, что оружие Дриады разбито на 3,4,6 и 7 поверхность. Что ж, приступим! Я уже говорил, что для редактирования доступна только активная поверхность. Сделаем активной 3 поверхность (хотя можно начать и с любой другой). Как же ее изменить? Прежде всего, нужно знать, что любая поверхность состоит из вершин (основные, узловые точки через которые проходит поверхность) - они обо-значаются синими квадратиками, и разворотов (треугольников, которые проходят через эти вершины). Да-да, все модели War'а полигональны, т.е. состоят целиком из треугольников! Дело в том, что треугольники быстрее всего рисуются. Кроме то-го, чем таких треугольников меньше, тем быстрее War рисует такую модель. По-этому моделисты Blizzard'а постарались и создали очень грубые, низкополигональные модели.
Так, что-то я отвлекся. Итак, прежде всего вернемся в режим выделения
. При этом справа от рабочей области появится панель инструментов:
Первая строка показывает, сколько всего вершин содержит активная поверхность (в нашем случая их 6). Вторая показывает количество выделенных вершин (надеюсь, ни для кого не секрет, что перед редактированием части поверхности надо сначала выделить эту часть). Далее показано количество скрытых вершин (о них мы поговорим позже), затем идут координатные поля.
Прежде всего научимся выделять вершины. Чтобы выделить одиночную вершину, просто кликните по ней мышью. Она изменит свой цвет на красный. Правда, если под курсором мыши окажется несколько вершин, то выделится только ближайшая к наблюдателю. Иногда несколько вершин имеет одинаковые координаты и т.о. находятся в одной точке. Какая из них выделится в этом случае - сходу и не скажу. Попробуйте выделить все 6 вершин поверхности, последовательно кликнув на каждой из них (напоминаю, что количество выделенных вершин написано на панели инструментов). При этом можете крутить, масштабировать и поворачивать модель, как Вам угодно: при навигации выделение не снимается. Обратите внимание, что при повторном клике на уже выделенную вершину, она становится синей: с нее снимается выделение. Если Вам нужно, чтобы вершины только выделялись (т.е. чтоб даже случайный клик по уже выделенной вершине не приводил к снятию выделения), выделяйте вершины, удерживая клавишу Shift на клавиатуре. Аналогично, снимать выделение с вершин можно с зажатой клавишей Ctrl (при этом выделение только снимается).
Ну ладно, 6 вершин в конце концов можно выделить поочередно (если их координаты не совпадают). Но в некоторых поверхностях бывает по нескольку сотен вершин. Участки таких поверхностей можно выделять с помощью т.н. области выделения. Кликните мышью по любому свободному от вершин участку рабочей облас-ти и потяните мышь, удерживая зажатой левую кнопку. При этом Вы увидите, как на экране появится и начнет растягиваться квадратная рамка. Охватив ей нужный участок, отпустите левую кнопку мыши. Выделение всех вершин, попавших туда, инвертируется: те, которые еще не выделены, станут выделенными. А те, что были выделенными, станут не выделенными. Надеюсь, я Вас не запутал? В общем, по-тренируйтесь - на практике оно проще, чем на словах. Если же охватить вершины, удерживая в придачу клавишу Shift, то все без исключения вершины, попавшие в область, становятся выделенными. Если же удерживать при этом не Shift, а Ctrl, то со всех вершин, попавших в область, выделение снимется.
Заметьте, что когда вершина выделена, в координатных полях X,Y,Z отображаются ее координаты. Если выделено несколько вершин, то там находятся координаты их геометрического центра. Кроме того, если выделена хоть одна вершина, то стано-вятся доступными (чуть ниже) клавиши инструментов редактирования. И в завершение темы выделения скажу, что каждый акт выделения можно отменить по Ctrl+Z.
Итак, все вершины 3-й поверхности выделены. Теперь нам нужно просто удалить их. Это осуществляется нажатием на клавишу с изображением полоски. Жмем ее: И появляется сообщение: <осталась последняя вершина, ее удаление невозможно>. Дело в том, что в этой версии редактора не реализована возможность удаления всей поверхности - хоть одна вершина должна остаться. Она и остается - вы увидите, что 1 вершина не удалилась. Впрочем, при игре в War'е она не будет видна, т.к. War не отображает вершины. Он отображает развороты, а для них 1 вершины недостаточно. Аналогично удаляем вершины остальных поверхностей оружия (кстати, удалить выделенные вершины можно и нажатием клавиши Del на клавиатуре):
Вот что получится в результате. Теперь можно сохранить модель
.
Теперь рассмотрим другие инст-рументы. Все они работают только с выделенными вершинами. Предположим, к примеру, что нам нужно удлинить хвост дриады. Для этого выделяем, прежде всего, верхушку хвоста. Затем выбираем инструмент <Двигать>:
Только не путайте его с похожим на навигационной панели (вверху). Этот расположен на панели инструментов (справа от рабочей области) и предназначен для реального перемещения выделенных вершин. С этим (и двумя следующими) инструментами связано понятие рабочей плоскости. В данном случае это та плоскость, в которой будут перемещаться вершины. По умолчанию там стоит "XY". Нам же нужно двигать вершины в плоскости XZ:
Для того чтобы вершины перемещались, нужно двигать мышь с зажатой левой кнопкой. При этом вершины стараются следовать в своем движении за курсором мыши.
Следующие два инструмента - поворот (вращение осуществляется в рабочей плоскости) и изменение размеров фрагмента модели
. Обратите внимание, что параметры преобразований можно задавать и вручную, вводя их в координатных полях.
Инструменты <Слить> и <Сжать> активны только когда выделено не менее двух вершин. Первый из них соединяет все выделенные вершины в одну, а второй просто совмещает их (сводит в одну точку, но не соединяет).
Наиболее интересен инструмент <Экструзия>. Он работает не с вершинами, а с разворотами (гранями). Для его употребления необходимо, чтобы было выделено не менее 1 грани. Он осуществляет <Выдавливание> выделенных граней. Попробуем познакомиться с его работой. Выделим одну из граней хвоста:
Затем кликнем по кнопке <Экструзия>. На первый взгляд ничего не изменилось. Но теперь сменим инструмент на
и начнем двигать вершины. Видно, что выделенные вершины словно бы удвоились, и произошло их выдавливание. Теперь вновь кликнем <Экструзия> и затем переместим новый сегмент хвоста. Применив эту операцию несколько раз, получим некоторое подобие бублика:
Вот он, пример!
Боюсь, что про экструзию мне не удалось объяснить достаточно внятно. Напоследок могу только посоветовать потренироваться на практических примерах или почитать статьи Troll'а тут (articles.php?id=64) и тут (articles.php?id=68).
Следующий полезный инструмент - Треугольник
Он активен только если выделено ровно три вершины. Его назначение очевидно: при нажатии на него, все три вершины соединяются треугольным куском поверхности. Это позволяет соединять разрозненные вершины (обычно остающиеся после удаления). Вот пример применения этого инструмента( До и После применения инструмента):
Для получения некоторых специальных эффектов (например, чтобы модель двигалась задом наперед) можно использовать инструмент Зеркало
Он отражает выделенные вершины относительно рабочей плоскости (например, применив его ко всей модели относительно плоскости XY, можно сделать так, чтобы модель перевернулась <вверх ногами>).
Теперь вернемся к навигационной панели. У нас еще остались нерассмотренными кнопки <Скрыть> и <Показать>. Зачем же они нужны? Вы, наверное, уже убедились, как трудно ориентироваться во множестве вершин. Очень легко выделить, к примеру, лишние вершины. Кнопка <Скрыть> делает выделенные вершины невидимыми. При этом они перестают быть выделенными и не участвуют в преобразованиях. Если скрыто достаточно много вершин, то часть граней тоже становится невидимыми чтоб не загромождать рабочую область. Клик на кнопке <Показать> снимает невидимость со всех вершин.

Редактор текстур

Текстура подобна обоям, наклеиваемым на поверхность модели. Удачное тексту-рирование гораздо важнее хорошо продуманной формы поверхностей. Рассмотрим, как можно наложить текстуру на модель.
Прежде всего, повторю, что текстура хранится в файлах blp- или tga-форматов. С текстурами в формате tga редактор MdlVis работает своими средствами, а вот для обработки blp-текстур необходимо в каталог с файлом mdlvis.exe добавить кодек IJPEG-изображений ijl15.dll. Этот файл не включен в комплект поставки MdlVis, т.к. он входит в War3 и в состав Yobguls Converter'а. Вам наверняка понадобится эта библиотека, т.к. практически все текстуры имеют blp-формат. Где же должны быть текстуры? Чтобы редактор MdlVis нашел и загрузил текстуры к модели, они должны либо быть свалены в ту же папку, где находится mdl-файл модели, либо лежать в подпапках, соответствующих пути текстуры.
Предположим, что все готово для текстурирования модели. Эту операцию выполнять довольно сложно, и нужна она только при радикальном изменении модели (например, наша измененная модель дриады будет прекрасно выглядеть и так). Прежде всего, в редакторе нужно выделить те вершины, которые мы собираемся проецировать на текстуру. Затем требуется кликнуть по кнопке <Текстурирование> на панели инструментов. При этом откроется редактор текстур:
Каждая поверхность текстурируется отдельно (и, возможно, на отдельную текстуру). То, что получилось в результате в рабочей области редактора текстур, называется текстурной картой поверхности. Эта карта двумерна (фактически, она показывает, как вершины поверхности проецируются на текстуру). Принципы работы с вершинами здесь - те же, что и в редакторе вершин. Только навигационная панель находится внизу, а не вверху. И координаты здесь только две. Причем при большинстве преобразований вершины не могут выходить за пределы изображения (еще бы: как можно проецировать часть модели на пустоту?).
Нужно еще сказать, что текстуры часто бывают многослойными. Например, в них есть слой прозрачности (который позволяет создавать полупрозрачные/прозрачные объекты) и может быть слой цвета команды (вы, наверное, замечали, что при смене игрока модель слегка подцвечивается в его цвет). Список <Цвет команды> позволит Вам выяснить, как этот цвет влияет на вид текстуры (и влияет ли вообще).
Особый инструмент редактора текстур - <Проецирование>. Нажатие этой кнопки располагает выделенные вершины так, как они на данный момент располагаются в редакторе поверхностей (т.е. проецирует поверхность на текстуру).
Кроме того, внизу расположен полный список имен всех текстур, используемых данной моделью (вместе с путями). Причем прямо в этом списке можно изменить имя и путь текстуры (после редактирования нужно нажать Enter).
Нужно отметить также, что в редакторе текстур нет кнопки <Сохранить>, т.к. текстурная карта - часть модели. Внесенные туда изменения не сбрасываются при выходе из редактора текстур и сохраняются при сохранении всей модели.

Дополнительные режимы просмотра

В главном меню редактора есть особые команды, позволяющие просматривать мо-дель в <объемном>, а не в сетчатом (как обычно) виде. Это позволяет, к примеру, найти <дыры> в поверхностях или оценить влияние текстурирования на внешний вид модели.
Первая из этих команд - <Вид->Поверхность> включает объемный просмотр модели (горячая клавиша - S). При этом модель приобретает следующий вид:
Т.е. вся модель (абсолютно вся, рисуются сразу все поверхности) изображается в виде объемного тела, залитого монотонным серым цветом. При поворотах/масштабировании световые блики <скользят> по модели, более-менее равномерно освещая ее. Выйти из этого режима просмотра можно, к примеру, кликнув по флажку <отображать все> на панели инструментов.
Следующая (гораздо более часто используемая) команда вызывается выбором из главного меню пункта <Вид->Общий вид> (можно использовать горячую клавишу F). Чтобы режим Общего Вида включился, необходимы все текстуры модели (они должны лежать в том же каталоге, что и MDL-файл модели или в подпапках, соответствующих пути текстуры). Кроме того, если текстуры модели находятся в BLP-формате, необходима библиотека ijl15.dll (о ней уже говорилось ранее). При включении Общего вида модель показывается с наложением всех текстур:
Качество изображения, конечно, похуже, чем в Warcraft III Viewer или WorldEditor'е, но общее представление о том, как текстура легла на модель, получить можно. Кроме того, справа вверху (на навигационной панели) можно выбрать цвет команды (подцветки модели) и посмотреть, как он влияет на внешний вид модели.
Разумеется, выделять вершины в этом режиме нельзя, т.к. их просто не видно. Но если перед включением этого режима часть вершин была выделена, то использовать различные инструменты можно непосредственно в режиме <Общий вид>, что весьма удобно. Выключить этот режим можно повторным нажатием клавиши <F>.

Буфер обмена

Буфер обмена - очень мощный механизм, позволяющий копировать и комбиниро-вать части модели (или разных моделей). Например, с его помощью можно дать Дриаде меч вместо копья или насадить голову Артеса на шест.
Прежде всего, хочется отметить, что для простоты реализации MdlVis использует не Windows Clipboard, а собственный внутренний буфер обмена. Т.е. при выходе из MdlVis содержимое это-го буфера теряется.
Итак, как же осуществляется работа с буфером обмена? Очень просто (так же, как и в других программах). Нужно просто выделить нужный участок модели. Скопировать выделенный фрагмент поверхности в буфер можно нажатием кнопки навигационной панели, выбором пункта меню "Правка->Копировать" или с помощью горячих клавиш Ctrl+C. Следует отметить, что в буфер можно копировать не только участки поверхности, но и отдельные вершины.
Вставка поверхности из буфера осуществляется нажатием кнопки навигационной панели, выбором пункта меню "Правка->Вставить" или нажатием Ctrl+V. При этом любой фрагмент из буфера может быть вставлен в модель многократно.
Внимание! Не рекомендуется таким образом переносить фрагменты модели с одной поверхности на другую или (тем более) между моделями, т.к. при этом теряется анимация выбранного фрагмента и его текстурная карта. Профессионалы, впрочем, могут изменить текстуру и подправить карту вручную.
Теперь о том, как можно безболезненно переносить фрагменты одной модели в другую. Чтобы, например, добавить Дриаде голову Артеса, нужно:
  • Удалить голову Дриады (не забыв сохранить модель).
  • Открыть модель Артеса, выделить его голову и скопировать в Буфер.
  • Не закрывая MdlVis, открыть в нем безголовую Дриаду
  • На любой поверхности модели Дриады выбрать ровно одну точку. Это т.н. точка вставки. Она используется для правильного анимирования вставленного фрагмента (при движении модели вставленный фрагмент повторяет все движения этой точки. Например, если вставляется голова, то точка вставки должна быть на шее, если оружие - на кисти руки. В случая вставки неподвижных объектов она может быть любой).
  • Когда выбрана ровно одна точка модели, а в буфере обмена что-то содержится, то в меню "Правка" активен пункт <Специальная вставка>. Выберите его, и к модели добавится новая поверхность, содержащая вставленный фрагмент (Будьте внимательны! Кроме поверхности добавляются также новые текстуры, точнее, описания материалов).
  • Далее при включенном флажке "Отобразить всё" нужно поточнее подогнать вставленный фрагмент на его <Законное> место.
  • Сохранить измененную модель.

Импорт файлов

Я рассчитываю, что Вы уже умеете импортировать файлы. Если же нет, то есть масса статей на эту тему - повторяться нет смысла. Скажу лишь, что импортировать можно только MDX-файлы, поэтому предварительно нужно конвертировать модифицированный MDL-файл в MDX при помощи Yobguls Converter'а. Кстати, перед импортом его можно просмотреть в Просмотрщике - это позволит получить некоторое представление о модели.

Содержание
`
ОЖИДАНИЕ РЕКЛАМЫ...