Встроенный язык Maya
Эта статья включает список литературы , связанную литературу или внешние ссылки , но ее источники остаются неясными, поскольку в ней отсутствуют встроенные цитаты . ( Июль 2014 г. ) |
Maya Embedded Language (MEL) — это язык сценариев, используемый для упрощения задач в программном обеспечении для 3D-графики Autodesk Maya . Maya, Большинство задач, которые можно решить с помощью графического пользовательского интерфейса можно выполнить с помощью MEL, а также некоторые задачи, которые недоступны из графического пользовательского интерфейса. MEL предлагает метод ускорения сложных или повторяющихся задач, а также позволяет пользователям перераспределять определенный набор команд среди других, которые могут найти его полезным.
Дизайн
[ редактировать ]MEL синтаксически похож на Perl и Tcl . Он обеспечивает некоторое управление памятью и динамическое распределение массивов, а также предлагает прямой доступ к функциям, специфичным для Maya. Большинство стандартных команд Maya представляют собой сценарии MEL по умолчанию, сохраненные в каталоге Maya Program Files.
MEL довольно ограничен по сравнению с основными языками сценариев. В первую очередь это язык, предназначенный для ведения журнала сеанса Майя. [ нужна ссылка ] поэтому ему не хватает многих дополнительных функций, таких как ассоциативные массивы. Python был добавлен в Maya в качестве альтернативы MEL в Maya 8.5. Тем не менее, MEL предлагает некоторые преимущества перед Python:
- Обнаруживаемость MEL стала лучше, поскольку встроенный командный эхо-сервер был создан с учетом MEL.
- Большая часть устаревшего кода и внутренней работы Maya находится в форме MEL. Это дает много информации о недокументированной внутренней работе Maya.
MEL часто критикуют за отсутствие возможностей программирования и объектной ориентации. Однако на практике MEL используется как язык метапрограммирования , где MEL просто инструктирует архитектуру узла Maya решить проблему. Поскольку узлы образуют фактическое вычислительное ядро Maya, использование более надежного и очевидного метода программирования было бы очень неэффективным подходом. Во многих отношениях MEL дополняет API Maya, обеспечивая несколько четкие границы между распределяемыми задачами. Это затрудняет изучение и полное понимание MEL.
Использование
[ редактировать ]Инструменты, разработанные с использованием сценариев MEL, обычно относятся к следующим категориям:
- Ввод-вывод данных
- Импорт данных захвата движения
- Экспорт собственных игровых данных
- Метаданные сцены для отслеживания производства
- Создание и изменение геометрии
- Пользовательские примитивы
- Тип данных стороннего средства визуализации (например, поверхности подразделения RenderMan)
- Инструменты моделирования, не предлагаемые в базовом пакете
- Инструменты анимации
- Мышечные тренажеры
- Риггинг и настройка элементов управления
- Поведение ИИ толпы
- Инструменты освещения/рендеринга
- Автоматическое создание общих сложных настроек шейдеров.
- Эффекты до и после рендеринга
- Выполнение вызовов сторонних рендереров
- Динамика
- Пользовательское поведение частиц
- Имитация возникающего скопления и роения объектов
- Генетические алгоритмы
- Моделирование ткани
- Настройка и обслуживание сцены файлов и папок
- Настройка пользовательского интерфейса
- Пользовательские элементы управления персонажем
- Удаление недействительных команд Maya.
- Пользовательские интерфейсы
Пример
[ редактировать ]Это пример скрипта, который копирует выбранный объект по его пути:
// animated duplicates/instances script
proc animatedDuplication (int $rangeStart, int $rangeEnd, int $numOfDuplicates, int $duplicateOrInstance)
{
int $range_start = $rangeStart;
int $range_end = $rangeEnd;
int $num_of_duplicates = $numOfDuplicates;
int $step_size = ($range_end - $range_start) / $num_of_duplicates;
int $i = 0;
int $temp;
currentTime $range_start; // set to range start
string $selectedObjects[]; // to store selected objects
$selectedObjects = `ls -sl`; // store selected objects
select $selectedObjects;
while ($i <= $num_of_duplicates)
{
$temp = $range_start + ($step_size * $i);
currentTime ($temp);
// selected the objects to duplicate or instance
select $selectedObjects;
if($duplicateOrInstance == 0)
{
duplicate;
}
else
{
instance;
}
$i++;
}
}
// Usage example:
// duplicate the current selection 5 times --
// evenly distributed between frame 1 and 240
animatedDuplication(1, 240, 5, 0);
Функции
[ редактировать ]Maya также предлагает язык выражений, который является расширенным набором MEL и приводит к созданию узлов, которые выполняются как часть графа зависимостей Maya . Выражения разрабатываются с помощью редактора выражений Maya и позволяют запускать сценарии, в то время как Maya оценивает файл сцены при каждом изменении во времени, чтобы моделировать сложное поведение или выполнять другие полезные задачи.
Ссылки
[ редактировать ]- Марк Р. Уилкинс , Крис Казмир : « Сценарии MEL для аниматоров Maya ». 2-е издание, Морган Кауфманн, 2005 г.; ISBN 0-12-088793-2
- Писка, Николас , « YSYT — Основы Maya MEL для дизайнеров ». 1-е издание, 0001d Издательство, 2009 г.; ISBN 978-0-578-00988-9
Внешние ссылки
[ редактировать ]- Официальный сайт
- Справочник по командам MEL (Maya, 2013 г.)
- Справочник по командам MEL (Maya, 2014 г.)
- Справочник по командам MEL (Maya, 2015 г.)
- MEL и выражения - Справка Autodesk Maya 2015
- Мел Вики
- Полезные скрипты для Maya
- CGSociety - Форум по программированию Maya
- CGSociety — тема «Скрипты MEL»
- CGSociety — тема «Создание пользовательского интерфейса Maya»
- Учебники по написанию сценариев MEL для Maya - CreativeCrash
- переменные в mel - инструктор ACCAD Алан Прайс
- Видеоуроки по MEL — lynda.com
- Поиск цифровых репетиторов - MEL
- Майя Мел - Polyextrume.com
- MEL — майя такелаж вики
- Мел Сценарии - RobTheBloke