Встроенный язык Maya

редактировать

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

Содержание
  • 1 Дизайн
  • 2 использования
  • 3 Пример
  • 4 Особенности
  • 5 ссылки
  • 6 Внешние ссылки
дизайн

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

MEL довольно ограничен по сравнению с основными языками сценариев. Mel - это в первую очередь язык, предназначенный для ведения журнала сеанса Maya, поэтому ему не хватает многих дополнительных функций, таких как ассоциативные массивы. Python был добавлен в Maya в качестве альтернативы MEL в Maya 8.5. Тем не менее MEL предлагает некоторые преимущества Python:

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

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

Использует

Инструменты, разработанные с использованием сценариев MEL, обычно относятся к следующим категориям:

  • Ввод / вывод данных
  • Импорт данных захвата движения
  • Экспорт проприетарных игровых данных
  • Метаданные сцены для отслеживания производства
  • Создание / изменение геометрии
  • Пользовательские примитивы
  • Тип данных, зависящий от стороннего средства визуализации (например, поверхности подразделов RenderMan)
  • Инструменты моделирования, не входящие в базовый пакет
  • Инструменты анимации
  • Тренажеры для мышц
  • Управление оснасткой / настройкой
  • Поведение толпы AI
  • Инструменты освещения / рендеринга
  • Автоматическое создание общих сложных настроек шейдера
  • Эффекты до и после рендеринга
  • Выполнение вызовов сторонним рендерерам
  • Динамика
  • Пользовательское поведение частиц
  • Эмерджентное скопление и роение смоделированного объекта
  • Генетические алгоритмы
  • Моделирование ткани
  • Настройка и обслуживание сцен с файлами и папками
  • Настройка пользовательского интерфейса
  • Пользовательские элементы управления персонажами
  • Удаление неверных команд 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 lt;= $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 оценивает файл сцены при каждом изменении времени, чтобы моделировать сложное поведение или выполнять другие полезные задачи.

Ссылки
внешние ссылки
Последняя правка сделана 2024-01-02 03:10:42
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте