Главная » Статьи » Учебник: теория

Конвертирование из Maya
Конвертирование из Maya
Этот раздел поясняет, как подготовить Maya модель для экспорта и затем экспортировать ее. Экспорт является финальным шагом, подробные инструкции см. далее.
Подготовка материала
Примечание: информация в этом разделе актуальна для Panda3D 1.5.0 и выше. Она не применима к более старым версиям Panda3D.

Базовое текстурирование
Чтобы корректно экспортировать вашу текстуру для Panda3D, вы должны текстурировать вашу модель определенным способом. Фактически далее приведена подробная инструкция, как сделать вашу сцену понятной Panda3D.
Описание использования Maya выходит за пределы этого мануала. Мы рассчитываем на то, что вы уже знаете, как использовать Maya в целом и Hypershade в частности. Здесь мы лишь укажем, какие конфигурации понятны Panda3D.
Первый шаг в текстурировании вашей модели – это применение Phong шейдера. Это единственный тип шейдера, воспринимаемый Panda3D. Вы можете применить Phong шейдер, используя меню Maya:



Далее укажите Maya, что собираетесь контролировать цвет поверхности, кликнув на кнопку цвета:



Теперь создайте File texture - чтобы контролировать цвет поверхности:



Укажите имя файла. Как только вы это сделаете, вы увидите вашу текстуру в Maya:



Теперь вы имеете текстурированную модель, которую можно непосредственно экспортировать в Panda3D.

Продвинутое текстурирование
Возможно вы захотите использовать продвинутые возможности текстурирования Panda3D: мультитекстуры, карты нормалей, карты бликов, карты прозрачности или карты свечения. Чтобы использовать эти возможности вам необходим открыть Hypershade редактор Maya:



Текстурированная модель в Hypershade выглядит следующим образом:



Чтобы применить карту нормалей, создайте еще одну текстуру File texture и присоедините "out color" карты нормалей к "normal camera" входу Phong шейдера. Карта нормалей должна быть именно картой нормалей (вы узнаете ее по светло голубому оттенку), а не карта высот (bump map), которая черно-белая.



На самом деле в Maya существует кнопка, которая помогает устанавливать карту высот (bump map), но то, что она делает - не годится для Panda3D. Если вы используете эту кнопку, в результате получите некорректную конфигурацию. Насколько мне известно, единственный путь получить правильную конфигурацию (см. выше) - это править граф вручную в Hypershade. Неправильная конфигурация выглядит следующим образом:



Возможно вы захотите, чтобы часть вашей модели была прозрачной. Есть небольшая уловка, поскольку Panda3D понимает "карты непрозрачности", а Maya понимает "карты прозрачности", которые есть противоположность одна другой (в картах непрозрачности белый цвет непрозрачный, а в картах прозрачности - черный непрозрачный). Чтобы установить карту вам необходимо создать Reverse объект.



Также вы можете захотеть контролировать блики - какая часть вашей модели будет бликовать, а какая нет. В Panda3D это называется "gloss map". Чтобы сделать это, создайте черно-белую картинку и присоедините ее к "specular color" входу Phong шейдера. Учтите, что изображение должно быть черно-белым, иначе Panda3D не поймет его.



Вы также можете создать светящиеся области на вашей модели. В Panda3D это называется "glow map". Я также слышал названия "self-illumination map" или "incandescence map". Создайте черно-белое изображение и присоедините его к "incandescence" входу Phong шейдера.



Применение карты свечения приведет к тому, что части модели, закрашенные светлым, будут светлыми даже в темноте. Это не означает, что автоматически создастся эффект ареола свечения. Чтобы получить такой эффект, вы должны использовать bloom filter в вашей Panda3D программе в сочетании с картой свечения. Вот здесь есть пример программы: Glow Filter, который демонстрирует этот процесс.
Ну и наконец рассмотрим создание мультитекстуры. Создайте структуру в Hypershade с использованием "Layered Texture" (НЕ ПУТАТЬ С "Layered Shader"!):



