Render.ru

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

yursiv, использовать
Код:
string $sel[] = `ls -sl`;
в этом раскладе надо более защищенно: проверить количество объектов и их тип.

DRL, записал себе составить список своих скриптов, но могу сказать, что бОльшую часть из серьезных уже показал тут.
 

yursiv

Активный участник
Рейтинг
11
не понял.
Исходя из этого

-fcs "select -r $Selection1[1]; makeLive;select -r $Selection1[0];MoveTool;

будет выделен только один объект, поэтому такая проверка здесь лишняя (ну можно -et transform прописать на всякий случай)
 

yursiv

Активный участник
Рейтинг
11
Но на всякий случай - если изначально выделено более одного объекта
на Press лучше повесить
Код:
if (size(`ls -sl -et transform`)>1) error "Select EXACTLY 1 Surface or Mesh";
 else  if (size(`ls -sl -et transform`)==1)
	setToolTo makeLiveToolCtx;
а на Release

Код:
	{
	string $sel[] = `ls -sl`;
	makeLive; makeLive; 
	select -r $sel[0];
	pickWalk -d Up;
	}
УПС. доперло писал не для компонентов а для объектов, с КОМПОНЕНТАМИ НЕ РАБОТАЕТ.....пока
 

Лекс Дарлог (DRL)

Активный участник
Рейтинг
14
DRL не мог бы ты показать случаи... в которых нужен снаппинг именно к плоскости фейса,
Да самое банальное - имеем объект, у которого 1 фейс произвольно наклонён. Фейс - плоский.

И нам надо как-то "неравномерно" модифицировать края этого фейса, но чтобы он ни изменил свой наклон, ни потерял плоскость:


Да, достигнуть этого можно несколькими способами: разбить этот фэйс Сплит Полигон Тулом, а потом удалить лишние эджи; в мув туле поменять оси с помощью Align with Face/Edge, заюзать булианы... Вот только наиболее "линейный" способ - заюзать снэппинг к фэйсу.
И причин тому - несколько:
  • При сплит полигон туле не видишь сразу, какая форма получится.
  • При изменении осей оси в плоскости как правило оказыватся под чёрти-каким наклоном. А может потребоваться, скажем, не трогать точку по глобальной оси Y (верх/низ).
  • Булианы - чересчур долго.
  • и при всех 3-х случаях не удастся разместить точи, скажем, строго на высотах 0,1 и 3,9 по Y.
И это самый простой случай. А может потребоваться, скажем, подправить топологию сложно-органического объекта (перса), не изменяя форму. Т.е., по-другому разместить вершины на поверхности. "Дедовским" способом здесь приходится постоянно крутить камеру и перемещать каждую точку в несколько движений.

За старания со скриптом спасибо - но вся соль снеппинга к фейсам - как раз в компонентах. Для объектов, как ты заметил, есть прекрасный Snap Together.

---------------------------------------------------------------------------------

Ещё я тут решил немного усовершенствовать свой скрипт с Input Box'ом - возникли 2 вопроса:

1. Как в процедуре можно задать необязательные аргументы? Т.е.:
Код:
global proc test_proc(int $argument) {
print $argument;
}
Если вызывать процедуру через "test_proc;" или "test_proc();" - Майка ругается: "Error: Wrong number of arguments on call to test_proc."
А я хочу сделать так, чтоб если процедурке было передано какое-то значение - она выполняла доп. действие, если нет - то просто пропускала.

2. С помощью какой команды можно определить текущую позицию (в пикселях по X и Y) курсора мыши? Чтобы окошко создавалось прямо под курсором.
 

yursiv

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

Для первого случая с кубом - локал тулс.
 

Лекс Дарлог (DRL)

Активный участник
Рейтинг
14
Тогда снэп к фейсу - не решает проблему
Пока кнопка мыши не отпущена (геометрия не изменена), манипулятор должен снеппиться к первоначальной геометрии.
А вообще, в идеале - наличие режима, при включении которого снеппимся к сглаженной форме, проходящей через имеющиеся вертексы. Т.е, при редактировании сферки чтобы вершины гуляли не по нашему низкополигональному многограннику, а таки по сферке.

Локал тулз - пошёл гуглить.
 

yursiv

Активный участник
Рейтинг
11
Для сглаженных геометрических форм думаю подойдет установить Axis в Normal Average и кликнуть с контролом на стрелку оси икс - это заблокирует перемещение по этой оси - можно смело таскать вертекс туда-сюда

Плюс опционально установить флажок пресерв юв
 

yursiv

Активный участник
Рейтинг
11
Normals Average С 2009 версии. Preserve UVs тоже

--------------------------------------------------

http://www.creativecrash.com/maya/downloads/scripts-plugins/data-management/c/pyranha
Удобный просмотрщик сцен, есть интерактивный поиск, видит майские сцены сквозь подпапки, и автоматом выставляет проект. Работу вроде ускоряет, как мне кажется....)

