Svalue = ' fgetline SfileNumber' ; setAttr “dropShape.conserve” Svalue ; fclose SfileNumber;

}

// вызов процедуры dropAttrWindow в конце Script Node dropAttrWindow; После этого следует немедленно нажать кнопку Create и получить новый объект типа Script Node с именем scriptl.

Вызов команды dropAttrWindow в конце текста необходим. Иначе этот скрипт будет просто объявлять четыре процедуры и ничего больше не делать. Также важно вызывать команду именно в конце, после того, как все необходимые процедуры будут объявлены.

Протестировать созданный объект-скрипт можно нажав кнопку Test Script. Если вы скопировали все правильно, должно выскочить окошко с атрибутами.

Осталось решить, когда созданный объект Script Node будет выполняться. Пока он просто сохранился в недрах сцены и выполняется только по нашему требованию при нажатии на кнопку Test Script. В отличие от expressions, он не будет выполняться при смене кадра, если только мы его об этом не попросим.

Чтобы задать, когда созданный объект-скрипт будет выполняться, выберите в списке Execute On: пункт GUI Open/Close.

Это означает, что скрипт будет выполняться каждый раз при открытии (или закрытии) сцены в MAYA.

Опция Script: = Before означает выполнение при открытии сцены.

Остальные пункты в списке Execute On: позволяют выполнять Script Node при открытии сцены не только в интерфейсе MAYA, но и при постановке на рендеринг. Опция Time Changed превращает такой скрипт в банальный expression, выполняющийся каждый раз при смене кадра. Сейчас нужно обязательно сохранить сцену, ведь мы создали новый объект!

Сохраните сцену как dropPresetScriptNode.ma.

Создайте новую сцену, а затем откройте только сохраненный файл с частицами.

При открытии сцены будет выскакивать окошко для работы с атрибутами.

Таким образом, вместе со сценой мы сохранили скрипт, выполняющийся каждый раз при открытии сцены. Такие скрипты можно сохранять вместе со сценой в любом количестве. Не хочу провоцировать хакерски настроенные умы, но любители вирусов и антивирусов могут распознать в таких скриптах своеобразных троянцев, исполняющих свой коварный код при открытии невинной сцены.

Естественно, что скрипты, сохраняемые со сценой, должны, как правило, иметь дело с содержанием сцены: рисовать интерфейс для работы с объектами, проверять глобальные установки, удалять или создавать кэш-файлы, вставать в первый кадр и прочее.

Интерфейс для рисования процедурных кривых

Если вы уже устали от рисования окошек, пропускайте этот раздел и двигайтесь в сторону изменения стандартных майских скриптов. А я бы хотел остановиться на вопросе создания окошек, содержащих не слайдеры, связанные с атрибутами объектов, а просто числовые поля, значения которых можно использовать для последующих построений или вычислений.

Напомню, что вначале главы нами был написан скрипт, рисующий спираль или другую процедурную кривую по заданной формуле.

int $NumPoints=500;

float $Amp=3.0, $Freq=2.0, $Density=10.0, $xSpeed=5.0;

if(objExists(“myCurve”)==1) { delete “myCurve”; } curve -p 0 0 0 -n “myCurve”; int $i;


⇐ вернуться назад | | далее ⇒