В итоге две текстуры будут перемножены – это простейшая форма мультитекстурирования. Вы можете также получить некоторые другие эффекты, изменяя настройки Layered Texture, однако эта функциональность в настоящее время еще на стадии разработки. В большинстве случаев, вы сможете лишь перемножать текстуры.

Объединение текстур
Экспортер Maya может попытаться объединить текстуры. Например, если ваша модель имеет RGB карту цвета и черно-белую карту непрозрачности, тогда экспортер считает их как одну RGBA текстуру.
Чтобы объединение текстур сработало, должны быть соблюдены следующие правила:
1. UV мэпинг должен быть идентичным.
2. Имена файлов текстур должны иметь одинаковый префикс.
Под "одинаковым префиксом" я понимаю, например, что файлы "house-color.jpg" и "house-opacity.jpg" могут быть объединены, потому что ба начинаются с общего префикса "house-". Общий префикс состоит из буквенно-цифровой последовательности, заканчивающейся тире. Если вы не хотите, чтобы два файла объединялись, используйте различающиеся имена файлов.

Флаговая разметка объектов, экспортируемых из Maya
Экспортер Maya способен автоматически делать флаговую разметку объектов для столкновений, если такая разметка была правильно сделана в Maya.
Здесь есть MEL скрипт, доступный в CVS, который поможет с флаговыми объектами в Maya.

Установка:
1. Откройте редактор скриптов Maya (Window > General Editors > Script Editor).
2. Откройте скрипт в редакторе и запустите его (Ctrl + Enter или Script > Execute).
3. Введите "eggObjectFlags()" в редакторе скриптов и выделите текст.
4. Средней кнопкой мыши перетащите выделение в полку Custom.
5. Не обязательно: перейдите в Shelf Editor и задайте иконку / имя.

Использование:
1. Выберите объект, который вы хотите обработать и нажмите ранее созданную кнопку на полке Custom.
2. Выберите в channel box объекта тип объекта - там должен будет появиться новый атрибут Egg Object TypesN.
3. Выберите нужный тип объекта.
Тип объекта Значение
barrier Эта базовая геометрия и ее дочерние объекты определяются как невидимые сплошные объекты столкновения
trigger Эта базовая геометрия и ее дочерние объекты определяются как невидимые переключаемые (триггерные) поверхности
sphere Геометрия будет заменена на минимальную сферу, в которую можно вписать эту геометрию. Обычно создают полигональную сферу и применяют к ней этот флаг, чтобы получить сферический объект столкновения такого же размера
tube Работает подобно sphere, но исходная геометрия заменяется цилиндрическим объектом столкновения (капсулой). Обычно им заменяют полигональную капсулу или цилиндр
bubble Объект столкновения размещается вокруг геометрии, которая остается неизменной
ghost Это означает, что эта геометрия и все ее дочерние объекты никогда не взаимодействуют с другими объектами. Персонажи будут проходить сквозь них
backstage Это значит, что эта геометрия и все ее дочерние объекты не будут транслироваться. Обычно это применяется к масштабированным экземплярам и прочим инструментам моделирования

Запуск экспортера
Экспортер Maya может быть запущен из командной строки или с графической панели. Утилита командной строки называется maya2egg. Есть несколько версий этой утилиты, в зависимости от версии Maya. К примеру, версия для работы с Maya 5 называется maya2egg5, для Maya6 - maya2egg6 и для 6.5 - maya2egg65.
Далее следует пример, как конвертировать файл (maya binary .mb) Maya 6.0 из командной строки.



egg файл включает имена файлов текстур. Эти имена текстур сохраняются как относительные пути, относительно местоположения egg файла. Например, давайте посмотрим на файлы, размещенные следующим образом:

c:\My Models\Maya Files\Character.mb
c:\My Models\Egg Files\Character.egg
c:\My Models\Textures\Character.png

В этом случае команда на экспорт будет следующая:

