Arnold 场景源 (.ass) 是原生场景定义格式,存储在用户可读的可编辑 ASCII 文件中。
点击阿诺德菜单中的资源导出 即可到处 Ass 文件
使用 C4DtoA 可以将场景保存为 .ass 文件,以便随后可以在 C4D 外部使用 kick(一种多平台命令行工具)进行渲染,或用于通过替代对象进行渲染。
点击阿诺德菜单中的资源导出 即可导出 Ass 文件(Plugins > C4DtoA > ASS Export)。
ASS 文件名(filename)
存档(.ass)将被保存到的路径。在路径中被识别为帧填充并自动替换为#字符的数字。例如,如果您选择/path/to/test_0004
从文件对话框中的一个序列,/path/to/test_####.ass 将显示在 filename 字段中。
如果要使用静态数字,则必须手动替换填充。
模式(Mode)
设置被加载到 Arnold 程序时的 ASS 文件的模式
对象(Objects)
当导出的对象
定义要导出的对象:
全部:从场景中导出所有对象(几何图形、灯光等)。
选择:只导出选中的对象。
单个选择:导出选定的对象,以分离 ASS 文件。将对象名称添加到文件名作为后缀,设置为程序化。
使用 gzip 压缩(.ass.gz)(Use gzip Compression (.ass.gz))
直接将场景导出为具有 .ass.gz 扩展名的 gzip 压缩文件。压缩率一般在 4-5 倍之间(相比于完整 ASCII 格式,当然如果使用了二进制编码选项,压缩率将较低)。
导出边界框(Export Bounding Box)
指定是否在单独的 .asstoc 文件中包含导出场景的边界框。
使用二进制编码(Use Binary Encoding)
指定是否使用二进制编码来压缩组件中含有浮点的大型数组(大于 16)。这些数组会编码成更加紧凑的 ASCII 表示形式 (b85),从而有助于减小文件并提高加载速度,同时在大多数时候也方便用户阅读。另外,二进制编码具有精确的 32 位精度,同时可确保二进制输出浮点值不会被截断成至多 8 位 ASCII(例如 1234.5678)。编码数组由“b85”数组类型前缀表示,具体如以下示例所示。POINT2、POINT 和 VECTOR 数组已进行编码。16 位浮点
polymesh
{
name mymesh
nsides 54 1 UINT 3 3 3 3 3 3 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
4 4 4 4 4 3 3 3 3 3 3 3 3 3
vlist 47 1 b85POINT
LJ4iv4THCEE/NV4/1nPCvhpuBkEMk10/LJ4iv2uf+kDVzHI/36OGvhkc/kD9+Fs/LGenvtmU8EDqJVo/l1cGv+Ij50D1 ...
扩展程序(Expand procedurals)
在内部,阿诺德从过程节点(按需)创建形状节点。
扩展程序会在 Ass 文件到处前扩展节点。
因此,当您保存.Ass 文件时,若勾选此项您会得到所有节点。
导出对象层次(Export Object Hierarchy )
导出所选对象的整个层次结构(而不是手动选择所有子对象)。
用 Arnold 替代(Replace With Arnold Procedural )
在程序模式下可用。替换为指向阿诺德文件的过程对象。
导出节点类型
您还可以指定在 .ass 导出中包含以下哪些类型的节点:
选项
摄影机
灯光
形状
着色器
覆盖节点
驱动程序
过滤器
帧范围
指定要导出的帧的范围:
使用渲染设置:指定渲染(渲染设置/输出)的帧将被导出。
当前帧:只导出当前帧。
自定义:导出帧由帧开始/结束/步骤设置指定。
开始帧
指定要导出的序列的开始帧。
结束帧
指定要导出的序列的结束帧。
帧步幅
要导出的各帧之间的增量。
使用命令行导出.ass 文件
除了上述对话框外,还可以从命令行导出,通过-arnoldAssExport 参数导出选项。注意,您还使用-nogui 参数来禁用用户界面。
X:\Program Files\MAXON\CINEMA 4D R19\CINEMA 4D.exe -nogui -arnoldAssExport "scene=c:\path\to\myscene.c4d;filename=c:\path\to\myscene.ass;startFrame=10;endFrame=20"
上面是将 myscene.c4d 的第 10~20 帧导出到 ass 文件。
注意,导出在后台运行,因此在控制台中没有输出。您可以使用 > 指令将调用的输出重定向到文件:
c:\Program Files\MAXON\CINEMA 4D R16\CINEMA 4D.exe -nogui -arnoldAssExport "scene=c:\path\to\myscene.c4d;filename=c:\path\to\myscene.ass;startFrame=10;endFrame=20" > export.log 2>&1
scene: 导出 C4D 场景文件的路径(必选)。
filename: 输出路径,默认和 C4D 场景文件在一起
compressed: 是否到处 GZIP 压缩文件(.ass.gz)
asciiAss: 默认二进制编码
expandProcedurals: 是否将给定程序将在导出场景之前进行扩展。
mask: 指定在其中包含哪些 Arnold 节点类型。
0: all 所有
1: selected 选择
2: selected individually 单独
startFrame: 开始帧
endFrame: 结束帧
frameStep: 帧范围
camera: 指定相机的名字,你可以通过这个选项覆盖活动场景相机。注意,相机名称必须是唯一的,否则总是使用相同名称的第一个相机。
导出脚本(ASS Export from script)
ASS 导出是作为一个命令实现的,这意味着它也可以从脚本中调用。
使用 id 为 1029993 的 CallCommand()函数。
导出选项可以通过文档设置来定义。
例如,下面的 python 脚本导出帧范围为 10-20 到 myscene.ass:
import c4d ARNOLD_ASS_EXPORT = 1029993 def main(): options = c4d.BaseContainer() options.SetFilename(0, "c:\\path\\to\\myscene.ass") options.SetInt32(6, 10) options.SetInt32(7, 20) doc.GetSettingsInstance(c4d.DOCUMENTSETTINGS_DOCUMENT).SetContainer(ARNOLD_ASS_EXPORT, options) c4d.CallCommand(ARNOLD_ASS_EXPORT) if __name__=='__main__': main()
可以在 C4DtoA/res/c4d_symbols.h 的头文件中找到可用的选项 id 列表:
0 (文件名)|档名:输出路径。默认.ass 文件被导出到 c4d 场景文件的旁边。
1 (Bool) |压缩:是否直接导出到 gzip 压缩文件(.ass.gz)。
2 (Bool) |包围盒:将场景的边框添加到 ASS 元数据中。
3 (Bool) |二进制:使用二进制编码。
4 (Bool) |扩展程序:在导出场景之前将被扩展。
5 (Int32) |掩码:指定包含哪些 Arnold 节点类型。关于可用节点类型的参考 Arnold API 的 AtNodeEntry 页面。
6 (Int32) |开始帧:指定要导出的开始帧。
7 (Int32) |结束帧:指定要导出的结束帧。
8 (Int32) |步帧:指定帧之间的增量。
11 (Int32)|导出对象:指定导出的对象。可能的值是:0:全部 1:选择 2:选择单独
12 (Bool) |替换为 Arnold 程序化:用 Arnold 程序指向 ASS 文件替换导出的对象。