http://www.creativecrash.com/maya/downloads/scripts-plugins/data-management/c/pyranha
 

Dark™

Модератор форума
Команда форума
Рейтинг
431
1. Как в процедуре можно задать необязательные аргументы?
MEL не поддерживает перегруженные процедуры. В таком случае лучше определить другую область срабатывания кода или назначить для этого отдельный аргумент.

2. С помощью какой команды можно определить текущую позицию (в пикселях по X и Y) курсора мыши?
draggerContext возможно, но отсчет идет от вьюпорта.
 

Лекс Дарлог (DRL)

Активный участник
Рейтинг
14
Dark™, спасибо. Тогда просто передаю аргумент не напрямую, а через case-break/if-else. А при вызове просто указываем любое значение, кроме предусмотренных.
draggerContext возможно, но отсчет идет от вьюпорта.
Не подойдёт: мне нужно создавать окошко в определённой позиции на экране. А она (позиция) задаётся даже не от родительского окна, а абсолютно от левого верхнего угла экрана.
 
yursiv,
УПС. доперло писал не для компонентов а для объектов, с КОМПОНЕНТАМИ НЕ РАБОТАЕТ.....пока
...
ls -sl
не конкретно по твоему скрипту (пока не вдавался в подробности), но я с какого момента стал почти всегда писать:
Код:
ls -sl [b]-fl[/b]
а потом начал думать еще и про:
Код:
ls [b]-hl[/b] -fl
 

yursiv

Активный участник
Рейтинг
11
или вообще так
ls -hl -fl -st

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

yursiv

Активный участник
Рейтинг
11
по теме damat

На криетивкраше видел интерактивный экструд, в бонус тулсах есть сплит полигон, который работает как кисть

Возможно ли средствами мела делать драгодроповые инструменты? Например бридж(по подобию мердж вертекс тул и чтоб еще котролировать количество дивижионов можно было ), инсерт луп(тоже с дивижинами), аттачить кривые, тотже Align(Distribute), екструд(с дивижинами), Wedge, Mirror......ну и еще чего-нибудь...))

Может такие инструменты есть уже на вооружении?
 
Всем привет!

Прошу прощение за долгое молчание: неделя выдалась напряженной. Итак, по порядку:

1. DRL, вот список моделинговых и околомоделинговых скриптов, которые я у себя нашел:

deselect - постил тут
create annotation (без стрелки) - обычная аннотация со сразу выключенной стрелкой. Окно для ввода имени так и не дописал =)
сдвиг Uv + moveUv - писал о нем тут в начале темы
relax faces (make planar) - итеративное движение вершин в попытке достичь планарности фейсов
smartFreezeTransform - фриз, который не "вывоварачивает" объект при отрицательных скейлах
reload Txt - перезагрузка текстур, либо всех, либо на выделенных объектах
crvOnPoly adv - кривая заданного порядка по выделенным ребрам без мусора в сцене

умный collapse - написано по просьбе максеров. Разбирается в селекции, делает либо merge, либо collapse по вершинам, фейсам, ейджам и uv. Из-за Xumi мне не актуально, но сохранился в запасниках.
split edge and separate - пилит на два объекта по выбранным ребрам
merge + borders - простая добавка к merge: на активном объекте показываются границы через Custom Polygon Display
add split - вставление сплита в row выделение из ейджей
split по материалам - разбиение объекта на несколько в зависимости от назначенных материалов

select Shell (poly and uv) - умеет выбирать либо polyShell, либо uv Shell в зависимости от селекции
select loop, dotted, template - для ейдж лупов. Template - это попытка продолжить выделение на основе того, какие ребра на сечении выбрал юзер до запуска скрипта
select ring, dotted, template - аналогично, только для рингов
select vert ring - аналогично, но для вершин
select Edge path - выделение кратчайшего пути по ейджам на основе 2-х выбранных точек
select loop faces - луп из фейсов по двум выделенным

toggle vert lighting - переключалка вертексного освещения в режиме no light
toggle Texture filtering - вкл./выкл. фильтрацию текстур во viewport
toggle highlight - вкл./выкл. зеленую и синюю подсветки выделения
toggle Isolate - умная переключался режима Isolate Selected
toggle and set grid - переключалка сетки + выставление моих настроек (10 на 10 по 1 клетке, иногда бажит =)

Это не все, так как много чего раскидано в разных местах. Но это точно большая часть.

2. yursiv, я тоже видел несколько таких инструментов, но впечатления это все особо не производит. Maya давно не развивается с точки зрения моделинга, а подпирать мелом или питоном недоделки Автодеска большого желания нет, особенно когда есть доступные и динамично развивающиеся конкуренты в этой области, например, в виде Modo или того же Макса.

