Friday, January 11, 2008

Processing tokens

Essentials and Advanced include batch processing licenses. Essentials comes with four, and Advanced comes with eight.

To use a batch processing license, you use the -processing command-line option. For example:

xsibatch -processing -script"
Processing licenses cannot be used to do any rendering (but they can be used to export .mi2 files).

Processing licenses allow you to have up to eight (Advanced) or four (Essentials) computers running batch processing jobs. Batch processing can includes things like exporting .mi2 files, exporting rib files, baking, committing, asset management, custom render management/submission, dynamics, ... anything in a complex pipeline that requires automation and remote processing, but not rendering.

For more information, see Understanding XSI Licensing on the XSI wiki.

Friday, December 7, 2007

Finding all constraints

Someone recently asked about finding all the constraints in a scene. My first thought was to do this:

var x = new ActiveXObject( "XSI.Collection" );
x.Items = "*.kine.Constraints.*";
But it turns out that the '''Local Transform''' is also nested under kine.Constraints.

So then I considered using a filter. There is a built-in filter Obj_w_Constraint finds all objects with constraints. So you could use that to filter a list of all objects, and then go through the collection of objects with constraints, and use Kinematics.Constraints to build a collection of all the constraints.

As a side note, here's the implementation of the filter:
Function ObjWConstraint_Match( in_context ) ObjWConstraint_Match = false
set in_obj = in_context.GetAttribute( "Input" )
if IsA3DObject( in_obj ) then
ObjWConstraint_Match = in_obj.IsNodeAnimated( siConstraintSource, true )
end if
end Function