Ускоряя Maya, послесловие. Скрипты для ускорения работы в Maya.
- Автор темы Дмитрий damat Астапкович
- Дата создания
Если дело в том что спрятанные полигоны отображаются после использования скрипта, просто нажми crtl+z. И изолэйт мод останется на месте, и полигоны снова спрячутся!
Ну, контрол+зет помогает, конечно, но еслибы можно было избавиться от необходимости давить его постоянно я был бы рад.
- Рейтинг
- 51
Хех, качество тестирования базовых операций в Maya по-прежнему остается на уровне плинтуса.
Что можно попробовать сделать - можно в коде проверять, не находимся ли мы в режиме рендеринга Viewport 2.0. И если мы все-таки в нем находимся, то после поворота камеры сделать undo или что-то еще, что приведет к появлению полигонов назад.
Для этого надо Maya 2014, не уверен, что найду время поставить на этой неделе. Но себе запищу, при случае постараюсь поправить.
Что можно попробовать сделать - можно в коде проверять, не находимся ли мы в режиме рендеринга Viewport 2.0. И если мы все-таки в нем находимся, то после поворота камеры сделать undo или что-то еще, что приведет к появлению полигонов назад.
Для этого надо Maya 2014, не уверен, что найду время поставить на этой неделе. Но себе запищу, при случае постараюсь поправить.
- Рейтинг
- 7
Всем привет, прошу помощи в разработке скрипта.
Что хочу сделать - выделяем полигоны, нажимаем кнопку, траингуляция выделенных полигонов меняется.
Как думаю действовать:
1. Выделяю полигон
2. Триангулирую
3. С помощью Convert To Containing Edges полигона получаю доступ к ребру которое получилось после триангуляции
4. Делаю Flip Triangle Edge этого ребра
Всё, триангуляция изменена
Но, у этого алгоритма есть слабое место в пункте 3., т.к. из-за метода получения ребра такой скрипт можно будет применить только к одному полигону за раз. Т.к. если выделю несколько поликов, то
Convert To Containing Edges вернёт мне далеко не только рёбра полученные при триангуляции, но и кучу других. Соответственно вопрос, как получить доступ к рёбрам полученным путём триангуляции нескольких полигонов?
Что хочу сделать - выделяем полигоны, нажимаем кнопку, траингуляция выделенных полигонов меняется.
Как думаю действовать:
1. Выделяю полигон
2. Триангулирую
3. С помощью Convert To Containing Edges полигона получаю доступ к ребру которое получилось после триангуляции
4. Делаю Flip Triangle Edge этого ребра
Всё, триангуляция изменена
Но, у этого алгоритма есть слабое место в пункте 3., т.к. из-за метода получения ребра такой скрипт можно будет применить только к одному полигону за раз. Т.к. если выделю несколько поликов, то
Convert To Containing Edges вернёт мне далеко не только рёбра полученные при триангуляции, но и кучу других. Соответственно вопрос, как получить доступ к рёбрам полученным путём триангуляции нескольких полигонов?
- Рейтинг
- 14
Помимо запоминания номеров эджей в переменную - можно их ещё занести во временный сет.
Этот метод гораздо более стрессоустойчивый, т.к. как правило при изменении топологии компоненты в сете продолжают соответствовать тем, которые были до изменения.
Собственно, в своих скриптах, которые работают с топологией, если надо временно запомнить какие-то компоненты - я всегда работаю через сеты.
Этот метод гораздо более стрессоустойчивый, т.к. как правило при изменении топологии компоненты в сете продолжают соответствовать тем, которые были до изменения.
Собственно, в своих скриптах, которые работают с топологией, если надо временно запомнить какие-то компоненты - я всегда работаю через сеты.
- Рейтинг
- 14
повторяю. Вместо переменных - используем сеты.
Компоненты выделены
Сохранили их во временный сет.
... делаем что там надо по модификации топологии ...
считали содержимое сета в переменную и делаем, что там нам было надо в конце.
прибираемся: удалили временный сет.
В вашем случае будет так:
выделен полигон(ы)
в уме (не меняя выделения) конвертируем полигоны в эджи и заносим результат во временный сет
триангулэйт
снова конвертируем полигоны в эджи и запоминаем
Вычитаем из запомненного то, что в сете - так мы получим новые эджи.
Делаем с ними, что там надо
удаляем сет
Компоненты выделены
Сохранили их во временный сет.
... делаем что там надо по модификации топологии ...
считали содержимое сета в переменную и делаем, что там нам было надо в конце.
прибираемся: удалили временный сет.
В вашем случае будет так:
выделен полигон(ы)
в уме (не меняя выделения) конвертируем полигоны в эджи и заносим результат во временный сет
триангулэйт
снова конвертируем полигоны в эджи и запоминаем
Вычитаем из запомненного то, что в сете - так мы получим новые эджи.
Делаем с ними, что там надо
удаляем сет
- Рейтинг
- 14
Код - не нарисую из принципиальных соображений. Я сторонник того, что все мы должны сами доходить до понимания, а не получать готовое решение.
Ещё раз внимательнее перечитай схему, которую я написал выше.
Выделил 2 полигона.
А теперь конвертни в эджи и запомни эти эджи в сет (но в выделении оставь всё те же 2 полигона).
Сделал триангуляцию.
А теперь снова конвертни в эджи.
Осталось только из второго вычесть первое. Всё.
Ещё раз внимательнее перечитай схему, которую я написал выше.
Выделил 2 полигона.
А теперь конвертни в эджи и запомни эти эджи в сет (но в выделении оставь всё те же 2 полигона).
Сделал триангуляцию.
А теперь снова конвертни в эджи.
Осталось только из второго вычесть первое. Всё.