Using XSICollections to check for character key sets

The IsCharacterKeySet parameter is not [directly] exposed through the Object Model, so you can’t get at the parameter through the Parameters or even NestedObjects. Instead, you can access the IsCharacterKeySet parameter with the GetValue and SetValue commands.

XSICollection does, however, provide an Object Model way to get at the parameter:

LogMessage( isCharKeySet( Selection(0) ) );

function isCharKeySet( o )
	var oColl = new ActiveXObject( "XSI.Collection" );
	oColl.items = o.FullName + ".IsCharacterKeySet";
	return ( oColl(0) != null && oColl(0).Value == true );

Face Robot workflow tips for combining heads with bodies

Courtesy of Mr Jeff Wilson, some tips on attaching Face Robot heads to characters:

“There are a few ways to go about it, depending on the pipeline that you are in.

If you just want to get the end result from Face Robot onto your character and are rendering frames, then the simplest way is to cache the face meshes from FR and bring those caches into your scene file containing the skeleton. This is the most accurate method for getting the animation across. FR ships with Point Oven, but we always used the KP_PointCache plugins from Kai Wolter in production. Kai’s tools write to the PC2 format which both Max and Maya understand. And they are free.

Continue reading

LMTOOLS ignores license path environment variables

Actually, no, it doesn’t. Not by default.

You should select the LMTOOLS ignores license path environment variables check box (it’s on the Service/License File tab of LMTOOLS). This prevents LMTOOLS from reading license server information from the ADSKFLEX_LICENSE_FILE key in the registry.

Letting LMTOOLS read license info from the environment can cause a number of problems:

  • LMTOOLS may spend time trying to connect to license servers that no longer exist.
  • Perform Status Enquiry may show errors that refer to some obsolete software you haven’t used in years (but which used some version of FlexLM).
  • Stop Server may stop more than your local license server. It may also stop any server listed in the registry (like, say, the central license server for the whole company).

Ambient Occlusion number of samples

If the Number of samples is set to 0 for the XSIAmbientOcclusion shader, Softimage 2010 memory usage will go through the roof as soon as Softimage has to render. This didn’t happen in 7.5, so it’s easy to load up an existing scene, open the Material Manager or Render Tree, and then see Softimage hang up while rendering a shaderball. That’s how this issue was originally discovered.

On a related note, here’s a JScript snippet that shows how to find all the XSIAmbientOcclusion shaders and check the samples values.

// XSIAmbientOcclusion Class ID
var sClassID = "{FF66A9F8-BB42-480D-834D-BC5FC6E3AD23}"
var oColl = FindObjects( null, sClassID ) ;

oEnum = new Enumerator( oColl ) ;
for (;!oEnum.atEnd();oEnum.moveNext() )
	var oAOShader = oEnum.item() ;
	LogMessage( oAOShader.Parameters("samples").Value );
//	LogMessage( oAOShader.samples.Value );

No interactive network license available on Vista, Windows 7

When you install Softimage and the license server on the same Vista or Windows 7 computer, you’ll get the “no interactive network license available” error unless you do one of the following:

  • Use the IPv4 address, not the computer name, to specify the location of the license server


  • Install the IPv6 update for the Autodesk Network License Manager.

By default, on Vista and Windows 7, IPv6 is enabled, and when IPv6 is enabled Softimage cannot use the computer name to connect to the license server. This happens only when Softimage and the license server are on the same computer.