Еще хочу сказать о том, что нередко майщик учится только на тех инструментах, которые уже есть, и про другие даже не думает. Если ему их даешь, он может просто не понять, зачем этим пользоваться, если можно по-старинке, как Петя, Вася или модный учитель из тутора. Например, меня в свое время достало то, что Maya скрывает невыделенные фейсы в UV Texture Editor. Я подумал над этим, и написал скрипт, который все исправляет. Пытался внедрить среди моделеров, но что-то не пошло. В итоге и сам не использую, потому что это как бы такая фича, к которой я как-то уже привык.
 

Лекс Дарлог (DRL)

Активный участник
Рейтинг
14
Спасибо за список. На досуге погуглю эти скрипты на креативкреше.

В тему: посмотрел в соседней ветке пак из 160 скриптов (от Денисыча 0-1). Так там, оказывается, есть и снэп к фэйсам, и вообще много полезных "допилов". Сейчас вот разбираюсь, как его установить в scripts/01, а не просто в scripts, как предлагается в инструкции.

Алсо: случайно наткнулся на плаг, радикально допиливающий моделинговый workflow. Если все уже слышали - помидорами не кидайте.
Для меня он стал открытием: Draster NEX - правда он платный и притом недешёвый. Зато ВОТ ТАМ снэп к фэйсам, перемещение компонентов по поверхности, да и вообще моделинговые тулы - идеальные (имхо).

-----------------------------------------------------------------------------

Возвращаясь к одному из моих прошлых вопросов... damat, может ты в курсе, как в скрипте определить абсолютную позицию курсора мыши?
 

yursiv

Активный участник
Рейтинг
11
подпирать мелом или питоном недоделки Автодеска большого желания нет
...а жаль

DRL можно еще и на XTools посмотреть - тоже ничего себе наборчик, в основном в нем все команды - стандартные(хотя и скриптов прилично), но суть в том что куча инструментов собрана в ну очень компактном окошке.
 
давайте разделять мух и котлеты, а имменно: добавленную функциональность и улучшение юзабилити

- Draster NEX: попытка засунуть Макс в Maya, довольно удачная, но излишне дорогая. Особым успехом среди майщиков потому и не пользуется, при этом это действительно то, чего в Maya нет
- XTools - еще одна вариация на тему "Более удобный доступ до инструментов". Насколько я понимаю, собственных инструментальных наработок не содержит или почти не содержит. Еще есть Layout Tools, там не так много своего, зато изначально майское собрано гораздо более логично.

Про нежелание допиливать: сейчас занимаемся оценкой сложности смены версии Maya с 2008 на 2010 или на 2011. На 2010 практически без проблем, на 2011 порядка 70% скриптов надо будет допиливать. Это отбивает желаение что-либо дописывать из необязательного довольно сильно
 

Лекс Дарлог (DRL)

Активный участник
Рейтинг
14
Небольшое имхо про "котлеты".
Тискал я недавно X-Tools, но... xumi удобнее. На несколько порядков. Единственное, ради чего можно поставить X-Tools - компактные панельки тулов. Но как по мне - проще в xumi повесить дополнительную кнопку на отображение/скрытие полноценного Tool Settings, чем загромождать экран ещё одним окном, пусть и небольшим. Я Status Line-то с таким трудом выпилил...

Layout Tools под 2008 не нагуглил.

Так что для себя я определился - XUMI. Пока что более удобный тулбокс я себе просто не представляю. Надо лишь донастроить под себя - и всё.
 

yursiv

Активный участник
Рейтинг
11
признаюсь честно - пробовал как-то ковырять эту ксуми - удобной она мне не показалась(возможно потому что к своим маркинг менюшкам привык) наоборот показалась слишком запутанной для таких вещей как маркинг-менюшки, к тому же был вроде как какой-то баг, когда одна маркинг менюшка ну никак не хотела самоудалиться и постоянно висела, плюс надо хоткей еще раз нажимать, если при первом нажатии не вызвалась менюшка

Вобщем что я хотел сказать - не всем юзверям подойдет ксуми(damat вроде об этом и так писал), и мега удобной я бы не спешил ее называть, не попробовав сначала создать десяток своих менюшек ручками.

Пробовал "ускоряться" по разному. По-моему, если стандартные инструменты(например для моделлинга - екструд) вешать в маркинг меню, вместо хоткея - выходит медленнее. Раньше было штук 50 своих менюшек и все на 4 хоткеях. На данный момент штук 15 менюшек(может больше), штук 50 хоткеев, все что в эти менюшки и хоткеи не влезло - через хотбокс, ну икс-тулсами и шелфом тоже пользуюсь. И такая настройка мне кажется более быстрой и удобной чем одни только маркинг-менюшки. Так-что на вкус и цвет...

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