Softimage 2010 SP1 is now available


To all Softimage 2010 customers.

Softimage 2010 SP1 is complete, separate installation. You don’t have to remove Softimage 2010 first.
SP1 will install in its own folder, and create its own User location.

SP1 runs using your existing 2010 license.

If you have a network license:
When you install 2010 SP1, enter the product key 591B1 and the serial number 000-00000000.

If you have a standalone license:
When you install 2010 SP1, enter the product key 590B1 and your 2010 serial number.

Using WScript.Shell to get environment variables


The docs say that XSIUtils.Environment gets system environment variables, but I think it is more accurate to say that it returns env vars of the XSI.exe process.

WScript.Shell is another way to get at the environment variables. The WshShell object’s Environment property is a collection of environment variables. For example, this snippet shows how to create a WScript.Shell object, and then check the value of the TEMP environment variable. Note that XSI.exe creates its own folder under the location pointed to by the User TEMP environment variable.

// Get WshShell object.
var oWshShell = new ActiveXObject ("WScript.Shell");

var oEnv = oWshShell.Environment("Process");
LogMessage( oEnv("TEMP") );

// INFO : C:\Users\blairs\AppData\Local\Temp\XSI_Temp_17480

var oEnv = oWshShell.Environment("User");
LogMessage( oEnv("TEMP") );
LogMessage( oWshShell.ExpandEnvironmentStrings("%USERPROFILE%") );

// INFO : %USERPROFILE%\AppData\Local\Temp
// INFO : C:\Users\blairs

You can also loop over the collection:

var oEnv = oWshShell.Environment("System");
logenv( oEnv );

function logenv( o )
{
	oEnum = new Enumerator( o ) ;
	for (;!oEnum.atEnd();oEnum.moveNext() )
	{
		var oSelItem = oEnum.item() ;
		LogMessage( oSelItem  );
	}
}

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

    -or-

  • 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.