Mel – кнопка, скрывающая всё лишнее для “Playblast”

Mel - кнопка, скрывающая из видимости: сплайны, кости, суставы, локаторы, размеры и всё что мешает просмотру анимации в  ”playblast” ...

Данная тема интересна тем, кто занимается анимацией в Maya.  В этом уроке даётся простой скрипт Mel, его описание и инструкция по применению, для создания рабочего окна с кнопкой, которая скрывает из видимости объекты типа nurbsCurves, joints, locators и другие, или проще сказать: скрывает всё, что мешает предварительному просмотру анимации. Урок будет понятен, как для начинающих, так и для продвинутых юзеров в mel.

Для тех, кто ещё не решался столкнуться с mel, или новичков в этой области, рекомендую сначала беглое прочтение текста данного урока, а потом сразу перейти к последнему разделу «Напоследок совет тем, кто ещё ни разу не создавал ничего с помощью mel». Выполнить пошагово все предписанные действия, посмотреть как это работает и затем уже только вникать в то, как всё это устроено. Если сразу не заработает, пугаться не надо, обратите сначала внимание на 5-ый пункт в описании скрипта.

Кто занимается анимацией с настроенными персонажами, меня поймёт…..

Чтобы совершить просмотр получившейся анимации, прокрутка в рабочем окне с режимом ”Real-time” не даёт точного ощущения получившейся динамики и поэтому необходимо делать ”playblast”, но в этом режиме отображаются все пиктограммы  управления и кости, что тоже очень бывает сильно мешает.... вот пример сцены с настроенным персонажем без использования этой кнопки...

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

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

Вот текст скрипта этой кнопки (точнее не кнопки, а окна, содержащего кнопку):

скрипт_01

if (`window -exists AWin`) deleteUI AWin;

   window  -t "knopka" -wh 100 100 AWin ;

          scrollLayout;

          columnLayout;

 symbolCheckBox       -oni "C:/\Program Files/\Autodesk/\Maya2008/\icons/\pikt_off .bmp"

                      -ofi "C:/\Program Files/\Autodesk/\Maya2008/\icons/\pikt_on.bmp"

                      -onc {"modelEditor -e -deformers 0 -dimensions 0 -nurbsCurves 0 -ikHandles 0 -joints 0 -locators 0 modelPanel4; "}                                                        

                      -ofc {"modelEditor -e -deformers 1 -dimensions 1 -nurbsCurves 1 -ikHandles 1 -joints 1 -locators 1 modelPanel4; "};

showWindow AWin;

Разъяснения для продвинутых пользователей:

команда отключающая видимость "мусора"

 {"modelEditor -e -deformers 0 -dimensions 0 -nurbsCurves 0 -ikHandles 0 -joints 0 -locators 0 modelPanel4; "}

 если заменить "нолики" на "единички", то получается обратная команда ....

описание скрипта_01:

1. первая строка (необязательна), по ней maya определяет наличие окна, которому мы дали имя "Awin" указав его в конце второй строки, и если находит его, то удаляет командой "deleteUI AWin". эта строка полезна на тот случай, если вы сделаете изменения в скрипте, то при перезапуске окна старое окошко удалиться автоматически и останется только одно новое.... в противном случае, старое окошко удаляется вручную ....

2. вторая строка - (обязательна ....) в ней команда "window" определяет окно с названием "knopka", высотой и шириной по 100 пиксель, с именем "AWin", имя и название окна - разные понятия.

3.  третья строка - (необязательна) содержит команду "scrollLayout", которая создаёт ползунки прокрутки в окне, если содержимое окна окажется больше его размеров.

4. четвёртая строка - (обязательна) содержит команду "columnLayout", определяет принцип заполнения окна.

5. пятая строка содержит нашу долгожданную команду "symbolCheckBox"  команда "symbolCheckBox" это кнопка с двумя состояниями "on" и "off", кнопка графическая, поэтому для каждого состояния есть своя картинка, путь к которым указан флагами "-oni" и "-ofi" соответственно размер кнопки определиться автоматически размером картинки. Так же, сами картинки должны лежать в папке (для винды) "C:/Program Files/Autodesk/Maya2008/icons/ . картинки возьмите здесь и загрузите в указанную папку (обязательно). сами команды видимости определяются флагами "-onc" и "-ofc", что дословно означает "-onCommand" и "-offCommand". в этих командах разберу только конец строки, а именно "modelPanel4", что определяет в какой именно панели регулируется видимость, номер панели это последняя цифра, я не знаю точно природы определения этого номера, но рекомендую начинать с "1" и дальше пробовать на увеличение .... хотя у меня чаще всего работает на "1" или "4".

