5 скриптов для Maya, которые экономят время

Хей! На связи Парыгин Антон, я 3D аниматор/риггер и основатель RiggingPRO.

За более чем 15 лет работы в 3D у меня накопились десятки небольших скриптов, которые помогают быстрее справляться с рутиной в Maya. Часть из них я написал сам, а часть скачал уже готовые.

В этой статье поделюсь пятью из них, которыми особенно часто пользуюсь. Они могут пригодиться как риггерам, так и другим 3D-специалистам.

✅ Скрипт №1: mParent

Создает иерархию из выделенных объектов за один клик. Автор скрипта: Hassan K-Rezakhani. Я пользуюсь им уже много лет, потому что это один из самых быстрых способов создавать иерархии в Maya.

Скачать скрипт

Как пользоваться

  1. Скопируй файл mparent.mel в папку C:\Users\<username>\Documents\maya\<version>\scripts.
  2. Создай кнопку на полке или назначь горячую клавишу для MEL команды mparent.
  3. Выдели объекты по порядку, от дочернего к родительскому, и запусти скрипт.

💡 Совет: я назначил команду mparent на Alt + P. При создании иерархий это избавляет от множества лишних кликов.

✅ Скрипт №2: выделение джоинтов в иерархии

Быстро выделяет все джоинты в выбранной иерархии. Пригодится для создания сетов выделения (Selection Sets) или применния операций сразу ко всем джоинтам, без необходимости выбирать каждый вручную.

MEL скрипт:

select -hi;
select -r  (`ls -sl -type joint`);

Как пользоваться

  1. Скопируй код и создай кнопку на полке или назначь горячую клавишу для быстрого запуска.
  2. Выдели корневую группу или джоинт, с которого начинается нужная иерархия, и запусти скрипт. Все джоинты в ней сразу будут выделены.

Бонус: выделение контролов в иерархии

Если контролы персонажа сделаны из NURBS-кривых, как это обычно и бывает, этот вариант скрипта выделит все контролы в иерархии.

select -hi;
string $shapes[] = `ls -sl -type nurbsCurve`;

if (size($shapes) > 0) {
    string $transforms[] = `listRelatives -p $shapes`;
    select -r $transforms;
} else {
    select -cl; // Deselects if no curves are found
}

Как пользоваться

  1. Скопируй код и создай кнопку на полке или назначь горячую клавишу для быстрого запуска.
  2. Выдели корневую группу или контрол, с которого начинается нужная иерархия, и запусти скрипт. Все контролы в ней сразу будут выделены.

✅ Скрипт №3: создание джоинтов на месте выделенных объектов

Создавать десятки джоинтов по одному довольно утомительно, особенно если делаешь риг пропса с большим количеством подвижных деталей.

Этот скрипт создает по одному джоинту для каждого выделенного объекта, совмещая его с пивотом объекта по положению и ориентации.

Имя тоже задается автоматически: если имя объекта заканчивается на _geo, этот суффикс заменяется на _jnt. В остальных случаях _jnt просто добавляется в конец имени.

MEL скрипт:

for ($obj in `ls -sl`) {
    select -cl;    
    string $jntName;   
    if (gmatch($obj, "*_geo")) {
        $jntName = `substitute "_geo$" $obj "_jnt"`;
    } else {
        $jntName = $obj + "_jnt";
    }
    string $jnt = `joint -n $jntName`;
    delete `parentConstraint $obj $jnt`;
}

Как пользоваться

  1. Скопируй код и создай кнопку на полке или назначь горячую клавишу для быстрого запуска.
  2. Выдели один или несколько объектов и запусти скрипт. Для каждого объекта будет создан джоинт с соответствующим именем, положением и ориентацией.

💡 Совет: скрипт рассчитан на геометрию с суффиксом _geo. Если в твоем пайплайне приняты другие обозначения, замени _geo и _jnt в коде на нужные суффиксы.

Бонус: создание локаторов по выделенным объектам

Нужны локаторы вместо джоинтов?

Этот вариант работает по тому же принципу: создает по одному локатору для каждого выделенного объекта и совмещает его с пивотом объекта по положению и ориентации.

Имена задаются автоматически: суффикс _geo заменяется на _loc, а если его нет, _loc просто добавляется в конец имени.

MEL скрипт:

for ($obj in `ls -sl`) {
    string $locName;
    if (gmatch($obj, "*_geo")) {
        $locName = `substitute "_geo$" $obj "_loc"`;
    } else {
        $locName = $obj + "_loc";
    }
    string $loc[] = `spaceLocator -n $locName`;
    delete `parentConstraint $obj $loc[0]`;
}

