Например, вы смоделировали супер-телескоп с помощью некоторого количества операций Loft, Extrude и других. Благодаря неубитой Construction History все работает, как часы, и форма телескопа меняется при редактировании исходных кривых, лежащих в основе всей модели. Однако может статься, что модель выполнена столь изысканно, что довольно долго приходится ждать пересчета поверхности после изменения кривой. А нужно, скажем, временно отменить этот пересчет, отредактировать все нужные кривые, а затем снова включить обновление поверхности. Есть такое дело! Для этого достаточно разыскать в Attribute Editor закладки для операций Loft и Extrude и установить для них Node State=Blocking. Правда, после этого поверхности эти перестанут не только обновляться, но и вообще показываться на экране. Если же вы хотите, чтобы поверхности не исчезали, а только перестали обновляться, надо установить Node State=Waiting-Normal.
Другой пример можно привести на основе применения деформеров или скининга. Предположим, вы привязали поверхность к костям и деформировали ее с помощью скелета. Если выбрать поверхность, то в закладках Attribute Editor будет присутствовать нода типа skinCluster, отвечающая за деформации поверхности скелетом. Если установить для нее Node State=Blocking, то поверхность тут же вернется к своему недеформированном состоянию, то есть скининг перестанет вычисляться, и сколько бы вы не шевелили скелет, поверхность не будет изменяться, пока вы не установите Node State=Normal.
Внимательные экспериментаторы заметят, конечно, что при попытке установить Node State=Blocking для скининга MAYA выдает сообщение:
Warning: skinClusterl (Skin Cluster Node): Blocked is not supported on deformers. Switching to Has No Effect.
А затем сама устанавливает Node State=HasNoEffect.
Честно сказать, на данном этапе даже мне не хочется углубляться в такие дебри и объяснять, в чем разница между этими понятиями.
Однако чтобы вы все-таки почувствовали разницу, хотя бы интуитивно, откройте файл ех-pressionStart.ma (или любой другой содержащий expression), выберите сферу и найдите закладку expressionl в Attribute Editor.
Установите в ней Node State=HasNoEffect.
После этого expression перестанет производить хоть какой-то эффект на сферу: при перемещении кубиков сфера останется неподвижной. Однако вы по-прежнему не сможете перемещать сферу по вертикали: пусть expression ничего не вычисляет в данном случае, но зато он, скажем так, имеет влияние на сферу.
Однако если установить Node State=Blocking, expression не только не будет вычисляться, но и приниматься во внимание. Теперь он полностью заблокирован, и сферу можно передвигать по вертикали вручную.
Советую запомнить только два значения атрибута Node State. Это Normal и Blocking. Если нужно временно заблокировать работу некоторой ноды, достаточно установить для нее Node State=Blocking. В тех случаях, когда значение Blocking не поддерживается данной нодой, MAYA сама изменит его на HasNoEffects.
Как можно догадаться, для некоторых типов нод изменение значение атрибута Node State не имеет ни смысла, ни эффекта. Сколько бы вы ни меняли его значение материалов или тектстур, это не отразится на рендеринге. Просто шаблон окна Attribute Editor предполагает отображение этого атрибута для всех типов нод, даже для тех, которые его не используют. Точно также, для некоторых типов нод имеет смысл только лишь одно значение: либо Blocking, либо HasNoEffect. Для того, чтобы быстро заблокировать все ноды определенного типа во всей сцене, есть специальный пункт меню: Modify=>Evaluate Nodes. Он позволяет установить Node State=Blocking для перечисленных в нем типов нод.