The case of the pass that wouldn’t duplicate


In this case, CTRL+D on a pass would appear to work, but the pass wouldn’t show up in the explorer.

The problem turned out to be in the Duplicate options (the Hierarchy pref was set to None: hat tip to Chinny for spotting that). To duplicate passes, Hierarchy has to be set to Share Parent.

We confirmed this by looking at what was logged in the script history.

The problem is the 4th argument to Duplicate. That’s the Hierarchy argument, and 0 means siNoParent.
So the Duplicate command was creating a pass with no parent, so the new pass was just sort of “floating” around in the scene, until it was discarded during a save operation.

// Duplicate a pass but don't give it a parent
var x = Duplicate("Passes.Default_Pass", null, 2, 0, 1, 0, 0, 1, 0, 1, null, null, null, null, null, null, null, null, null, null, 0);

// It was created, but not placed in the pass list:
LogMessage( x.Count );
LogMessage( x(0).FullName );
InspectObj( x(0) );

Checking the version of JScript available in Softimage


LogMessage(GetJScriptVersionInfo());

function GetJScriptVersionInfo()
{
    var s;
    s = ""; // Build string with necessary info.
    s += ScriptEngine() + " Version: ";
    s += ScriptEngineMajorVersion() + ".";
    s += ScriptEngineMinorVersion() + ".";
    s += ScriptEngineBuildVersion();
    return(s);
}

On Linux:

// INFO : JScript Engine Version: 5.1.4411

On Windows:

// INFO : JScript Version: 5.8.16762

Friday Flashback #30


The noIcon_pic shorts demo from the SIGGRAPH 2004 User Group:

Some background on how the noIcon shorts came to be:

Interview With Mark Schoennagel
by Raffael Dickreuter, Bernard Lebel, Tülay Tetiker
September, 23rd, 2004,

What about those noIcon boxers at the Siggraph 2004 User group? Any chance we can get some of these? Tell us how you came up with that idea.
How was that for ridiculous? Dropping my pants on stage… I never thought I’d do that… well, while working anyway! Actually Gino Vincelli’s wife made them. Gino works for us in Montreal and is the voice on many of the training materials we make. His wife works as a fashion designer and can print just about anything, so they made these boxers! I hadn’t really decided if I was going to actually drop through on stage, or how, but somewhere during the second demo I thought “heck, just use primitive man and put the “no icon” texture on it.. then … well.. drop your pants.” So that’s what I did. Nice ass I got there huh? I think Chinny thought so, because he forgot to play the next video clip. Maybe they’ll be on the web store by popular demand, or maybe a limited tradeshow edition – we’ll see.

From an interview with Gino Vincelli (ATC Manager and Senior Instructor of Softimage)
by Raffael Dickreuter, Will Mendez, Bernard Lebel
February, 10th, 2005

Can you tell us how you got the idea for the no-icon shorts?
Well when you work at Softimage and within the 3D community, you’re generally surrounded by weird people and it rubs off on you! Ha! Ha! In XSI, as you know, if you forget to save your images when creating a new database you will end up with characters or objects “wearing” the no-icon default texture. I just thought it would be cool to produce real no-icon clothes such as the shorts as if whoever was wearing them had forgotten his or her textures at home. I know… way too much time on my hands… I got a real kick out of seeing Mark Schoennagel drop his pants to show off the no-icon shorts at the Siggraph user group. The guy is gutsy!

Finding commands you didn’t know about


Here’s a post I recovered from my old and now deleted XSI_Support_Blog page on the Softimage wiki.

XSI ships with over 23002600 commands. Not all of them are logged in the script editor, and not all of them are documented. Here’s a crude way to search for commands with certain strings in their names.

var c = Application.Commands;
LogMessage( c.Count );

oEnum = new Enumerator( c  ) ;

// Search for commands whose scripting name
// contains a specific string of characters.
// The search string is specified between the forward slashes.
// 
var re = /SetGlobal/ig;

for (;!oEnum.atEnd();oEnum.moveNext() )
{
	var oSelItem = oEnum.item() ;
	if ( oSelItem.ScriptingName.match( re ) )
	{
			LogMessage( oSelItem.scriptingname );
			//EditCommand( oSelItem.scriptingname );

	}
} 

Here’s a related post from the Softimage community forumAREA.

If you want to find out a little more about an undocumented command, uncomment the EditCommand call to pop up the Command Details dialog box.


The case of the MatchMover license problem


In this case, the customer was able to run the main application (Softimage), but MatchMover reported a fatal license problem:

License was not obtained
Tried ADLM 2011 (590D1 21012.0.0.F), error 43

License method:
environment variable MAYA_LICENSE_METHOD='network'

Product choice:
environment variable MAYA_LICENSE='adlm-590d1-2012.0.0f'

License method:
environment variable MAYA_ALT_EN is not set

In similar 3ds Max-related cases, the error looked like this:

License was not obtained
Tried ADLM 2011 (128D1 21012.0.0.F), error 43

License method:
environment variable MAYA_LICENSE_METHOD='standalone'

Product choice:
environment variable MAYA_LICENSE='adlm-128d1-2012.0.0f'

License method:
environment variable MAYA_ALT_EN is not set

