Встроенный язык 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.
- Пользовательские интерфейсы
Пример
[ редактировать ]Это пример скрипта, который копирует выбранный объект по его пути:
// сценарий анимированных дубликатов/экземпляров proc AnimatedDuplication ( int $rangeStart , int $rangeEnd , int $numOfDuulates , int $duulateOrInstance ) { int $range_start = $rangeStart ; int $range_end = $rangeEnd ; int $num_of_duplications = $numOfDuplications ; int $step_size = ( $range_end - $range_start ) / $num_of_duplications ; интервал $я = 0 ; интервал $temp ; currentTime $range_start ; // устанавливаем начальную строку диапазона $selectedObjects []; // для сохранения выбранных объектов $selectedObjects = `ls -sl` ; // сохраняем выбранные объекты select $selectedObjects ; while ( $i <= $num_of_duplications ) { $temp = $range_start + ( $step_size * $i ); ТекущееВремя ( $temp ); // выбрали объекты для дублирования или экземпляра select $selectedObjects ; если ( $duulateOrInstance == 0 ) { дубликат ; } Еще { экземпляр ; } $ я ++ ; } } // Пример использования: // дублируем текущий выбор 5 раз -- // равномерно распределяем между кадром 1 и 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