Arnold Scene Source (.ass) is Arnold's native scene definition format, stored in human-readable, editable ASCII files that can later be rendered outside of CINEMA 4D with kick (a multi-platform, command-line utility) or used for rendering via procedurals. Beside ASS files Arnold offers writing scenes to Universal Scene Description (USD) format.
Scene Export Dialog
C4DtoA lets you save scenes to ASS or USD files. The scene export dialog can be accessed from the Arnold > Scene Export menu.
The dialog shows Arnold related options and frame settings described below.
Path
The path where the archive (.ass, .usd, .usda, .usdc) will be saved to. A padding pattern (####) can be used to save a file sequence (animation). If padding is not specified, .#### is added to the file name automatically. For example /path/to/test.ass will produce /path/to/test.0000.ass, /path/to/test.0001.ass, /path/to/test.0002.ass and so on.
Format
Mode
Set to Scene to export the whole scene, or set to Procedural to export only the selected meshes to be loaded in an Arnold Procedural (stand-in).
Objects
Defines the objects to be exported:
- All: Export all objects (geometries, lights, etc.) from the scene.
- Selected: Export only the selected objects.
- Selected individually: Export the selected objects to separate ASS files. The object name is added to the file name as a suffix (e.g. myexport_Sphere.ass, myexport_Cube.ass, etc.)
Export Object Hierarchy
Exports the whole hierarchy of the selected objects (instead of manually selecting all children).
Replace With Arnold Procedural
Available in Procedural mode. When enabled the exported objects are replaced with an Arnold Procedural object pointing to the exported file.
Absolute Paths
When enabled all paths are exported as absolute paths, even if they are defined as relative in the scene.
ASS
ASS format specific settings.
Gzip Compression (.ass.gz)
Exports the scene directly to gzip-compressed files with the .ass.gz extension. You can expect compression rates in the 4-5x range (compared to full ASCII form, obviously there will be a lower compression ratio if the binary encoding option is being used).
Binary Encoding
Specify whether binary encoding is used to compress large arrays (bigger than 16) containing float in their components. They are encoded into a more compact ASCII representation (b85), leading to smaller files and faster load times, whilst still being mostly human-readable. In addition, the binary encoding has exact 32-bit precision, whereas without this binary output floating point values are truncated into at most 8 ASCII digits (e.g. 1234.5678). The encoded arrays are indicated by prefixing the array type with "b85" as in the example below. POINT2, POINT, and VECTOR arrays are encoded. 16 float
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
Include
Specifies which of the following node types are included in the ASS export:
- Option
- Cameras
- Lights
- Shapes
- Shaders
- Drivers
- Filters
Animation
Frame range
Specifies the range of frames to be exported:
- Use render settings: frames specified for render (Render Setting / Output) will be exported.
- Current frame: exports only the current frame.
- Custom: exports frames specified by the Frame start/end/step settings.
Frame start
Specifies the start frame of the sequence to be exported in custom mode.
Frame end
Specifies the end frame of the sequence to be exported in custom mode.
Frame step
The increment between the frames to be exported in custom mode.
Currently animation can not be written to a single USD file, a different file is created for each frame.
Export
Writes the file(s) to the disc.
Scene Export from command line
Scene export can be executed from the command line as well via the -arnoldSceneExport parameter followed by the export options. The following options are available: For example, the following command exports frame range 10-20 of myscene.c4d to myscene.ass: Note that on Windows the export is executed in the background, therefore, you have no output in the console. You can redirect the output to a file using the > directive as follows:Commandline.exe -arnoldSceneExport "scene=c:\path\to\myscene.c4d;format=ASS;filename=c:\path\to\myscene.ass;startFrame=10;endFrame=20"
Commandline.exe -arnoldSceneExport "scene=c:\path\to\myscene.c4d;format=ASS;filename=c:\path\to\myscene.ass;startFrame=10;endFrame=20" > export.log 2>&1
Scene Export from python
The arnold.scene module in the C4DtoA python API offers a convenient method to export the Cinema 4D scene to an Arnold ASS or USD file.Example
import arnold.scene as arnold_scene
# export the current scene to ASS
arnold_scene.Export(doc, "/path/to/my/scene.ass", binary = False)
# export frame 10, 11 and 12 to USD
arnold_scene.Export(doc, "c:\\path\\to\\my\\scene.usd", startFrame = 10, endFrame = 12)