In these kinds of cases, the first thing to try is setting the ADSK_MATCHMOVER_LICENSE environment variable. This environment variable can have the following values:

  • SOFTIMAGE
  • MAYA
  • 3DSMAX
  • 3DSMAXDESIGN

If that doesn’t work, then you’ll need to do some more troubleshooting.

If you create a c:\flexlm folder, MatchMover will create the log files adlm.log and MatchMoverLicense.log in the c:\flexlm folder.

adlm.log is the more useful of the two, and will contain log entries like this:

17200	2011/06/22	16:50:37	Reason=Fatal error
17200	2011/06/22	16:50:37	ComputerName=MTLEXAMPLE
17200	2011/06/22	16:50:37	OS=6.1.7600.
17200	2011/06/22	16:50:37	File=AdlmIntLicense.cpp,Line=612
17200	2011/06/22	16:50:37	VendorID=6 [ADLMPIT]
17200	2011/06/22	16:50:37	VendorError=12 [The root information in Product Information Table XML file is missing]
17200	2011/06/22	16:50:37	Reason=Fatal error
17200	2011/06/22	16:50:37	ComputerName=MTLEXAMPLE
17200	2011/06/22	16:50:37	OS=6.1.7600.
17200	2011/06/22	16:50:37	File=AdlmIntLicense.cpp,Line=613
17200	2011/06/22	16:50:37	AdlmIntError=25 [The product key was not found]

If you see the errors [The product key was not found] and [The root information in Product Information Table XML file is missing], then see this post for more information on fixing the problem.

MatchMoverLicense.log typically is just pretty much the same text that you saw in the popup message dialog boxes:

====== BEGIN MAYA LICENSE DIAGNOSTICS Wed Jun 22 16:50:37 2011 ======
623848 ::: 2
623905 
623911 
623907 
623909 
623801 ::: m2010.016 win64, built Mar  2 2011 00:27:42
623802 ::: links in AdLM but not Flint
623833 ::: 'adlm'
623858 ::: 'en_US'
623912 
623913 
623824 ::: MAYA_LICENSE_METHOD 'standalone'
623823 ::: MAYA_LICENSE 'adlm-128d1-2012.0.0.f'
623826 ::: MAYA_ALT_EN
623830 ::: MAYA_LOCATION 'C:/Program Files/Autodesk/MatchMover2012'
623866 ::: 'C:/Program Files/Autodesk/MatchMover2012/adlm/en_US'
623846 ::: AdLM 4.0.35.0 (A035) win64
623807 ::: standalone MA 128D1 2012.0.0.F
623109 --- MA 128D1 2012.0.0.F 25
623837 ::: 0
623834 ::: 0
623838 ::: 
623805 ::: 
====== END MAYA LICENSE DIAGNOSTICS Wed Jun 22 16:50:37 2011 ======

A note about those MAYA env vars. You cannot override them by setting them before you start MatchMover. MatchMover appears to set them itself. For example, with ADSK_MATCHMOVER_LICENSE=3DSMAX, MAYA_LICENSE_METHOD comes from the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\3dsMax\14.0\MAX-1:409\ADLM\Type, where Type=2 is Standalone and Type=1 is Network.

Finally, to get more diagnotics (like what license MatchMover is actually trying to use), open a Command Prompt and run these commands:

cd C:\Program Files\Autodesk\MatchMover2012
set FLEXLM_DIAGNOSTICS=3
MatchMover.exe

You’ll get some pop-up dialog boxes with messages like this:

---------------------------
FLEXible License Manager
---------------------------
FLEXnet Licensing checkout error: License server system does not support this feature.
Feature:       85700MAXDES_2012_0F
License path:  @127.0.0.1;mtl-gohabsgo;C:/Program Files/Autodesk/MatchMover2012\*.lic;c:/flexlm\maya.lic;
FLEXnet Licensing error:-18,147
For further information, refer to the FLEXnet Licensing documentation,
available at "www.flexerasoftware.com".
---------------------------
OK   
---------------------------

The case of the slow render, low CPU usage, and framebuffers


In this case, a customer reported low CPU usage and long render times for a pass that had many framebuffers.

After some investigation, we found that disabling On-Disk Framebuffers (mental ray settings, Framebuffer tab, under Advanced Settings) made a big difference:

// Disable On-Disk Framebuffers so framebuffers are stored in memory
SetValue("Passes.mentalray.VirtualFramebuffers", false, null);
OpenView("Render Preview", null);
// INFO : RC   0.4  info : wallclock  0:00:07.27 for rendering


// Enable On-Disk Framebuffers
// Slows down the render, and CPU usage is much lower on all cores
SetValue("Passes.mentalray.VirtualFramebuffers", true, null);
OpenView("Render Preview", null);
// INFO : RC   0.4  info : wallclock  0:01:15.31 for rendering

On vacation


On vacation this week. Not going anywhere, just hanging out in Montreal.
I pre-scheduled my blog posts for the week, so as long as the weather is good I’ll try to stay away from the computer 😉

ERROR : 21000-REND-RegenerateMaps – Unspecified failure


Third-party renderers, like Arnold or Maxwell, don’t support rendermap so you’ll get this error if you try to do a rendermap. In a recent case, the customer told us that he figured out that “the Maxwell render add-on was causing a conflict. Any old models I made with the add-on installed were affected, but new models created without the add on will bake textures just fine.”