Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Maya Embedded Language (MEL) — это язык скриптов, используемый для упрощения задач в программном обеспечении для 3D-графики Autodesk Maya. Большинство задач, которые можно выполнить через графический интерфейс Maya, можно выполнить с помощью MEL, а также некоторые задачи, недоступные из графического интерфейса. MEL предоставляет способ ускорения сложных или повторяющихся задач и позволяет пользователям распространять определенный набор команд другим, которым они могут пригодиться.
The Maya Embedded Language (MEL) is a scripting language used to simplify tasks in the 3D graphics software Autodesk Maya. Most tasks that can be achieved through Maya's GUI can be achieved with MEL, as well as certain tasks that are not available from the GUI. MEL offers a method of speeding up complicated or repetitive tasks, as well as allowing users to redistribute a specific set of commands to others that may find it useful.
Дизайн
MEL синтаксически похож на Perl и Tcl. Он предоставляет некоторые возможности управления памятью и динамического выделения массивов, а также прямой доступ к функциям, специфичным для Maya. Большинство стандартных команд Maya представляют собой скрипты MEL по умолчанию, сохраненные в каталоге Maya Program Files. MEL довольно ограничен по сравнению с основными языками программирования. Это прежде всего язык, предназначенный для записи журнала сеансов Maya, поэтому ему не хватает многих продвинутых функций, таких как ассоциативные массивы. Python был добавлен в Maya как альтернатива MEL в версии Maya 8.5. Тем не менее, MEL обладает некоторыми преимуществами перед Python:
MEL is syntactically similar to Perl and Tcl. It provides some memory management and dynamic array allocation, and offers direct access to functions specific to Maya. The majority of standard Maya commands are default MEL scripts, saved in the Maya Program Files directory. MEL is fairly limited compared to mainstream scripting languages. It is primarily a language meant to journal the Maya session, so it lacks many advanced features such as associative arrays. Python was added to Maya as an alternative to MEL in Maya 8.5. Still MEL offers some advantages to Python:
Обнаруживаемость MEL лучше, поскольку встроенный сервер командного эха был разработан с учетом MEL. Значительная часть устаревшего кода и внутренней логики Maya написана на MEL. Это дает ценную информацию о не задокументированных внутренних механизмах Maya. MEL часто критикуют за недостаток возможностей программирования и объектно-ориентированного подхода. Однако на практике MEL используется как метаязык программирования, где MEL просто инструктирует архитектуру узлов Maya решать задачу. Поскольку узлы формируют фактическое вычислительное ядро Maya, использование более надежного и очевидного метода программирования было бы крайне неэффективным. Во многом MEL дополняет API Maya, с достаточно четким разделением задач. Это делает MEL сложным для изучения и полного понимания.
Discoverability of MEL is better since the built in command echo server was created with MEL in mind. A lot of legacy code and inner working of Maya is in MEL form. This provides many insights into undocumented inner workings of Maya. MEL is often criticized for its lack of programming features, and object orientation. In practice, however, MEL is used as a metaprogramming language where MEL just instructs Maya's node architecture to solve the problem. Since nodes form the actual computational core of Maya using a more robust readily apparent programming method would be a very inefficient approach. In many ways MEL complements the Maya API, with somewhat clear boundaries between allocated tasks. This makes MEL harder to learn and fully understand.
Особенности
Maya также предоставляет язык выражений, являющийся расширением MEL, который создает узлы, выполняемые в составе графа зависимостей Maya. Выражения разрабатываются в редакторе выражений Maya и позволяют запускать скрипты при каждом изменении времени во время оценки Maya файла сцены, для моделирования сложного поведения или выполнения других полезных задач.
Maya also offers an expression language that is a super set of MEL, and results in nodes that are executed as part of Maya's dependency graph. Expressions are developed with Maya's expression editor, and allow scripts to trigger while Maya evaluates the scene file at each change in time, to simulate complex behaviors or perform other useful tasks.