Ускоряя Maya, послесловие. Скрипты для ускорения работы в Maya.

Ускоряя Maya, послесловие. Скрипты для ускорения работы в Maya.

После недавнего CG Эвента , на котором я читал мастеркласс «Ускоряя Maya» , со мной связался администратор этого форума Dark™ с предложением выложить тут свои скрипты. Предложение это я принял, потому что рад возможности поделиться с вами своими наработками и с удовольствием ответить на вопросы, которые неизбежно возникают, когда художники начинают задумываться о скорости работы в Maya.

Еще интересно? Тогда немного о себе:

  • шестой год в игровой индустрии, специализируюсь на 3d, преимущественно в Maya
  • долгий опыт работы в Creat Studio, в которой прошел путь от новичка-моделера до 3d эксперта. Отличная школа и участие во многих консольных и PC проектах
  • с сентября 2008 года работаю в Nival Network ведущим 3d-художником

Сегодняшний дебют будет посвящен скрипту natHUD.mel , который был показан на мастерклассе. Он добавляет в майский HUD следующие возможности:

  • вывод информации о выделении, которая помогает понять, в каком порядке было сделано выделение и сколько объектов всего выделено
  • универсальный измеритель расстояний: работает на ребрах, вертексах и кривых, а так же умеет показывать угол нормали в мировых координатах
  • вывод информации о проектном пути
  • вывод информации об относительном пути до сцены

Небольшое видео (без звука):

Установка стандартная: скопируйте скрипт в папку \maya\Номер версии\scripts\ и перезапустите Maya.

Запуск тоже простой: наберите natHUD в Script Editor и запустите скрипт. Если хотите, чтобы это скрипт запускался с Maya по умолчанию, найдите в той же папке файл userSetup.mel и добавьте туда строку natHUD;

PS nat в начале имени скрипта – это аббревиатура Nival Artist Tool. Так я помечаю скрипты, которые входят в «официальную» сборку Nival Network. Этакий показатель качества и указание на то, что скрипт был написан уже в Нивале

Обновление сообщения автором 31.08.2011 в 14:16 попробовал поставить данные скрипты и есть некоторые вопросы 1. у меня изменилась менюха при нажатии на объекте правой кнопкой. Как вернуть обратно вид данной менюхи? раньше я в данной менюхи очень удобно назначал объектам разные, сущ. материалы, а сейчас ентого пункта нет

