Heavy Ordnance: Hypervoxels 2.0 and Lightwave 5.6
By Jon Carroll

One thing that is impractical or even dangerous to deal with on most shoots is firearms. They require expensive insurance, handlers, and even then can still be very dangerous (Witness what happened to Brandon Lee on the set of The Crow). With modern digital effects processes and replica firearms like Airsoft guns, it is possible to use firearms on a shoot without any of the inherent dangers usually associated with them.

Something even more difficult to shot with and around is any type of heavy ordnance, for instance a rocket launcher. In this tutorial I will get you well on your way to producing a good rocket launcher effect using NewTek's Lightwave 3D version 5.6 and Hypervoxels 2.0. Hypervoxels is currently available as a separately purchasable plugin for Lightwave, but its features are being incorporated into NewTek's next release of Lightwave, Lightwave [6]. Hypervoxels, in its current incarnation, uses particles to locate the center of each mass within the volume. You then set the size of said masses and Hypervoxels make a volumetric object on rendering that represents the mathematical volume created by these two pieces of data. The term 'voxel' is a relatively new computer graphics term, meaning 'volumetric pixel'.

I found a Trendmasters toy at a local toy store that pretty accurately duplicates the size, appearance and operation of the U.S. Army's M72A2 Light Antitank Weapon and filmed a friend 'firing' it. I then digitized the footage into my PVR and trimmed it down to the essential cut using the PVR Player software provided with the PVR. DPS products (the Perception or PVR, Hollywood, PVR-RT and the new Reality) are excellent for use with Lightwave because it presents each video clip as a directory filled with an image sequence for that particular clip. Lightwave at present cannot natively load .AVI or .MOV files (but there is a plugin enabling it to read AVIs) so with most other NLE cards, you have to process the video files into an image sequence and load the resultant image sequence into Lightwave (thus taking up hard drive space with large numbers of uncompressed video frames duplicating the contents of your video clip).
 

the dummy LAW model

The first thing I had to do was create a 'dummy' version of the prop LAW. This was made to match the extended length, tube diameter and thickness of the prop.

Next, I loaded my trimmed image sequence as a backdrop in Lightwave, set Lightwave for Wireframe preview, and generated a full-length version of the preview. I then saved the preview to disk, reloaded it and set my background image to be the preview. I did this to increase my preview speed, because instead of having to load each background frame from the Perception, it simply shows the preview version.

I proceeded to build a background (to project the video onto as a texture) and a matte object (just a flat polygon to project the holdout matte onto) and then I tracked in a holdout matte in Effect* (see my earlier tutorial) and generated an alpha channel for the matte object, which I applied as a clip map.

click here to see the scene setup

I then moved the pivot point of the dummy LAW object from the center of the object to the rear and down so the ivot point was placed approximately where the tube rested on the talent's shoulder. As I match-moved the tube to the motion of the tube to that of the prop, moving the pivot point ensured the best duplication of its motion.

click image to see an AVI of the match move

I first roughly did the matchmove (the above preview was made of the rough matchmove)  and then went back and refined it, mostly by adjusting the tension, continuity and bias of the individual keyframes in the LW motion graph.

rocket object                                                                    fin object

I then modeled the LAW rocket itself (excuse any inaccuraces, I couldn't remember hot many fins it had) and made a fin object with its pivot point through the hole where the shaft on the rocket would fit. I loaded the rocket and fin objects into the scene and positioned the fins on the pivot pins on the rocket. I selected the dummy LAW object within the scene and used the motion graph to save its motion, then reloaded the motion onto the rocket and offset the rocket's motion back by the same amount I shifted the pivot point of the tube, thus ensuring the rocket moved properly within the tube during the matchmove. I deleted all keyframes for the rocket object after the keyframe where i wanted the 'launch' to start, and then saved this motion (again) and added a light to the scene and loaded the motion onto the light. By doing this, I could select the light and use Light View in Layout, then boresight (look down the tube of the missile launcher) the motion of the rocket after launch to make sure it was flying straight.

setting up the scene in PS2. click for a larger image.

I started Particle Storm 2 (the full version of the particle system plugin from Dynamic Realities) and started setting up the particle effects. I initally created two particle groups, one for the fire of the rocket exhaust and a second for the smoke trail left by the fire. The fire was set to emit from a section of the inner rocket nozzle I saved seperately for just such a purpose, and after saving the initial object for the fire particles, I set the smoke to be spawned by the fire based on the age of the fire particles, so just before the fire particles started to die they spawned the smoke. I used the following collsion objects: a copy of the body for the LAW and parented it to the copy of the LAW tube in the scene, and a copy of the rocket parented to its equvalent in the scene. Then I parented the emitter for the fire to the rocket with a small offset (-1cm on the Z axis) and recorded the PSM files.

I loaded the particle objects into the Lightwave scene and applied their appropriate displacement files, and then applied the Hypervoxel Particles displacement plugin to them. This plugin allows for the Particle Storm plugin to supply various data about the particles to Hypervoxels, including color, age, alpha channel (or dissolve from particle storm), and size. Both were set to supply position and alpha data to Hypervoxels, and the fire object was also set to supply Age data.

                 
setting up the fire in HV2         click for a larger image        color gradient for fire effect

I activated the fire and smoke objects in Hypervoxels and started by applying the preset flames effect.  Though alot of people frown on using the presets, with Hypervoxels I find them to be a very good starting point. From there I proceeded to tweak the fire settings, first changing the luminosity settings a bit, then by creating a custom color gradient for the fire based on particle age, starting from a rich bright yellow and gradually turning to a deep red. I also in the process found that applying a sine hypertexture inscresed the apparent detail of the fire, and changing the frequency filter setting from 'loClip' to 'Sine' got more of the appearance I wanted.

smoke settings        click for a larger image

For the smoke, I started with the 'Soft Cloud' preset and tweaked from there.i found their soft cloudd settings to have too much of a tendency to produce puffballs... that is, parts of the 'cloud' were bulging off in distinct spheres betraying the nature of hypervoxels... essentially procedurally textured metaballs. I spent alot of time playing with the settings on this one, finally getting one i liked after changing the fractal noise settings, the color, and adding a rather strong Fractal Bumps hypertexture.

At this point, I noticed the width of the voxels was making them 'poke through' the tube of the LAW. I went back and made a specific colission object for the LAW with the walls of the tube much thicker... basically thicker than my intended size setting for the hypervoxel elements. Once I did this, and re-recorded the Particle Storm displacement files and reloaded them, the 'poking through' effect stopped.

the secondary smoke object    click for larger image

At this same point, I also became dissatisfied with the way the smoke spread out as it exited the read of the tube. I made a tuncated cone as an emitter object and placed it at the rear of the launch tube in Particle Storm, parented to the motion of the tubee in Layout, and had it emit a spread of particles while the particles were coming from the rear of the tube. ( in the particle storm setup image above, the fire is visible as red particles, the original smoke as white particles, and the added smoke as light blue particles) once these particles were added to the scene and i copied the smoke settings from the other set of smoke particles, it produced a more satisfying effect.

click for a larger image or click here for an AVI

As seen above, the effect still requires a bit of tweaking before it becomes completely passable, but is still satisfying overall.

Jon Carroll is a freelance writer, animator, illustrator and production designer based out of Richmond, Virginia. He can be reached at [email protected]