🚀 Хочешь автоматизировать еще больше задач в риггинге?

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

На моем воркшопе «Риггинг в Maya | Быстрый старт» ты научишься создавать риг персонажа с нуля и готовить его к работе в продакшене. Сначала мы разбираем каждый прием вручную, а затем учимся ускорять рутинные операции с помощью скриптов из материалов курса.

Например, один из инструментов создает джоинты для нескольких выделенных объектов и сразу привязывает к ним геометрию через скиннинг. Все это за один клик.

А пока продолжим. После последнего скрипта расскажу подробнее, чему ты научишься на моем воркшопе «Риггинг в Maya | Быстрый старт».

✅ Скрипт №4: FreezeWithGroup

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

Автор скрипта: William Petruccelli. Я пользуюсь им уже много лет, и он до сих пор остается частью моего рабочего процесса.

Скачать скрипт

Как пользоваться

  1. Скопируй файл wp_freezeWithGroup.mel в папку C:\Users\<username>\Documents\maya\<version>\scripts.
  2. Создай кнопку на полке или назначь горячую клавишу для MEL команды wp_freezeWithGroup().
  3. Выдели один или несколько контролов рига, запусти скрипт и нажми Freeze в окне скрипта. Для каждого выделенного контрола будет создана офсетная группа.

💡 Совет: если хочешь запускать скрипт без диалогового окна, создай кнопку на полке со следующими MEL командами:

source "wp_freezeWithGroup.mel";
wp_freezeWithGroup_doIt();

Так скрипт будет срабатывать сразу, за один клик.

Почему бы просто не использовать Freeze Transformations?

Многие начинающие обнуляют контролы рига с помощью Freeze Transformations. Проблема в том, что эта операция меняет ориентацию локальных осей контролов в иерархии.

Поэтому в профессиональном риггинге для обнуления контролов используют офсетные группы, которые также называют freeze-группами.

Уже на первом занятии воркшопа «Риггинг в Maya | Быстрый старт» я объясняю, почему так происходит, как Maya рассчитывает локальные трансформации и почему freeze-группы стали стандартным решением в продакшене.

✅ Скрипт №5: выделение джоинтов заскиненного меша

При работе с одеждой, пропсами или деталями меша персонажа часто нужно выделить все джоинты, к которым привязана геометрия. Если заранее не создать для них набор выделения, искать нужные джоинты вручную в Outliner бывает долго и неудобно.

Этот скрипт автоматически находит skinCluster выделенного меша и за один клик выделяет все джоинты, к которым он прискинен.

MEL скрипт:

$sel = `ls -sl`; 
select -r `skinCluster -q -inf (findRelatedSkinCluster($sel[size($sel)-1]))`;

Как пользоваться

  1. Скопируй код и создай кнопку на полке или назначь горячую клавишу для быстрого запуска.
  2. Выдели заскиненный меш и запусти скрипт. Все связанные с ним джоинты будут выделены автоматически.

Теперь можно прискинить к ним одежду, скопировать веса скиннинга или выполнить другую операцию, для которой требуется выделить все джоинты этого меша.

Когда пригодится

  • При копировании весов скиннинга на одежду или пропсы.
  • При поиске причин проблем со скиннингом.
  • При изучении скачанных ригов, чтобы быстро увидеть, какие джоинты управляют мешем.
  • При создании набора выделения джоинтов для дальнейшей работы.

Хочешь научиться создавать собственные риги персонажей?

Если эти пять скриптов уже помогли тебе ускорить работу, представь, сколько возможностей откроется, когда ты освоишь весь процесс создания рига персонажа.

На воркшопе «Риггинг в Maya | Быстрый старт» ты научишься создавать риг с нуля. Каждый прием сначала разбираем вручную, чтобы ты понимал, почему он работает. Затем переходим к более быстрым способам работы, которые используются в продакшене, и скриптам для автоматизации рутинных задач.

🚀 Что ты будешь уметь после воркшопа

✅создашь с нуля полноценные риги персонажей и пропсов

✅будешь понимать студийный пайплайн и логику построения сетапов

✅соберёшь деморил, который студии реально рассматривают при найме риггера

✅подготовишься к фрилансу или работе риггером

🔥 Осенняя акция

📅 Сейчас открыт набор на 26-й поток. Старт 10 октября 2026.

А до 3 октября ты можешь записаться со скидками до 30%
и получить бонусные материалы в подарок 🎁

Посмотреть программу курса и записаться можно здесь 👇

Первая часть курса
https://vk.ru/@rigpro_workshops-rimqs1-sale

Вторая часть курса:
https://vk.ru/@rigpro_workshops-rimqs2-sale

91 views·3 shares