1. Пользоваться форумом на планшетах и телефонах стало удобнее благодаря Tapatalk

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

Тема в разделе "Maya", создана пользователем Hang, 22 сен 2009.

Модераторы: Dark™, Skif
  1. Hang

    Hang Знаток

    С нами с:
    29.10.2004
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    Подскажите как лучше реализовать быстрый доступ к включени и выключению нодов...

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

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

    Dark™ Administrator Команда форума

    С нами с:
    28.10.2001
    Сообщения:
    3.110
    Симпатии:
    217
    Баллы:
    1.520
    Код:
    string $sel[] = `ls -sl`;
    for($i=0;$i<size($sel);$i++)
    setAttr ($sel[$i]+".nodeState") 1;
    Если объект один:
    Код:
    setAttr .nodeState 1;
    Часто это просто наилучший ответ.
     
  3. Hang

    Hang Знаток

    С нами с:
    29.10.2004
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    не работает, setAttr тоже не работает... даже не зная всех тонкостей мел - это очевидно.

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

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

    Hang Знаток

    С нами с:
    29.10.2004
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    string $sel[] = `ls -sl`;
    for($i=0;$i<size($sel);$i++){
    print $sel[$i];};
    pSphere1pTorus1


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

    Dark™ Administrator Команда форума

    С нами с:
    28.10.2001
    Сообщения:
    3.110
    Симпатии:
    217
    Баллы:
    1.520
    Ноды polySmoothFace же выделить можно в Аутлайнере (снять галку Display -> DAG objects only). Если через модель добираться до этой ноды, то через связи это надо делать тоже на меле. А еще легче создать новый атрибут модели через Modify->Add Attribute, который будет регулировать нужную ноду.
    Например:
    Код:
    connectAttr pCube1.switch polySmoothFace1.nodeState;
    
     
  6. Hang

    Hang Знаток

    С нами с:
    29.10.2004
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    ну это можно, конечно, но опять - для конкретного куба и конкретного нода... а я хочу создать независимую кнопку, которая будет выключать, например, все ноды смува на сцене(ну смуф тут ка кпример, любой нужный нод)
    Код:
    string $sel[] = `ls -dep`;
    for($i=0;$i<size($sel);$i++)
    setAttr ($sel[$i]+".nodeState") 1;
    например у меня получилось выключить все ноды на всей сцене Вашим скриптом, но с флагом -dep, задача выключить только ноды смува, вот я и не знаю как сделать такой отбор.
     
  7. Hang

    Hang Знаток

    С нами с:
    29.10.2004
    Сообщения:
    80
    Симпатии:
    0
    Баллы:
    26
    если уж говорить честно, я хочу реализовать в мае "лампочки" модификаторов, то есть выделив из списка inputs нужный нод, нажать на кнопку и отключить его , на другую - включить... возможно есть уже готовый скрипт подобный, но хз как его найти
     
  8. Dark™ vip

    Dark™ Administrator Команда форума

    С нами с:
    28.10.2001
    Сообщения:
    3.110
    Симпатии:
    217
    Баллы:
    1.520
    Если в Channel Box'e, то можно так сделать:
    Код:
    channelBoxCommand -selectNode;
    setAttr .nodeState 1;
    
     
Модераторы: Dark™, Skif

Поделиться этой страницей