The -o flag changes the output path for the beauty AOV only. For other AOVs, kick still uses the output paths specified in the ASS file (the AOV output paths are specified by the filename parameter of the driver nodes in an ASS file).
It is possible, however, to use kick -set to change the output path and file name of specific AOVs, but you’d have to know the AOV names in advance. For example:
kick -set defaultArnoldDriver@driver_exr.RGBA.direct_diffuse.filename "C:/temp/direct_diffuse.exr" -i example.ass
Some customers have reported a problem using a render manager (Muster, Tractor, Deadline) to render jobs with kick, typically via a wrapper script. The problem is that kick tries to read from STDIN instead of loading the specified ASS file. In the log, you’d see this:
00:00:00 0MB | [ass] reading from stdin ...
A workaround is to add the -nstdin flag (Ignore input from stdin) to the kick command line.
If you render a scene that has Skip License Check enabled, you’ll get the Arnold watermark. One way to make sure this doesn’t happen is to turn off Skip License Check from the command line:
render -r arnold -ai:slc off some_scene.mb
kick -set options.skip_license_check off -dp -dw some.ass
You might also want to enable Abort on License Fail (-ai:alf for render, -set options.abort_on_license_fail for kick).
By default, the Abort on License Fail option is off, so you could end up with water-marked renders if for some reason a render node can’t get a license.
Here’s one way to prevent that, with the -set flag:
kick -dp -dw -set options.abort_on_license_fail on some.ass
One way to avoid exporting the same static geometry for every frame is to export it just once, and then export the rest of the scene (the cameras, lights, and any animated objects) as a regular sequence. kick can combine multiple ASS files and then render the result. For example:
kick environment.ass lights.ass character.0001.ass camera.0001.ass -o scene.0001.exr
- environment.ass is all the static geometry and the applied shaders.
- camera.####.ass is the camera, driver, filter, and options.
- character.####.ass is an animated character with its shaders.
kick -tree prints the shading network for a shader node. For example, given this:
You can print out the shader tree for the standard shader like this:
%KICK_PATH%\kick.exe -tree %NODE% -i %ASS_FILE% -l %SHADER_PATH%
For a [simple] shading tree that looks like this:
You would get this:
+-Kd_color = txt2d_image_explicit:Sources.Materials.DefaultLib.Material.Image.SItoA.41000.2
| +-tex = sib_image_clip:Sources.Materials.DefaultLib.Material.noIcon_pic.SItoA.41000.3
+-opacity = txt2d_image_explicit:Sources.Materials.DefaultLib.Material.Image.SItoA.41000.2
+-tex = sib_image_clip:Sources.Materials.DefaultLib.Material.noIcon_pic.SItoA.41000.3
max depth: 2
total shaders: 5
cycles detected: 0
Notice that txt2d_image_explicit and sib_image_clip are counted twice, because those branches are plugged into two different ports on the standard shader.
Setting up the environment right is what often goes wrong. Running kick -licensecheck from inside Softimage is a quick way to check that you set up the environment variables correctly.
Here’s two lines of Python that will open a command prompt and run kick -licensecheck (on Windows).
from subprocess import Popen
Popen(["cmd", "/K", XSIUtils.BuildPath( Application.Plugins('Arnold Render').OriginPath, 'kick.exe' ), "-licensecheck"])
Here’s the same thing, but broken down a bit for legibility:
si = Application
p = si.Plugins('Arnold Render')
sKick = XSIUtils.BuildPath( p.OriginPath, 'kick.exe' )
from subprocess import Popen
Popen(["cmd", "/K", sKick, "-licensecheck"])