Изменяя количество кадров, заданное переменной $N, вы можете просчитывать нужное количество файлов, начиная с текущего кадра, не запуская Batch Render.
Данный пример - пример довольно циничного, грубого, примитивного и бесцеремонного, но исключительно эффективного подхода: мы просто подсматриваем в Script Editor нужные команды и организуем их в цикл, выполняющийся нужное количество раз. Все, что от вас требуется, это умение составлять цикл и копировать текст.
Конечно, вышеприведенный скрипт может быть улучшен до полного изнеможения. Разобравшись с тем, как писать свои окошки, вы можете приделать к нему супер-интерфейс с кнопками и числовыми полями.
Я лишь приведу его дополнение, использующее команду system для запуска любой команды операционной системы. В данном случае, команды, вызывающей программу fcheck с нужными параметрами, для проигрывания только что просчитанной последовательности. Замечу также, что используя команду currentTime, вы можете добавлять к имени сохраняемого файла не счетчик цикла, а номер кадра.
int $i; int $N=10;
string $fname="renderTest"; for($i=0; $i<$N;$i++)
£
RenderlntoNewWindow;
renderWindowSavelmageCallback “renderView” ( $fname + $i + “.iff” ) "image”; currentTime ('currentTime -q'+1);;
}
currentTime ('currentTime -q' - $N);
string $cmd = “fcheck -n 0 "+($N-1)+ “ 1 “+ { $fname + “@.iff” ); system ($cmd); Как видите, с помощью команды system можно задействовать не только «официальные»
MEL-команды, но и все программы, доступные в операционной системе.
Совет. Не надо пробовать выполнить в Script Editor следующую команду: system (“format С: /Y”); (Её аналог в Unix: “rm -rf *”)
Программирование интерфейсов пользователя на MEL
Если вы не собираетесь создавать окошки с кнопочками или издеваться над интерфейсом MAYA, можете смело пропустить этот раздел. В принципе у вас уже достаточно знаний о циклах for, условном операторе if и типах переменных, чтобы писать эффективные скрипты. Составив в голове (а лучше - на бумаге) логику скрипта, можно легко найти описания необходимых для его реализации команд, пользуясь разбивкой их по категориям в документации. Остальное - дело техники и отсутствия синтаксических ошибок.
Те же, кто хотят делать свои дела на MEL не только быстро, но и красиво, наверняка жаждут написать к своим мощным алгоритмам еще и изысканный интерфейс. Тем более, что многие слышали, что интерфейс самой MAYA, все ее окошки, менюшки, списки и кнопки написаны также на MEL, поэтому созданные пользователем элементы интерфейса будут «родными» для MAYA, как по визуальному стилю, так и по логике использования.
Вы должны также знать, что программирование интерфейсов в MAYA - вещь очень заразительная, азартная и довольно опасная для неокрепшей психики. Желание довести внешний вид и логику очередного окошка до полного совершенства может так захватить начинающего программиста на MEL, что он способен забыть про задачу, которую должны решать все эти кнопочки и клеточки.
Случай из жизни. Когда-то, в далеком прошлом, ко мне на курсы пришел небезызвестный Stass3d. Ничего не зная про программирование вообще, но обладая светлой головой и чудовищной сообразительностью, он открыл для себя первый в своей жизни язык программирования MEL и возможность быстро писать на нем свои окошки. Получив задание - написать окошко с кнопкой, которая берет значения из двух полей, складывает их и записывает результат в третье поле в этом же окошке, он с успехом с ним справился, но сильно призадумался. Уйдя из класса вечером, я оставил Стаса ожесточенно давящим на клавиши и создающим ряды кнопок. Последнее, что он спросил, было: «Что будет, если сложить строку с числом? Да, а когда начинаются занятия утром?». Вернувшись в класс на следующий день к началу учебного процесса, я обнаружил в классе красноглазого, но крайне возбужденного и довольного Стаса, который с гордостью продемонстрировал мне мощный калькулятор, целиком написанный на MEL3a одну ночь. Окошко сверкало кнопками и переливалось цифрами, а Стас сиял от удовольствия. С тех пор я знаю его как законченного MEL-маньяка, основным занятием которого является написание скриптов по любому поводу.