c:\
cd c:\My Models\
maya2egg -o "Egg Files/Character.egg" "Maya Files/Character.mb"

Учтите, что синтаксис имен файлов Panda3D использует прямые слеши даже под Windows, это относится и к экспортеру. После выполнения экспорта egg персонаж будетиметь следующие ссылки на текстуру:

"../Textures/Character.png"

Опять же учтите, что это путь относительно самого egg файла. Многие художники считают удобным хранить все в одной директории, чтобы предотвратить связанные с этим неудобства. Это неплохой подход.

Выше описанный способ конвертирования превратит персонажа в статическую модель. Модели с риггингом (которые имеют кости, помогающие их анимировать), скины (полигоны, присоединенные к костям / скелетону), и анимированные модели требуют использования одной из следующих опций:

maya2egg -a model -o eggFileName.egg mayaFileName.mb
maya2egg -a chan -o eggFileName.egg mayaFileName.mb
maya2egg -a pose -o eggFileName.egg mayaFileName.mb
maya2egg -a both -o eggFileName.egg mayaFileName.mb

Значения опций следующие:
-a model Сохранить только синенные и оснащенные костями модели, готовые для анимации, но без присоединенной анимации. Это подходит для моделей с несколькими событийными или интерактивными анимациями.
-a chan Сохраняется только анимация текущей модели, но не сама модель. Это подходит для создания анимаций, которые можно будет применить к готовым egg моделям. Модель может иметь несколько анмационных каналов.
-a pose Сохранить модель с набором ключей в текущей анимационной позе. Перед экспортом позиция персонажа должна быть выбрана. Этот формат не сохраняет анимацию.
-a both Экспортирует модель и анимацию как единый файл.

Существует еще много опций для maya2egg. Для получения полного списка, запустите maya2egg с аргументом –h.

maya2egg –h

Использование графического интерфейса
Так же, как и Panda3D 1.0.4, существует графический интерфейс для maya2egg. Чтобы запустить графический экспортер Maya, перетащите MayaPandaTool.mel из директории plugins Maya в рабочее пространство Maya.



Появится такое окно:



В качестве альтернативы, можете загрузить .mel файл из редактора скриптов.
Из за экономии пространства, графический инструмент не представляет всех возможностей экспортера. Он создан для быстрой проверки корректности. Возможности, которые доступны через графический инструмент, идентичны опциям из командной строки экспортера, описанным ранее.

Также вы можете интегрировать интерфейс в Maya. Есть удобный способ запуска MayaPandaTool с использованием полок Maya, с расположенным в них MEL скриптом:
1. Откройте редактор скриптов: Window > General Editors > Script Editor.
2. В редакторе загрузите MayaPandaTool MEL скрипт: File > Open Script.
3. Выберите MEL текст (Ctrl + A).
4. Используя среднюю кнопку мыши, перетащите выделенный текст на полку.
5. (Не обязательно) используя Shelf Editor, вы можете изменить иконку.



Каждый раз, когда вам понадобится открыть Panda Exporter, просто кликните иконку на полке.

Для пользователей Windows:
Если вы хотите быстрее запускать скрипт, можете пометить MEL файл в QuickLanch. Нажмите Ctrl при перетаскивании MEL файла в QuickLanch бар. Если вы не нажмете Ctrl, фактически в QuickLanch попадает только ссылка на MEL файл.
Каждый раз, когда вам необходимо открыть экспортер Panda, просто перетащите его из QuickLanch бара в 3D окно Maya.

Источник: http://www.panda3d.org/wiki/index.php/Converting_from_Maya

Категория: Учебник: теория | Добавил: vcow (05.06.2009)
Просмотров: 9184 | Комментарии: 2 | Рейтинг: 0.0/0
Всего комментариев: 1
1 iNOD  
0
У меня этот скрипт не экспортирует из Maya, в эдиторе пишет что файл создан но по указаному пути его нет там, что не так?

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Онлайн всего: 5
Гостей: 5
Пользователей: 0