Как я могу постепенно сохранять одиночные рендеры с помощью скрипта max - PullRequest
4 голосов
/ 28 октября 2010

Пока я занимаюсь моделированием, мне нравится рендерить кадр, чтобы показать прогресс по мере продвижения.Я хотел бы запрограммировать средство рендеринга, чтобы сохранить рендер в качестве вывода рендера и добавить инкрементное число в конце.Таким образом, в конце у меня будет несколько рендеров, точно так же как последовательность рендеринга для анимации, но с кадрами, которые я решу сделать.Цель этого состоит в том, чтобы автоматизировать процесс создания.

Ответы [ 4 ]

2 голосов
/ 13 декабря 2010

Вот цикл для увеличения имен файлов в каждом кадре. используйте в качестве имени файла результат последней строки.

Одна проблема, с которой вы столкнетесь, если просто "добавите числа" к вашему Имя файла таково, что другие приложения (включая RAM-плеер) не распознают их как последовательность. с помощью решения ниже, вы добавляете его правильно, с 0001 - 0002 и т. д.

измените строку ".4i", если хотите, чтобы в выводе было больше 0.

--Here you'd get the start frame from the UI
    startframe = 0

--Here you'd get the end frame from the UI
    endframe = 10

--temp variable to hold our start frame number.
    tempframe = startframe

--variable to hold our desired filename
    filename = "Filename_"
for i = startframe to endframe do
(
 tempframe +=1
 print "Framenumber is now:"
 print tempframe as string
 print "Filename at this frame would be:"
 format "filename% \n" (formattedPrint tempframe format:".4i" + ".ext") 
)

результат выполнения этого можно увидеть в слушателе сценария.

0 голосов
/ 03 февраля 2014

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

Вот простой MacroScript, который я сделал для той же цели:

macroScript RenderProgress category:"pX Tools" buttonText:"Render Progress"
(
global rpFileNumber
global rpCameraName
global rpFileName = "c:\\temp\\renderprogress"
if rpFileNumber==undefined then rpFileNumber = 0
if rpCamera==undefinded then rpCamera = $Camera01

local NewFileName = rpFileName + (rpFileNumber as string) + ".jpg"
local bm
if rpCamera == undefined then 
(
    bm = render vfb:false
) else
(
    bm = render camera:rpCamera vfb:false
)
bm.FileName = NewFileName
Save bm 
rpFileNumber += 1
) 

Будет отображаться один кадр с использованием «Camera01», если этой камеры не существует, отображается текущий активный видовой экран.

Для сброса счетчика номеров файлов установите rpFileNumber = 0, используя окно прослушивания MaxScript. Задайте также путь и имя файла с помощью rpFileName = "c: \ myfolder \ myfilename"

Этот скрипт нуждается в доработке, но в настоящее время приемлем.

Вы можете попробовать другое более сложное решение здесь: http://forums.cgsociety.org/archive/index.php/t-715599.html

0 голосов
/ 26 сентября 2011

file = render ()

затем вы сохраняете файл с любым именем и где хотите.

0 голосов
/ 28 октября 2010

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

folder = "c:\\tmp\\renders"
dir = dotNetClass "System.IO.Directory"
files = dir.GetFiles(folder)    
file = folder + "\\render" + files.count as String + ".bmp" 
render outputfile:file
...