2. имеет место какой-то глюк. при работе с объектом, в какой-то момент я не могу переместить объект, простым нажатием "W". Объект находится в каком-то универсальном режиме редактирования ребер и вертиксов и весь объект полностью можно выделить только через аутлайнер. раньше по нажатию RMB был пункт "Object", но его сейчас нет ((

Администратор 3D галереи mazzza Знаток Пользователь сайта Пользователь сайта Дмитрий damat Астапкович Знаток

Большое спасибо за благодарности. Они есть, а это значит, что есть смысл продолжать данную тему.

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

Итак, первый мини-скрипт: Deselect. Зачем нужен: быстро снимает как highlight (зеленое выделение), так и hilite (синее выделение). Актуален при моделировании, когда хочется быстро посмотреть на результат подвижки вертексов и т.д. без синей сетки, которая сильно сбивает с толку. Как написать: подумать, что вы делаете, чтобы добиться результата, а именно – переходите в объектный режим (f8), после чего пытаетесь выделить ничто. Еще вариант: выделить что-то, что не бывает в режиме компонентов, например, камеру, и выделить ничто. Проделав второй трюк, можно посмотреть, что напишет Script Editor, а напишет он примерно следующее:

select top; select –cl;

В данном случае я выбрал камеру top – ортографическая камера, которая всегда есть в любой сцене. Вторая команда – это выделение ничто. Если почитать хелп, то можно узнать, что флаг –cl – это сокращение от –clear. Полученный скрипт можно легко назначить на сочетание кнопок, у меня живет на alt+d

Второй скрипт: перемещение uv по тайлам. Зачем нужен: всегда приятно видеть все uv shell собранными в одном тайле. Так принято сдавать работу, так понятнее разбираться, что и где. Но так реально неудобно править мапинг, потому что постоянно выделяешь что-то лишнее. Решение: сдвигать нужный shell на целое количество тайлов, чтобы пиксели были те же, но соседних шеллов рядом уже не было. Как написать: создать полигональный объект и подвигать у него uv. Script Editor напишет что-то вроде:

polyEditUV -u 0.0563565 -v 0.219494 ;

Несложно догадаться, что если подвинуть на 1 по u, и не двигать по v, то переместимся ровно на один тайл по горизонтали вправо. Аналогичным образом можно научиться двигать uv влево, верх и вниз на один тайл, команды будут выглядеть так:

polyEditUV -u -1.0 -v 0; // влево polyEditUV -u 1.0 -v 0; // вправо polyEditUV -u 0 -v 1; // вверх polyEditUV -u -1.0 -v -1; // вниз

Данные команды живут у меня на ctrl+стрелки.

В Maya есть еще один способ двигать uv: команда polyMoveUV. Отличие ее от предыдущей команды заключается в том, что она создает ноду в Input объекта, в которой можно ввести значения перемещения, поворота, скалирования и некоторые другие параметры:

После появления ноды у вас автоматически появляется возможность анимировать ее каналы, причем данная анимация будет влиять только на выделенные uv. Итак, сама команда:

polyMoveUV -tu 0.0 -tv -0.0;

Нули стоят неслучайно – мне нужна только нода, в которую можно вбить параметры. Данная команда у меня живет на alt+стрелки.

Заключительная часть сегодняшнего поста: форсированное создание новой сцены и закрытие Maya. Зачем нужно: не знаю, как вас, а меня всегда сильно раздражает вопрос о сохранении сцены, если я нажал ctrl+n или ctrl+q. Особенно раздражает то, что сцена была только что сохранена, о чем есть соответствующая надпись в Script Editor: // Result: C:/Temp/_.mb Как написать: тут есть небольшая хитрость. Если выбрать в основном меню File->New scene, то нас ни о чем спрашивать не будут, такая вот майская странность. Если же посмотреть в Script Editor, то там будет написано:

Если посмотреть в хелпе, что означает сокращение –f, то мы выясним следующее: -force (-f) Force an action to take place. (new, open, save)

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

C закрытием Maya все несколько сложнее: после выхода посмотреть в Script Editor нельзя, да и не пишется туда команда про закрытие. Тем, кто хочет проверить последнее удтверждение, могу посоветовать после запуска Maya выполнить команду:

scriptEditorInfo -ch -clearHistoryFile -historyFilename "c:\\temp\\mayaScriptEditorLog.txt" -writeHistory true;

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

Но вернемся к выходу: есть Maya команда quit, у которой тоже есть флаг –force, поэтому команда для назначение на ctrl+q выглядит так:

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

Nevajno Знаток Дмитрий damat Астапкович Знаток Nevajno Знаток Дмитрий damat Астапкович Знаток

Nevajno, все по порядку будет на dvd, который. я надеюсь, скоро появится в продаже =)

Кстати, про камеры на мастерклассе было.

Пользователь сайта Дмитрий damat Астапкович Знаток Vfrcbv Пользователь сайта Модератор форума Дмитрий damat Астапкович Знаток

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

Если спросить любого майщика, что он чаще всего делает в Maya, то он назовет любую операцию, кроме вращения камеры и перехода в разные виды. Это очень странно, потому что сразу после открытия сцены мы начинаем ее изучать, летая повсюду и переключаясь между разными камерами. У майских моделеров со временем вырабатывается отличное и очень круто выглядящее движение: быстрый удар по пробелу, молниеносный перевод мышки на панель с другой камерой и совсем уже неуловимый по скорости повторный удар по пробелу. Выглядит завораживающее и, пожалуй, даже более стильно, чем метание правой руки с мышки на кнопки f8-f12, которое заслуживает отдельного небольшого рассказа.

Но давайте на время отвлечемся и задумаемся: что на самом деле хочет сделать юзер, когда меняет перспективную камеру на ортографическую и наоборот? Вы не поверите, но он хочет увидеть в текущем viewport все ту же модель, только с другой камеры, например, для выравнивания или сравнения с референсом. При этом он хочет это сделать максимально быстро и просто. Что же ему мешает в этом мешает?

1. ортографических камер всего три, а видов реально шесть: (лево/право, вверх/низ, фронт/бэк). Это автоматически означает, что использовать быстрое и отточенное комбо «пробел-мышка-пробел» не всегда возможно – надо переключатся либо в дополнительные камеры, либо пользоваться View Cube и View Compass, что автоматически означает дополнительное движение мышкой через весь экран, и не совсем реальную смену камеры. Можно отдельно поговорить про View Cube и View Compass и сравнить степени их недодуманности и недоделанности, но это уже совсем лирика, которая мало кому интересна.

2. ортографические камеры стоят где-то в бесконечности, из которой они видят всю геометрию сцены. Поэтому нередко для работы приходится прятать другие объекты, а потом показывать их назад. Т.е. опять возникают лишние движения

3. переход в дополнительные камеры возможен только через меню панели, причем камеры зачем-то разделены на два разных пункта: ортографические и перспективные.

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

Основная идея скрипта Views и большая часть кода принадлежит Денисычу 0-1. Видео демонстрирует измененную и дополненную в результате совместной работы версии. Сам скрипт состоит из двух глобальных частей:

1. переход из перспективной камеры в ортографические и назад по нажатию одной кнопки 2.построение умного меню с полезными функциями при удержании этой же кнопки

Поскольку функций две, то используется два хоткея: у меня это `(тильда) press и ` (тильда) release. По этой же причине возникает необходимость добавить строчку source "views.mel"; в файл userSetup.mel, если вы хотите, чтобы этот скрипт работал сразу после запуска Maya

Приятные особенности, которых не было в видео, или они не очевидны:

- пользователю предлагается либо разлочить, либо залочить камеру, т.е. пункт всегда один в зависимости от состояний каналов

- дефолтные камеры лочить через меню нельзя – соответствующая проверка делает вызов этой команды невозможным

- если дефолтная камера залочена (например, вашим коллегой), но вы хотите в нее перейти, скрипт предложит сдеалать unlock & switch, т.е. разлочить и перейти в нужную вам камеру

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

PS Для жаждущих Xumi - основная проблема заключается в создании описания, которое будет достаточным и относительно простым. Его нельзя сразу вылить в массы, так как массы не поймут: мне потребовался не один месяц, чтобы разобраться в деталях. Поэтому я с одной стороны готовлю вас к восприятию Xumi, a с другой стороны сам учусь писать просто и красиво на этих полезных примерах. Надеюсь на понимание.

📎📎📎📎📎📎📎📎📎📎