Cool things in XSI no one knows!


These arejust some tips not really things in XSI necissarily…

  • boolean is bad. dont do it unless you have to. (learned it the hardway)
  • Buy a keyboard, do not try to do 3d wtih a laptop keyboard, it just doesnt work. (like if you want to meshsmooth something and its pitch dark in your room, you have to go turn on the numkey, and hten search for the lil + sign in the middle of your keyboard on the side of the 1/8th of inch tall keys… then you have to remember to turn it back off[always forgot that part])


As a technical animator type, here a list of my favorites… drag and drop between parameters:

  1. To copy an fcurve from one param to another, open the source and target PPG, then drag and drop the animation button icon from source to target. Animation copied.

  2. To set an expression linking one param to another, drag and drop the empty param button from source to target. Target has a direct expression set to source.

  3. What if you have animation on the source, but wish to set an expression of source to target? Right-click on the target and open the expression editor. Make sure the expression editor turns gray by moving the cursor over the text entry box, then drag and drop the animated parameter into it.

  4. Want to insert or replace a parameter in an expression? Insert your cursor into the expression editor or select a block of text. When you drag and drop a parameter into the expression editor, it will replace any selected text or insert where the cursor is.

  5. Copy one expression onto multiple params? Open the source PPG and lock it. Open your multi target PPG and lock it. Drag the source param onto the multi target to set the intial expression. This only sets an expression on the first param of your multi stack. Right-click on that param and copy animation. Paste animation back onto that same param, that pastes onto ALL params in the multi PPG.


I can’t believe no one has mentioned it yet:

-Pivot point:

In any transformation mode, hold alt and click a component. You can now use that component as a center for transformation. Click the little arrow for more options. This works with well with manipulators active (a must) and component reference axes (right click the ref button). I can’t model without this.

-Last property:

Control+end pops up the last operator in the current stack of an object. I use this a lot.

-Curve fit to region:

Really obsure, but shows the detailling in the development of XSI: in the fcurve editor, if you want to fit a selection of points, just rectangle selecting the keys and using fit will fit the whole curve. If you use the region select (i forget the shortcut), and then fit, you will fit only those keys.

-Symetrical selection:

Achieved through use of the f11 selection tool (paint) and the sym button.


Careful with yer terminology there. Link with is a different beast altogether, and creates a n fcurve relationship between parameters. It’s not the same as =.

I do this by cutting the animation, dragging the param like in the above method, then pasting the animation back onto the original source…just to illustrate the 101 ways to do things quickly in xsi.

They should totally be paying me. (totally!!11)


For the newcomer to XSI (like me) I found the free video tutorials at Mesmer very instructive and illuminating. And it gives everyone waiting for their XSI 4.0 (Fnd) something to do :thumbsup:

Otherwise - awesome thread! Keep it up!


Simple (or complex) mathmatical functions are valid in a lot of places, especially in transform parameters. 360/(number) is especially useful when doing radial arrays.


Silly one but not everyone have noticed this, if you right click the Selection button in the Select menu it will open a list to quick access some usefull things like Kinematics, Surface Shader, Last Op in Stack, Viewing Properties among other things.

If you use the Move Point tool (M key) with the Proportional Mode tuned one you can use the R key in conjunction with the MMB to set the distance limit, also if you right click the Prop button in the Transform toolbar it will open the properties for the Proportional tool.

This one is really silly and can easily be found on the manuals but I think it haven’t been mentioned so far so here it goes. Using the B key (Manipulator) you can hit the Tab key to cycle between the avaliable manipulators for the selection, usefull when dealing with lights.

Middle Mouse Button (MMB) in any menu button will repeat the last action done in it.

