Jump to content

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

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
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ab864e061a47a7429c9aa109923583d5__1678728900
URL1:https://arc.ask3.ru/arc/aa/ab/d5/ab864e061a47a7429c9aa109923583d5.html
Заголовок, (Title) документа по адресу, URL1:
Maya Embedded Language - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)