[clm] product key not found (44)


The Problem

To use Autodesk licenses for Arnold when you batch render with Maya, Arnold must be registered in the Product Information file (aka the PIT file).

Normally the MtoA installer does this for you. But if you’re running Maya and MtoA from a network install, then Arnold won’t be registered in the PIT file, and you’ll see this in the Arnold log:

00:00:00 381MB WARNING | rendering with watermarks because of failed authorization:
00:00:00 381MB | [rlm] error initializing license system:
00:00:00 381MB | [rlm] * Can't read license data (-102)
00:00:00 381MB | [clm] product key not found (44)

and you’d see something like this in the Adlm.log:

337296 2017/11/03 12:29:54 Reason=Fatal error
337296 2017/11/03 12:29:54 ComputerName=WORKSTATION
337296 2017/11/03 12:29:54 OS=6.1.7601.Service Pack 1
337296 2017/11/03 12:29:54 File=AdlmIntLicense.cpp,Line=594
337296 2017/11/03 12:29:54 VendorID=6 [ADLMPIT]
337296 2017/11/03 12:29:54 VendorError=12 [The root information in Product Information Table XML file is missing]
337296 2017/11/03 12:29:54 Reason=Fatal error
337296 2017/11/03 12:29:54 ComputerName=WORKSTATION
337296 2017/11/03 12:29:54 OS=6.1.7601.Service Pack 1
337296 2017/11/03 12:29:54 File=AdlmIntLicense.cpp,Line=595
337296 2017/11/03 12:29:54 AdlmIntError=25 [The product key was not found]

Solution

MtoA includes pit/pitreg for registering Arnold in the PIT file, so you just need to run pitreg on the local machine, like this:

C:\solidangle\mtoadeploy\2017\pit\pitreg.exe
Succesfully added Arnold information to PIT file

Don’t do this:

cd C:\solidangle\mtoadeploy\2017\pit\
pitreg.exe

because you’ll get this error:

Failed to add Arnold information to PIT file (Error 26)

 

Setting up Arnold render nodes


I’ve seen several variations of this question recently. Usually there’s some confusion about “Arnold standalone” and what’s actually required on a render node.

If you rendering scene files from Maya, or 3ds Max, or some other 3d application, then you do not need Arnold standalone.

You need the 3d application (Maya, 3ds Max) and the Arnold plugin for that application (MtoA, MAXtoA).

For example, let’s suppose you want to render Maya scene files.

  • You need to install Maya and MtoA on each render node.
  • You don’t need Maya licenses for batch rendering, and you don’t need licenses to install Maya on render nodes.
  • You need Arnold licenses, which are a separate purchase. MtoA is free and unlicensed. Arnold, however, does require a license to render without the watermark. You need one Arnold license for each render node (for you CINEMA 4D users, a TeamRender client is an Arnold render node and requires its own license).
  • You need an Autodesk network license server running somewhere (not on a render node).
  • You need to connect Arnold to the Autodesk network license manager, and you do that by setting ADSKFLEX_LICENSE_FILE.

It’s the same thing for 3ds Max and MAXtoA.

[MtoA] Using standins with MASH dynamics


mash_dynamics_w_standin

Here’s a way to use standins with MASH dynamics: instance a low-poly mesh that has its Arnold Translator set to procedural.

  • Use a low-poly primitive as a proxy for the standin
  • In the low-poly primitive Attribute Editor, set Arnold Translator to procedural, and enter the path to the ASS file in the Path box.

arnold_translator_procedural

  • Instance that proxy object with MASH, and apply MASH dynamics

[MtoA] Unable to dynamically load : mtoa.mll The specified module could not be found.


I have another, more general, version of this post here. This one is for new Arnold users with Maya 2017.

Here’s what to do if you get errors like this:

// Error: file: C:/Program Files/Autodesk/Maya2017/scripts/startup/autoLoadPlugin.mel line 32: Unable to dynamically load : C:/solidangle/mtoadeploy/2017/plug-ins/mtoa.mll
The specified module could not be found.
//
// Error: file: C:/Program Files/Autodesk/Maya2017/scripts/startup/autoLoadPlugin.mel line 32: The specified module could not be found.

Check if your processor supports SSE4.1

As of Arnold 4.2.16.2, the SSE requirement is now SSE4.1

If this is the first time you’ve tried to use the Maya to Arnold (MtoA) plugin, then check whether your processor supports SSE4.1.

