So far we have created a set of lights, and created envelopes for intensity and color for each of them. We'll now add expressions to drive the envelopes.
In graph editor, select the previously saved "Rig Intensity" channel bank to load the intensity channels for all the lights. Now select the Expression tab underneath the graph window, and click "New". Enter "Intensity Follow" for the name, and delete the contents of the "Value" box.
Click on the "ControlSkyLight.Intensity" channel, and use the right mouse button menu to select the option "Append to Expression". Now select all the channels by using the left mouse button and shift key, apart from "ControlSkyLight.Intensity", and click "Apply" to set this expression for all the lights apart from ControlSkyLight.
Repeat this process for the other channel banks that we saved earlier, calling the expressions "Red Follow", "Green Follow", and "Blue Follow". Remember to click "New" before entering the name for the new expression. If you mistakenly try to apply any of the expressions to ControlSkyLight, Lightwave will refuse, telling you that it has detected a loop in the expression.
You should end up with the graph editor looking something like this:
Setting Parent and Target
Go back into Spreadsheet, and change the property bank to "Motion Options: General". Click on ControlSkyLight's entry for "Parent" and shift click on SkyLight(15)'s entry.
By now selecting "LightRigParent" for any one of the lights by clicking on the small black arrow in the selected entry, it will also set the Parent property for the other lights as well. Set the Target property for all the lights to "LightRigTarget" using this method.
Setting parent and target
While we're here, change the property bank to "Light Properties: Basic" and for all 16 lights set the Light Type to "Spotlight". Also, set the property bank to "Light Properties: Shadow" to change the Shadow Type to "Shadow Map".
As a final touch it is usually a good idea to parent the "LightRigTarget" null object to the "LightRigParent" unless you want the lights to track an object. Also, if you wish, you can set up expressions for cone angle, and soft edge angle in a similar way.
A great idea to make everything a bit more user-friendly is to set up a bank of sliders to control the main parameters of ControlSkyLight.
To do this, use the Generic plug-in "Add Slider Bank", and select the appropriate channels of ControlSkyLight to use as sliders. By clicking on the Sliders tool underneath Move, Rotate, Size, etc., you can move, resize, and adjust the sliders on the panel you just created.
The final lighting rig with sliders
Here's an example of the Mitsubishi model (156,072 triangles) lit by this rig.
(15 sec to render)
These are four examples of using 40 lights created by luxigons from a tesselated sphere.
30° cone angle(28 sec)
60° cone angle(26 sec)
60° cone angle, raytrace instead of shadow map(129 sec)
30° cone angle, raytrace, spin light motion blur trick(435 sec)
For comparison, I rendered a version with full radiosity, and it took two seconds longer (see below) than the raytraced motion blur rig. So by using the rig, you get near radiosity quality with the added bonus of motion blur! Admittedly the shadow of the car is somewhat lacking, but for my Mitsubishi composite I did a seperate shadow pass, so this wasn't a problem:
Full radiosity (437 sec)
A great way to use this lighting rig, is to use it as a realistic alternative to setting an Ambient value. By using a fewer number of lights and combining them with one strong key light, the lighting rig acts like a fill-in light, and it can give that required extra dose of realism. It also hides many of the problems with shadows that are visible in the above images.
This was the final method of lighting for the Mitsubishi composite animation. While not a perfect lighting model, it gets the job well, and done fast - ideal for those tight deadlines.
You can download both lighting rigs and the luxigon models below.