Testing Recursive Instancing

I’m moving the scenes up to LightWave 11 and testing out the functionality of LW11’s instancing. In the opening shot where the camera zooms through the vast Instance Generator Lattice there will be rows of Autiton instances (1.5 million of them) walking through all the corridors of the Instance Generator Lattice.

In the preliminary DV version of the short (on the video page) I just used rough low res Autiton stand-ins that simply slid along the corridors. The single Instance Generator model had a complete row of static low res Autiton stand-ins on another layer. That row was animated to slide forward and was duplicated and rotated to make six sliding rows in Layout. Then I used HD_Instance to create thousands of instances of that Instance Generator hierarchy. For the DV version that was sufficient since there wasn’t really enough resolution to see the individual Autitons very well anyway.

For the director’s cut HD version however I want to use fully articulated walking Autiton instances in all the corridors. To pull that off I need to be able to animate one Autiton with a walk cycle and then instance that walking character to create all the Autitons walking in all six rows of each Instance Generator. I then need to instance that Instance Generator along with its Autiton instances through the entire Instance Generator Lattice. This requires recursive instancing (being able to instance instances rather than just plain geometry). Luckily Denis Pontonnier’s DP_Instancer can do just that, bring recursive instancing to LightWave 11’s instancing.

The only potential problem is that DP_Instancer can only instance instances directly, meaning it can instance instances of the object directly being instanced, but not instances that may be further down in the hierarchy being instanced. To overcome this issue I had to figure out a way to create a full hexagonal cluster of animated instances as one object that could then be instanced to create the lattice.

I did this by creating one stand-in Autiton for the test on one layer and on another layer I put six points in a hexagon where the first Autiton would be located at the start of each of the six corridors. I brought this into Layout and applied a particle emitter to that hexagon of six points. I set the emitter to generate six instances exactly every second (24 frames) by enveloping the birth rate to step from 0 up to 6 every 24 frames with generate by set to frame. I then set the motion explosion to 0.25 m/s. This generates a new set of six points every second and has them all moving away from the center in six straight rows at the speed I needed. I could then attach instances of the walk-cycle Autiton (just using a static low res stand-in in this initial test) to each of these points. To orient the Autitons all facing away from the center I modeled it facing down the Z- axis. Then when applying DP_Instancer to the particle object I set the rotation to align to target and targeted the origin of the particle object. This points them all to the center and because they were modeled “backwards” they end up facing away from the center.

This way I’d have an object full of six rows of animated Autiton instances that I could then instance over the entire lattice. To do that I applied another DP_Instancer to a large cube made of points where the center of each Instance Generator hex cluster should be located. I set this to instance the particle emitter object that contains the Autiton instances. This generates the entire lattice of animated Autiton instances.

BTW: I’m also using this post to test and style the gallery format posts. In future posts I’ll test and style additional post formats as needed.

Leave a Reply