6. и последняя строка – «showWindow AWin;»  выводит на дисплей окно AWin…

Инструкция по применению:

1. получите по этой ссылке иконки, распакуйте и вставьте их в папку "icons" (адрес для винды)  "C:/Program Files/Autodesk/Maya2008/icons/"  (maya может быть любая не обязательно 2008);

2. запустите Maya и откройте окно "Expression Editors" ..... Window/Animation Editors/ Expression Editors ...;

3. в окне " Expression Editors" в "Select Filter" выберете "By Script Node Name";

4. в поле "Script Node Name" напишите любое имя,которое вы хотите дать этому скрипту;

5. скопируйте текст скрипта и вставьте его в поле "Script";

6. в поле "Execute On" выберете "Open/Close", при этом кнопка будет включаться при каждом запуске файла;

7. нажмите кнопку "Create" внизу панели;

8. нажмите кнопку "Test Script" чтобы запустить данный скрипт .... и кнопка появиться ... ;

9. заключение ... в случае если вы будете делать изменения, например менять номер панели в строке команды (см. описание скрипта п.5) нажимайте каждый раз кнопку "Edit", внизу панели, чтобы изменения принялись и потом кнопку "Test Script", чтобы кнопка обновилась...

Напоследок совет тем, кто ещё ни разу не создавал ничего с помощью mel:

  1. Не надо ничего бояться;
  2. Cкачайте по этой ссылке иконки для кнопки, распакуйте и положите их в папку  "icons" (адрес для винды)  "C:/Program Files/Autodesk/Maya2008/icons/"  (Maya может быть любая);
  3. Откройте окно Script Editor (нижняя правая кнопка) или Window/General Editors/ Script Editors:
  4. Скопируйте и вставьте в нижнее (белое) поле окна Script Editor, предложенный выше скрипт;
  5. Запустите выполнение скрипта, нажав клавишу «enter» из цифрового раздела клавиатуры, центральная клавиша “enter”, осуществит лишь переход на новую строку, Чтобы при этом не исчез вставленный текст скрипта, предварительно выделите его…… пригодиться для дальнейшего редактирования ….
  6. И ещё, при первом запуске оставьте лишь первую, вторую и последнюю строку скрипта, остальные строки или удалите, или выключите, поставив двойную наклонную      вначале каждой строки, именно так ….: //  если сделали всё правильно, то при запуске возникнет только лишь пустое окно под названием «knopka», попробуйте изменить название и перезапустить, и проникнитесь чувством, что теперь вы умеете создавать свои окошки, и в этих самых окошках можно размещать самые разные кнопки, ползунки и прочее очень, и очень полезное ….

 

Вот и всё, теперь новичкам следует приняться за «описание скрипта» ….