Reinstall MtoA

If MtoA used to load, but now it doesn’t, then something happened to the MtoA installation. I’ve seen several cases where DLLs were missing from the MtoA bin folder; most importantly, Arnold itself was missing (Arnold is ai.dll on Windows, or libai.so on Linux, or libai.dylib on OSX).

If you make a backup copy of the MtoA install folder, we can investigate after you fix things by installing MtoA.

Get a Process Monitor log

If a clean install of MtoA doesn’t work (and the computer does support SSE4.1), then “The specified module could not be found.” usually means there’s a missing dependency. Dependency Walker is a decent, if aging, tool for checking out dependencies, but for leaving no stone unturned, I prefer Process Monitor.

The MtoA plugin (mtoa.mll) depends on a handful of files only. Here’s the log of loaded DLLs for a working MtoA:

process_monitor_mtoa

Here’s a quick walkthrough (no audio) of how to get a Process Monitor log:

Force Translate Shading Engines?


You may have noticed the Force Translate Shading Engine option in the export dialog (or in the Feature Overrides section of the Render Settings).
force_translate_shading_engine

Force Translate Shading Engines forces MtoA to export shape nodes with a shader link, like this:

polymesh
{
 ...
 shader "aiStandard1SG"
 declare mtoa_shading_groups constant ARRAY NODE
 mtoa_shading_groups "aiStandard1SG"
}

where “aiStandard1SG” is the name of a MayaShadingEngine shader node.

This allows you to keep your shapes and shaders in separate ASS files. For example, you could have one standin that loads the shapes, and a second standin that loads the shaders. As long as the shape nodes include links to the shaders, Arnold will resolve the links and render the shapes with the right shaders.

Exporting ASS files to specific locations


For the render -rt 1 command, you can specify the output ASS name in
the defaultArnoldRenderOptions.output_ass_filename attribute. For example:

set PRE_RENDER_MEL="setAttr -type \"string\" 
defaultArnoldRenderOptions.output_ass_filename 
 \"c:/Users/StephenBlair/Documents/example\";"
 
 render -s 6 -e 8 -r arnold -rt 1 -preRender %PRE_RENDER_MEL% 
 C:\projects\Support\scenes\_2016\XSI_deformed_logo.mb 

This will export ASS files named “example.ass”.

The scene should have the Frame/Animation ext set to something like
“name.#.ext”. Otherwise, if it is “name.ext” you’ll get filenames like
“example.ass.0004.ass”

output_ass_filename can have environment variables, but you have to be
careful to use forward slashes. For example:

set PRE_RENDER_MEL="setAttr -type \"string\" defaultArnoldRenderOptions.output_ass_filename \"%OUTPUT_ASS_FILENAME%\";" 
set OUTPUT_ASS_FILENAME=C:/Users/StephenBlair/Documents/example 

render -s 6 -e 8 -r arnold -rt 1 -preRender %PRE_RENDER_MEL% C:\projects\Support\scenes\_2016\XSI_deformed_logo.mb

There’s also the arnoldExportASS command, if you want to script the export.

maya -batch -file scene.mb -command "arnoldExportAss 
-f "/home/blairs/Desktop/example.ass" -mask 255 -lightLinks 1 -compressed 
 -shadowLinks 2 -cam sideShape;"

[MtoA] Getting an Arnold log


The Arnold log is important, not just for troubleshooting and getting help from us at Solid Angle, but also for understanding what’s going on when Arnold renders your scene.

To get an Arnold log:

  1. In Maya, click Render > Render Settings
  2. In the Render Using list, click Arnold Renderer
  3. Click the Diagnostics tab.
    mtoa_render_settings_diagnostics
  4. Set the Verbosity level to at least Warnings + Info
  5. Click the File check box to enable file logging (by default, the log file will be saved in the last folder you browsed to with  Maya; see Finding your log file).
  6. If you want to be absolutely sure of where to find the log file, click the folder icon beside the Filename box, and select a location for the Arnold log file.
  7. Depending on what OS you use, and how you started Maya, the log is also output to the Output Window (Windows) or to the terminal (on OSX and Linux if you started Maya from a terminal)

For batch rendering, Arnold log messages go into mayaRenderLog.

  • [Windows] %USERPROFILE%\Documents\maya\mayaRenderLog.txt
  • [OSX] ~/Library/Logs/Maya/mayaRender.log
  • [Linux] ~/maya/mayaRenderLog.txt