XSI.FIE.US

FIE Orientation Driven Shapes

Introduction

XSI 4.0 and 4.2 both exhibit problems with orientation linked shapes, when they are contained within a referenced model. Often, updating the reference will break all the links, apparently unrecoverably. Due to the way in which orientation linked shapes were implemented in XSI, there is no simple fix to this problem. Since orientation linked shapes are important to character rigging, I implemented an alternate system of linking shapes to orientations. "FIE Orientation Driven Shapes" is my addon to fix this problem.

Install Instructions:

drop the addon into your XSI window like any other add on.

Usage Instructions:

you will find a new toolbar called "FIE Orientation Driven Shapes" under Application->Toolbars. Open it and keep it handy.

On the mesh you wish to deform, create a point cluster of points you wish to drive by an orientation of another object (target object).

Change your construction mode to "Shape Modeling" or "Secondary Shape Modeling".

Orient the target object into its target orientation.

Model your shape.

click the "Add Ori Shp Clp" button on the toolbar.

you will enter a pick session, looking for an object with a point cluster on it. Pick such an object.

You will enter a pick session, looking for a point cluster. You can just hit the "Clusters" button in the selection panel and pick it from the list, or you can find it through the explorer and select it.

Next you will enter a pick session looking for the target object. Pick it via the explorer or the viewport.

The shape will be created, added to the mixer and connected to a scripted operator. To access the parameters on the scripted op, select the shape in the mixer and open its property page (hit enter). There will be a tab for the scripted op called "CalcOriShpWgt".

The rotation will already match the rotation of the target object. Don't edit these values unless you want the shape to center on a different target orientation than you've already specified.

You will have access to the falloff attenuation value. This affects the falloff of the shape as the target object rotates away from the target orientation. Adjust this value to your liking. At 1.0, the falloff continues all the way around to the opposite poll. At 0.5, the falloff completes half way around the rotation sphere. At 0.25, the falloff completes a quarter of the way around.

You will have access to the falloffInterpolationPower. This affects the profile curve of the falloff. At 1, its a linear falloff. At three, its cubic in nature (nice smooth in and out). The default value is 3.

Make as many Orientation Driven Shapes as you like by re-orienting the target object, modeling a shape, hitting the "Add Ori Shp Clp" command again, and adjusting the parameters.

Lastly, note that the compound clip created by XSI to house the shapes is set not to normalize by default. In otherwords, its additive. So if oriented shapes overlap, they'll add up to double deformation. This may not be desirable in some cases. You can change this behavior by hitting Mix-->Shape Mixer Properties... in the mixer when you are inside the compound clip for the cluster. Turn on its "Normalize" parameter check box.

You can also set an existing shape clip up as driven by an orientation by selecting it and then hitting "Set Shp As Ori Drvn" in the toolbar when you have a shape clip selected in the mixer. It will then enter a pick session asking you for the target object. When it is done, you will have the same setup you would if you had used the other command.

Known Limitations:

  1. Currently the only way to change the target orientation of a shape is to manually adjust the targetx, targety, and targetz parameters on the scripted op by hand.
  2. If you want the shape to include secondary shape modeling, you must be in secondary shape modeling mode when you run the command (thanks for milesc for pointing this one out). Future versions of the addon will address this hopefully.

Change Log:

changes since 0.5:

  1. Fixed a bug in which the commands would not apply the operator correctly between models.

changes since 0.4:

  1. Fixed a bug in which negative rotations were nor correctly set in the target values of the operator (duh... somone hit me even harder the next time I do something dumb like that).

changes since 0.3:

  1. fixed bug in which rotations above 360 were not correctly set in the target values of the operator (duh... someone hit me the next time I do something dumb like that).
  2. Added new "setShapeClipAsOrientationDriven" command to set an existing clip in the mixer as an orientation driven shape.

changes since 0.2:

  1. added exponent based interpolation to the falloff, to make it nice and smooth.
  2. added "falloffInterpolationPower" parameter to the scripted operator, for control.
  3. removed scripted op parameters pop up at end of command.
  4. added an object selection at the head of the pick session to make clusters easier to pick.
  5. added basic support for calling the command from other scripts without going into a pick session.

changes since 0.1:

  1. added "FIE Orientation Driven Shapes" toolbar to addon
  2. added "AddOrientationShapeClip" command
  3. moved target rotation from connections to parameters on clip, to variables on the scripted op
  4. moved target falloff from connections to parameters on clip, to variable on the scripted op

Downloads:

Current Version

Version 0.6

Version 0.5

Version 0.4

Version 0.3

Version 0.2

Version 0.1

©2004 Brad Friedman