Ok heres another area in XSI with lots of secrets that are not well known: springs.
In general there are 3 different kinds of springs in XSI and they all are good depending on what you are doing:
======== Spring Type 1: Rigid Body Spring ==========
located: Simulate > Rigid Body > Rigid Constraint > Spring
> These springs are bests for dynamics like robots or plates of lava or anywhere where you need bi-directional control like a necklace on a character or hanging telephone pole.
> You can also wire the springs into explosions and stuff like that to make chunks of debris stick together.
======== Spring Type 2: Evolve Op Spring ==========
> This is the newest Spring in XSI it was introduced in 4.2. The main purpose of this spring is for secondary animation that works over a renderfarm.
> located: (draw a linear curve for tail shape) > Animated > Skeleton > Create Tail.
> also located in Essentials + Advanced Biped Guide if you duplicate off the tail bone to create a tail or use a stomach.
This spring is very powerful having lots of options to blend between animation and simulation. It also has a bunch of different caching modes so you can do stuff like scrub backwards through your dynamics.
You can also apply this spring on single objects through scripting:
//— start jscript here
[font=Courier New]var mysource = ActiveSceneRoot.AddActionSource(“MySpringSource”); [/font]
[font=Courier New]var a = CreatePrim(“sphere”, “NurbsSurface”) [/font]
[font=Courier New]var b = CreatePrim(“Sphere”, “NurbsSurface”) [/font]
[font=Courier New]Translate(a,10,10,10); [/font]
[font=Courier]var opcoll = ApplySpringOp [/font]
[font=Courier New](a+","+b, // simulated object, control object [/font]
[font=Courier New]40, // mass [/font]
[font=Courier New]5, // stiffness [/font]
[font=Courier New]3, // damping [/font]
[font=Courier New]mysource.FullName // spring simulation cache [/font]
[font=Courier New]); [/font]
[font=Courier]InspectObj(opcoll(1));[/font]
//— end script here
Make sure you experiment with Rest State and Initial State its on a bit of a diagonal by default.
======== Spring Type 3: Special Projects Spring ==========
A couple years ago Special Projects put a spring operator in XSI scripting to help solve some of the challenges at high end accounts. That spring operator is still in XSI and even has some new features not well known.
> located: Scripting (ApplyOp)
In general this spring carries bounce a lot more than a textbook spring algorithm. The only disadvantage is its live like a videogame so you need to plot if you are going to send it to a renderfarm.
The new features in 4.0 were:
> mute slider: Will blend between the spring being active and inactive. So you can blend out springy animation.
> init: When active drains all the energy out of the simulation. So if you have a very bouncy system you can blend the mute to 0, key init on for one frame and then when you blend back out you wont have the carry over of all the bouncy energy.
//— start jscript here
[font=Courier New]var a = CreatePrim(“Cube”, “MeshSurface”) [/font]
[font=Courier New]var b = CreatePrim(“Cube”, “MeshSurface”) [/font]
[font=Courier New]a.length = 3;[/font]
[font=Courier New]b.length = 3;[/font]
[font=Courier]var op = ApplyOp(“Spring”,a +";"+b); [/font]
[font=Courier]InspectObj(op);[/font]
//— end script here
Hope people find this useful,
Michael Isner