在我建模时,我喜欢渲染一个框架来显示我正在进行的进度。我想将渲染器编程为将渲染保存为渲染输出,并在其末尾添加增量编号。所以我最后会有一些渲染,就像动画的渲染序列一样,但我决定制作帧。这样做的目的是自动化创建的过程。
答案 0 :(得分:2)
这是一个在每帧增加文件名的循环。 使用最后一行的结果作为文件名。
如果您只是“添加数字”,您将遇到一个问题 filename是其他应用程序(包括ram player)不会将它们识别为序列。 使用下面的解决方案,您可以使用0001 - 0002等正确添加它。
如果您想在输出中输入更多0,请更改“.4i”行。
--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")
)
运行它的结果可以在脚本监听器中看到。
答案 1 :(得分:0)
如果将文件保存到新的空文件夹,则每次保存文件时,都可以在文件名后附加一个整数,该文件名与目录中的文件数相对应。
folder = "c:\\tmp\\renders"
dir = dotNetClass "System.IO.Directory"
files = dir.GetFiles(folder)
file = folder + "\\render" + files.count as String + ".bmp"
render outputfile:file
答案 2 :(得分:0)
file = render()
然后用任何名称和任何你想要的地方保存文件。
答案 3 :(得分:0)
似乎是一个老问题,但我认为你需要的是一个带有全局变量的MacroScript来保存文件名计数器并为该宏创建一个键盘shorcut,这样你就可以在建模时快速渲染。
这是一个简单的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”渲染单个帧。当前活动视口将被渲染。
使用MaxScript Listener窗口重置文件编号计数器rpFileNumber = 0 使用rpFileName =“c:\ myfolder \ myfilename”
设置路径和文件名这个脚本需要很多改进,但目前是可以接受的。
您可以在此处尝试其他更复杂的解决方案: http://forums.cgsociety.org/archive/index.php/t-715599.html