Render.ru

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

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

Листик

Активный участник
Рейтинг
12
Привет всем.
У скрипта Views, с первой странички этой ветки, есть постоянный автор? Кто-нибудь обновляет этот скрипт?
Дело в том, что этот скрипт глючит когда работаешь с режимом изоляции.
Без этого скрипта работать невозможно, но этот досадный баг часто мешает.
 

Александр Иванов

Активный участник
Рейтинг
7
Если дело в том что спрятанные полигоны отображаются после использования скрипта, просто нажми crtl+z. И изолэйт мод останется на месте, и полигоны снова спрячутся! :)
 

Листик

Активный участник
Рейтинг
12
Если дело в том что спрятанные полигоны отображаются после использования скрипта, просто нажми crtl+z. И изолэйт мод останется на месте, и полигоны снова спрячутся! :)
Выделенные полигоны остаются (изолируются), а остальные пропадают.
Ну, контрол+зет помогает, конечно, но еслибы можно было избавиться от необходимости давить его постоянно я был бы рад.
 

Листик

Активный участник
Рейтинг
12
Я вот записал ролик.
Как выяснилось — баг проявляется только во вьюпорте 2.0, я думаю это уменьшает шансы на исправление :(
 
Хех, качество тестирования базовых операций в Maya по-прежнему остается на уровне плинтуса.

Что можно попробовать сделать - можно в коде проверять, не находимся ли мы в режиме рендеринга Viewport 2.0. И если мы все-таки в нем находимся, то после поворота камеры сделать undo или что-то еще, что приведет к появлению полигонов назад.

Для этого надо Maya 2014, не уверен, что найду время поставить на этой неделе. Но себе запищу, при случае постараюсь поправить.
 

Александр Иванов

Активный участник
Рейтинг
7
Всем привет, прошу помощи в разработке скрипта.
Что хочу сделать - выделяем полигоны, нажимаем кнопку, траингуляция выделенных полигонов меняется.
Как думаю действовать:
1. Выделяю полигон
2. Триангулирую
3. С помощью Convert To Containing Edges полигона получаю доступ к ребру которое получилось после триангуляции
4. Делаю Flip Triangle Edge этого ребра
Всё, триангуляция изменена

Но, у этого алгоритма есть слабое место в пункте 3., т.к. из-за метода получения ребра такой скрипт можно будет применить только к одному полигону за раз. Т.к. если выделю несколько поликов, то
Convert To Containing Edges вернёт мне далеко не только рёбра полученные при триангуляции, но и кучу других. Соответственно вопрос, как получить доступ к рёбрам полученным путём триангуляции нескольких полигонов?
 

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

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

Александр Иванов

Активный участник
Рейтинг
7
Это в принципе понятно. Просто проблема в том что команда Triangulate при выполнении возвращает имя ноды, а как мне собственно получить созданное этой командой ребро? Если я напишу
Переменная = триангулэйт, то в переменную к сожалению не запишется вновь созданное ребро. Вот в чём вопрос :)
 

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

Активный участник
Рейтинг
14
повторяю. Вместо переменных - используем сеты.

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

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

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

Активный участник
Рейтинг
14
А вообще, надо помнить, что в майке флип триангл эдж похабит нормали. Так что после подобных операций - лично я делаю Recreate Geometry из пака Дениса 0-1. Правда, после этого все хард/софт эджи слетают, так что в моём workflow хард-софт эджи стоят в самом конце.
 

Александр Иванов

Активный участник
Рейтинг
7
Выделил 2 полигона.
Создал сел.
Сделал триангуляцию.
В сете вместо двух полигонов стало четыре полигона.
Всё же не понимаю как отсюда можно достать рёбра полученные в результате триангуляции.
Если это слишком очевидно и я просто туплю - может нарисуешь код? Там всего-то пара строчек. :)
 

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

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

Ещё раз внимательнее перечитай схему, которую я написал выше.

Выделил 2 полигона.
А теперь конвертни в эджи и запомни эти эджи в сет (но в выделении оставь всё те же 2 полигона).
Сделал триангуляцию.
А теперь снова конвертни в эджи.
Осталось только из второго вычесть первое. Всё.
 

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

Активный участник
Рейтинг
14
Вот, если что:
http://download.autodesk.com/us/maya/2009help/Commands/sets.html
Операции с сетами производятся этой командой.
В том числе - булевые (объединение, пересечение, вычитание).
 
Сверху