Введение

Maya Embedded Language (MEL) — это язык скриптов, используемый для упрощения задач в программном обеспечении для 3D-графики Autodesk Maya. Большинство задач, которые можно выполнить через графический интерфейс Maya, можно выполнить с помощью MEL, а также некоторые задачи, недоступные из графического интерфейса. MEL предоставляет способ ускорения сложных или повторяющихся задач и позволяет пользователям распространять определенный набор команд другим, которым они могут пригодиться.

Дизайн

MEL синтаксически похож на Perl и Tcl. Он предоставляет некоторые возможности управления памятью и динамического выделения массивов, а также прямой доступ к функциям, специфичным для Maya. Большинство стандартных команд Maya представляют собой скрипты MEL по умолчанию, сохраненные в каталоге Maya Program Files. MEL довольно ограничен по сравнению с основными языками программирования. Это прежде всего язык, предназначенный для записи журнала сеансов Maya, поэтому ему не хватает многих продвинутых функций, таких как ассоциативные массивы. Python был добавлен в Maya как альтернатива MEL в версии Maya 8.5. Тем не менее, MEL обладает некоторыми преимуществами перед Python:

Обнаруживаемость MEL лучше, поскольку встроенный сервер командного эха был разработан с учетом MEL. Значительная часть устаревшего кода и внутренней логики Maya написана на MEL. Это дает ценную информацию о не задокументированных внутренних механизмах Maya. MEL часто критикуют за недостаток возможностей программирования и объектно-ориентированного подхода. Однако на практике MEL используется как метаязык программирования, где MEL просто инструктирует архитектуру узлов Maya решать задачу. Поскольку узлы формируют фактическое вычислительное ядро Maya, использование более надежного и очевидного метода программирования было бы крайне неэффективным. Во многом MEL дополняет API Maya, с достаточно четким разделением задач. Это делает MEL сложным для изучения и полного понимания.

Особенности

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