Render.ru

маленький вопрос по Node behavor

Hang

Знаток
Рейтинг
31
#1
Подскажите как лучше реализовать быстрый доступ к включени и выключению нодов...

частный случай - делаю меш смуф, и мне надо иметь возможность быстро его включать и отключать, я вынес в шэлф две кнопочки "setAttr polySmoothFace1.nodeState 1;" и "setAttr polySmoothFace1.nodeState 0;" соответсвенно, но место конкретного polysmoothface1 мне надо как-то подставить в формулу узел выделенного объекта

п.с. просьба не отсылать на №ую главу №ой книги, а дать нормальный совет как это лучше реализовать, ЗАРАНЕЕ СПАСИБО :)
 

Dark™

Модератор форума
Команда форума
Рейтинг
431
#2
Код:
string $sel[] = `ls -sl`;
for($i=0;$i<size($sel);$i++)
setAttr ($sel[$i]+".nodeState") 1;
Если объект один:
Код:
setAttr .nodeState 1;
п.с. просьба не отсылать на №ую главу №ой книги, а дать нормальный совет как это лучше реализовать, ЗАРАНЕЕ СПАСИБО :)
Часто это просто наилучший ответ.
 

Hang

Знаток
Рейтинг
31
#3
Dark™ [url=/forum/viewtopic.php?post_id=774047#774047 сказал(а):
не работает, setAttr тоже не работает... даже не зная всех тонкостей мел - это очевидно.

setAttr .nodeState 1; "установитьатрибут чего?" а если у меня кроме мешсмува еще 100 модификаторов?

string $sel[] = `ls -sl`; - тут, как я понял, создается массив нодов(модификаторов) выделенного объекта, тогд аполучается, что setAttr ($sel[$i]+".nodeState") 1; устанавливает всем этим нодам hasnoeffect... опять же где указатель на конкретный смуф? да и ls -sl по хелпу выходит как пролистывание выделеных объектов, а не их свойств....
 

Hang

Знаток
Рейтинг
31
#4
string $sel[] = `ls -sl`;
for($i=0;$i<size($sel);$i++){
print $sel[$i];};
pSphere1pTorus1


вот немного изменил Ваш скрипт, как видно - он действительно в sel загоняет выделенные объекты... а как цикл по нодам сделать?
 

Dark™

Модератор форума
Команда форума
Рейтинг
431
#5
Ноды polySmoothFace же выделить можно в Аутлайнере (снять галку Display -> DAG objects only). Если через модель добираться до этой ноды, то через связи это надо делать тоже на меле. А еще легче создать новый атрибут модели через Modify->Add Attribute, который будет регулировать нужную ноду.
Например:
Код:
connectAttr pCube1.switch polySmoothFace1.nodeState;
 

Hang

Знаток
Рейтинг
31
#6
connectAttr pCube1.switch polySmoothFace1.nodeState;
ну это можно, конечно, но опять - для конкретного куба и конкретного нода... а я хочу создать независимую кнопку, которая будет выключать, например, все ноды смува на сцене(ну смуф тут ка кпример, любой нужный нод)
Код:
string $sel[] = `ls -dep`;
for($i=0;$i<size($sel);$i++)
setAttr ($sel[$i]+".nodeState") 1;
например у меня получилось выключить все ноды на всей сцене Вашим скриптом, но с флагом -dep, задача выключить только ноды смува, вот я и не знаю как сделать такой отбор.
 

Hang

Знаток
Рейтинг
31
#7
если уж говорить честно, я хочу реализовать в мае "лампочки" модификаторов, то есть выделив из списка inputs нужный нод, нажать на кнопку и отключить его , на другую - включить... возможно есть уже готовый скрипт подобный, но хз как его найти
 
Сверху