When using the Split Edge tool ([) if you click MMB it will split in loop.

Actually just keep tuned in the L, M and R icons below you’re play controls to see the options for the tools you’re a using.



To do a quick uniform numerical scaling Shift+rightclick just below the S in the Transform Panel and enter your number in any field.

To enable shadows for spotlights in a v4 viewport go to Camera Icon above the view -> Properties… -> scroll down to Camera Display -> Switch on Realtime Shadows.


 CreatePrim "Grid", "MeshSurface"
 SetValue "grid.grid.ulength", 75
 SetValue "grid.grid.vlength", 75
 CreatePrim "Cube", "MeshSurface"
 SetValue "cube.kine.local.posx", 7
 SetValue "cube.kine.local.posy", 11
 DeleteObj "B:light"
 GetPrimLight "Spot.Preset", "Spot"
 SetValue "Spot.kine.local.posx", 40
 SetValue "Spot.kine.local.posy", 35
 SetValue "Spot.kine.local.posz", 10
 SetValue "Spot.light.soft_light.shadow", True
 SetValue "Camera.camdisp.rtshadowenable", True
 SetDisplayMode "Camera", "OpenGL"
 SetValue "Camera.kine.local.posx", 17
 SetValue "Camera.kine.local.posy", 20
 SetValue "Camera.kine.local.posz", 12
 SetValue "Camera_Interest.kine.local.posy", 5
 SetValue "Camera.camvis.gridvis", False
 SetValue "Camera.camvis.objlights", False
 CreatePrim "Sphere", "MeshSurface"
 SetValue "sphere.kine.local.posx", -3
 SetValue "sphere.kine.local.posy", 6
 SetValue "sphere.kine.local.posz", 2


I just noticed that this works with Sheep’s/JacO’s circular virtual slider. Shift-RMB to sellect all 3 fields, circle with the LMB to alter the value. Only one value will alter whilst circling, but when you release you mouse button it is applied to the other two fields as well.


Instanced models are your friends aswell , when modeling a character you might want to detach, merge the mesh , when you do so xsi creates a new polymesh and deletes the old (if you so choose) , well just drag and drop the new polymesh into the now empty Model structure and it will appear inn the instanced Model structure aswell , so no need to set it all up again …



another silly one… but I just found out about it yesterday… :slight_smile:

  • if you want to split an edge, and create a loop, just select the edge, and choose
    poly_mesh>split edge with split control … now just turn on "parallel edge loop, and ajust
    the slider to locate the new looop… OR is you wish to split it in the middle, just select an edge,
    and <shift> D, then check the parallel edge loop, and set the slider for how many subdiviions
    you want…

  • another little short-cut, when adding edges, if you click <ctrl> when adding edges (\ tool)
    it will create it in the middle of the edge…

  • oh… and just that you’ll know… when you select a point/edge/face and <ctrl> + D to duplicate it, XSI will add an Extrude op for it… so you can open it from the object’s stack,
    and you got the full extrude dialouge box there…

before yesterday, I used to select all the edges, and then split them… to create a new loop…

  • if you copy (<ctrl> +C ) or cut (<ctrl>+X) and object, then select another object, and paste (<ctrl>+V) it will transform the copied object to the second object’s location, and make it a child of that second object.

  • you can right click the local transform from the kinemtics folder, “copy all animation” and
    “paste all animation” to another object’s local transform…

hope my tips helped at least one person … hehe


in any text field, assuming you have multiple selections, not only you can type simple maths operations, you can also use incremental linear and random values with L and R and indicating ranges for the values.

select 10 cubes, type in the Y translation box L(2,20) and, according to the order of selection the first will be moved up by 2, the second by 4, the third by 6 and so on.

typing R(1,10) will assign a random value inside that range.


When working with spot lights you can use the following shortcuts to tweak different parameters:

B then Tab activates the Light manipulator
Control+Click on the outer ring of the light cone toggles Light Falloff
Control+Shift+Drag in the middle of the light cone controls the distance of the light cone
Click+Drag in the Spread area (Yellow cone) will set the spread angle
Click+Drag in the white lines of the light cone will set the cone angle
Alt+Left and Right Arrows will toggle between Light and interest

Control+’: Closes the PPG under the mouse pointer
Hitting Enter with something selected will open it’s PPG

Alt+1: Toggles COG
Alt+2: Toggles Proportional Mode (Prop)
Alt+3: Toggles Symmetry Mode (Sym)
Alt+4: Toggles Parent/Object
Alt+5: Toggles Reference
Alt+6: Toggles Plane
Alt+7: Toggles Global
Alt+8: Toggles Local
Alt+9: Toggles View

J: With a projection selected tweaks the projection
Shift+J: With an object selected hides it’s projections


Blending two shaders with a weight map

It took me a while to work this one out. I thought I could use the weight map in the “weight” slot of a mix2colours node, unfortunately this always gave odd results(seemed to override the image maps and just used the original colours from the Mix2colors node), so instead I used a gradient mixer with the weight map plugged into the Input slot and each Phong node plugged into a colour input.

The weight map is extracted using a Map_lookup_color node.


Displacement maps.

In XSI by default black is the neutral colour on a displacement map, white is the maximum displacement, and mid-grey is halfway between.

This means that by default any displacemnt map will always enlarge the volume of the surface it is applied to, with areas of black having the least “enlagement”.

If you want a single displacement map to displace “in” as well as “out”, it can be done with a Scalar_Math_Basic node with the operation set to Subtract and a value of 0.5 in Input2.

Now mid-grey will be the neutral area of the map, helping to keep the original surface volume.


I suggest not to use the scalar math basic but rather use a change range.
old value range 0, 1, new value range -1,1

subtracting 0.5 you end up with the top value being different from the expected 1 when you need to do the maths for other displacments that don’t need the range conversion and would force you to either adjust the geometry approximation value for the object or overload other trees that wouldn’t need it.

both things can become tricky with groups and overrides.


I also have a very cool thing. You know how often you have to change your camera settings from NTSC to PAL or the otherway around or you want a different Default value for the Bevel command. You can change all the Default values of most of the Tools in XSI.

Here is how:
Go to this folder:
C:\Softimage\XSI_X.X\Data\DSPresets\Primitives simply uncheck the Read Only of the Preset you want to change. Now launch XSI change the values of that preset you made writable and save the values in the ppg and overwrite that Preset. Don’t forget to make it read-only again and make a copy of the Preset before doing this



**PageUp button: Opens the most recent PPG, then browses back through your PPG history.
PageDown button: Moves forward through your PPG history.

CTRL-~ Closes current active PPG or view.

CTRL-Shift-Right-Click on a PPG title bar gives you access to the PPG source SPDL.

**-All time favorite.


Something I appreciate is the precision you have over converting gray values into worldspace distance.

Black = 0 SI units
White = 1 SI units

Displacements can be thought of as a push operator where the numerical value is distance in SI units in the normal direction (multiplied by the scale of your object center). So black = 0 distance travelled while white = 1 SI unit. Try it with a checkerboard texture in profile.

Use a Math>Change Range node if you want to precisely tune quantity and direction.
Make sure your object center scale = 1. Example:

 Old Range Start: 0
 Old Range End: 1
 New Range Start: -1
 New Range End: 1

This pushes black -1 SI unit into the surface, and white out 1 SI unit.

To push in 2 units, and out 5 units, set the range to the following:

 Old Range Start: 0
 Old Range End: 1
 New Range Start: -2
 New Range End: 5

You can also invert the values:

 Old Range Start: 0
 Old Range End: 1
 New Range Start: 1
 New Range End: 0


If you leave render region active (Q) and capture viewport it makes nice quick rendered preview instead of OGL only.