332 850 23
14
2009-01-17
эээээ а в чем проблема то? скрыл все кривые и другие объекты через Show, делов то?
2009-01-18
Как говорится, не скриптами едиными жив анимированный человек
2009-01-18
Зато понтанулся:)
2009-01-18
Адресовано предидущим коментаторам Mr.Absinth, Skif, w6OP3w: .... Здорово умники, не путайте мозг. Отключение через меню это процесс в несколько касаний, а через кнопку в одно. команды можно прописывать любые хоть Hide .... и обратную Show, главное учиться использовать скрипт для оптимизации работы, ликбез и состоял в приобщении к скрипту. Я уважаю ваши работы Mr.Absinth, но анимация это процесс многих повторений и на лишнее теребление меню времени нет ... Печально известный факт, что аниматоры многих студий до сих пор не верят в скрипт .... Если вы хотите действительно отличиться то лучше бы предложили загнать эти команды в горячие клавы, это намного удобнее любых кнопок.....
2009-01-18
Да ну я 55 поставил потому что мне самому кнопки соратники делают и это позор.
2009-01-19
зато ты замечательный художник ....
2009-01-19
ну во первых. не умники (вам никто не грубил)а просто было интересно.. во вторых. если урок или цель урока мной не понятна то я оценки не ставлю вообще. так что от меня оценок не было в третьих. скриптование - это хорошо. (у меня лично вообще никак с этим) но опять же мне кажется что плейбласт не самая актуальная проблема при анимации в четвертых, я сам не анимаирую, но тесно контактирую с аниматорами, сам занимаюсь ригом, сетапом, моделингом.. и тд.. короче всем кроме анимации, скриптования и рендера. И именно по этой причине могу подсказать пару идей для действительно полезных скриптов. а агрессия тут не нужна... в пятых. как то тут на этом сайте заявляли что создание персонажа, риг и сетап его невозможен без скриптов, не согласен.. но скрипты ускоряют работу - это да. поэтому расписывать что без скриптов жить нельзя - неверно..(я не говорю что вы это сказали) а вот акцентировать внимание на удобности и ускорению процесса работы - это да.
2009-01-19
я сам отношусь к скриптам именно с точки зрения оптимизации и ускорения процессов .... за агрессию прошу извить мня ....
2009-01-19
[quote=ClinicalFilm] я сам отношусь к скриптам именно с точки зрения оптимизации и ускорения процессов .... за агрессию прошу извить мня .... [/quote] забыли :)
2009-01-20
[quote=Skif] И именно по этой причине могу подсказать пару идей для действительно полезных скриптов. [/quote] Пожалуйста, если не сложно :) Я без скриптования жить не могу, хотелось бы прочесть твои предложения, мож че интересное смогу сделать :)
2009-01-21
проще все хелперы скрыть заранее.. скелет тоже аниматору не нужен.. а управляющие объекты проще скрывать и открывать дополнительным атрибутом на основном контроллере персонажа.. делается это тоже ровно одним движением мыши.. и никаких скриптов.. либо скинуть их в один слой и включать/отключать одним кликом.. но при таком раскладе становится неудобно, когда в сцене присутствует много персонажей.. получается огромная простыня со слоями.. тем более, что при анимации и так часть экрана занята таблицами для быстрого выделения лицевых контроллеров или контроллеров тела.. а тк же вспомогательными скриптами для изменения тангенсов анимационных кривых, отображения кривых движения в пространстве и т.д. и закрывать экран лишней кнопкой без которой легко можно обойтись, не целесообразно.. З.Ы. чтобы не было вопросов, сам я риггер и аниматор.. на мел пишу регулярно, в течении нескольких лет.. поэтому с уверенностью могу сказать, что кнопка для скрытия/открытия контроллеров не самая нужная и достойная внимания и времени вещь.. ;о) хотя как пример для тех кто только начал писать на мел, вполне подойдет.. З.З.Ы. кстати, Дима (a.k.a. Mr.Absinth), как там дела в старой доброй АЛС групп? ;о)
2009-01-22
Проблема большинства русскоязычных уроков - очень сумбурный. С точки зрения изучения МЕЛа, конечно же. Скрипт - штука полезная. Но, то, что вы написали - инструкция по применению данного конкретного скрипта. А никак не разбор, что есть МЕЛ, и с чем его едят. Ни в коем случае не придираюсь к уроку, то, что вы его написали и решили поделиться знаниями - это отлично. Печально то, что толковых уроков на русском, особенно по МЕЛу, и прочим специфическим вещам - днем с огнем не сыскать. Опять же повторюсь. Я не придираюсь. Для меня и так все понятно из кода. А новичкам урок не поможет ни в чем разобраться. Посему скрипт можно просто было выложить, как полезную тулзу, и все это включить в текстовик-описание. С другой стороны, у меня и на такой короткий урок времени нет.... [b]В любом случае, спасибо всем, кто хоть что то пишет за желание, время и терпение.[/b]
2009-01-23
извините что я так нескромно.. но обидно, а для кого же я все это писал? :о) http://www.render.ru/books/show_book.php?book_id=433
2009-01-24
Здорова Пашка! Ничего не изменилось, только зп приподнялась, а работы паубавилось. плохого говорить не буду ато тотальный анандер под током:)))
RENDER.RU