Ever had to send a vampire back to his grave? This tutorial shows you a few tricks of the trade!
For a role model we need look no farther than Wesley Snipes from the Blade trilogy's silver-bullet slaughter scenes. Any vampire that encounters his silver blade disintegrates in a cloud of sparks, cinder and ash. We couldn't find a full vampire for today's exercise, so we'll only be working with a vampire's skull. But the same techniques can be applied to a full vampire with ease.
You will need:
LW 8.0.1+ a fast computer (faster than the vampire anyway)
and of course, this handy-dandy Lightwave-Project.
Part 1 Disintegration
After unpacking the file "BladeFX_by_Brederock.zip", launch your local Layout and set the content path to the tutorial project. Then load the scene "BladeFX_Default.lws".

First, take a look at the scene structure using the scene editor. Here you'll see that there's a camera with a target null (CamTarget), 3 light sources (2 are distant lights acting as fill lights . Neither do they effect specularity, nor do they cast shadows. The third light is a key.) and a null object to which both our skull objects are parented. The hi-res skull will be rendered and the lo-res skull will act as a ParticleFX emitter.
Before we get to splatter, however, we have to get our skull to rot away. We need a reference object through which we can control position, direction and speed of the dissolved area. Use "add > null" to create this, and name it "BurnPos“. That sounds fitting.
Let's animate "BurnPos" from -7 meters in the 'z' direction at frame 0 to 5m at frame 100. That'll give the skull a bit less than 4 seconds to disappear. We'll need a second null object to offset the gradient's location. Let's call it "GradientOffset“ and partent it to the animated "BurnPos“ (deactivate Parent in Place!). Now all we have to do is determine the amount of offset: 20m (z) so that the null follows the animation of its parent "BurnPos“ but from a point 20 meters behind the skull.

Now for shading: open both the SurfaceEditor and the VIPER. Don't forget a quick F9-render in advance so that VIPER has the information it needs to reflect shading changes...
First off - luminosity. (Click the 't' button) - as there was no previous layer for this channel, Lightwave automatically creates one. Change the "layer type“ to"gradient" and select "Z Distance to Object" as "Input Parameter“. Select the null "GradientOffset" as reference object.

The skull shouldn't be burning before the dissolve, so we need two parameters, one with value 0% from 0m to 18m and one at 20m where the object is burning - in other words, at the location of our "BurnPos“. There we need a high value - try 200%. Set the smoothing function of all parameters to "linear“. If you'd like, make a preview in the VIPER window (Preview > Make Preview). Our skull (or the vampire's) should begin to burn from the front to the back. Groovy!

Unfortunately, this doesn't look all too convincing at the moment. Everything is much too linear and even. Let's displace our gradient a bit, by placing a procedural texture layer under our gradient layer. Got to frame 20 on the Timeline before doing so. In our VIPER window, the skull should look as it does above.

Choose "Texture Dipslacement“ as "Blending Mode“ in order to displace the gradient layer immediately above the procedural. Set "Layer Opacity“ to 400% in order to get that industrial-strength dispalcement. A good "Procedural Type“ for fire and smoke is "Smoky3“. Set "Texture Value“ to 100%, "Frequencies“ to 6, "Contrast“ to -25%, "Small Power“ to 0.6 and - very important to get the glow to burn in animation - set "Turbulence(m/s)" to 4.0.
Set "Scale" to X=5m, Y=5m und Z=10m ein. This should fit our texture to the scale of our project nicely.

If you make another preview with the VIPER you'll notice that our transition is much more chaotic and interessting - but the color still doesn't look much like 12th degree burn. Before we head over to the Color channel, copy our textures (Copy > All Layers) into cache.

Now switch to the "Color“ channel and activate "Paste > Replace All Layers“ to apply these layers to this channel. Modify layer „P:Smoky3“ as follows: "Layer Opacity“ = 750% und “Texture Color“ = 255 255 255. The gradient is the most important layer here, as it determines the color of our burn effect. Lots to change here:

1.) "Parameter“ 0m; „Color“ 211 159 084; Alpha 0%; 2.) "Parameter“ 18m; "Color“ 211 159 084; Alpha 0%; 3.) "Parameter“ 18,75m; "Color“ 211 159 084; Alpha 100%; 4.) "Parameter“ 19,5m; „Color“ 255 074 005; Alpha 100%; leave all smoothing parameters on "Linear“.

A quick preview should confirm that we're on the right path - firey! Feel free to play with all of these parameters or additional procedurals for more complicated effects - the VIPER even makes experimenting fun - but for the purposes of this tutorial we'll accept this look. Just remeber to make our skull surface double sided so that the inside of the skull is visible for our next step.

Now we have to get the skull to really disintegrate. Close all the open editors and open the the high res skull's "Object Properties“ panel. Under the "render“ tab, there's a clip map option.

One click and the familiar "Texture Editor“ opens. Paste the same layers from cache here as well, using "replace all layers“.

Change the "Smoky3“ layer as follows: "Blending Mode" = "Normal“, "Layer Opacity“ = 100% and "Contrast“ = 75%.

The gradient has to be customized, too. set "Blending Mode“ to "Multiply“ and move the parameter marker at 20m to 22m. This is necessary in part because the "Blending Mode“ "TextureDisplacement“ isn't completely compatible with clip-mapping. Now, copy the texture layers into cache as we'll need them in a moment. (Copy > Copy All Layers)
„Clip Mapping“ visually deletes the surface of an object. Wherever the gradient value has reached or surpassed 100%, the object becomes invisible. This is not to be confused with transparency as it is a "true" invisibility of all channels.

If you render an animation (not a VIPER preview) or if you have the luxury of working with "F-Prime“, you will now see the result of our labors. the skull dissolves, beginning from the nose backward until the skull has disappeared.
Part 2 Particles
To progress efficiently from here, its a good idea to save a render of this stage of our effect. I saved a jpg-format image sequence into the images folder. Load this sequence into the "Image Editor“ by loading the first image and changing "image type" (source > Image Type) from "still“ to "sequence“. As we've rendered frame 0 to 100, make sure to set the "start frame" to 1 (default =0). We'll pack this sequence into the background of our camera view so that we can fine-tune the particles exactly to the dissolve effect. Go to the menu "scene > effects > compositing > background image“ and select the sequence we've just loaded. Now we can tell Lightwave to show this sequence in the OpenGL camera view display. Open the display options with the "d“ button. Find the item "camera view background“ and change it to "background image“.
THis way, we can can see our effect exactly and in real-time, despite the limitation that Lightwave can't display this effect in OpenGL. Make sure the window is set to "camera view“ and the display mode to "bounding box“, as this applies to all objects, but not to particles. Scrubbing back and forth along the timeline now reveals the dissolving skull in the background and up front our null object and the bounding box of our skull. Now we can start throwing particles around.
Particles first of all require a suitable "emitter“. Go to our the oject properties panel of our lo-res sull and switch to the"dynamics" tab. Under "add dynamic" select "emitter".

Double-click the new "FX Emitter“ to open this emitter's property panel. We have to change these default settings a bit.
"Birth Rate“ = 750, "Generate by“ = "Frame“, "Nozzle“ = "Sphere“, "Size Effect“ = "Size(no change)“, “Generator Size” X=7m, Y=9m, Z=8m and "Particle Limit“ = 7500. For now, we'll choose the "Sphere“ emitter for faster feedback, as the „Object-Surface“ mode that we'll use later takes quite a bit of time to calculate.

Now head to the Birth Rate's texture editor under the "generator" tab. You know the score: paste the layers still in our cache using „Paste > Replace All Layers“. We'll have to change quite a bit here, but its a quick start. Set the parameters as follows:
1.) at 0m > "Value“ = 0 and "Alpha“ = 100%; 2.) at 18m > "Value“ = 0 and „Alpha“ = 100%; 3.) at 18,5m > "Value“ = 25000 and "Alpha“ = 100%;
4.) at 19m > "Value“ = 0 and "Alpha“ = 100%.

Set the „Smoky3“ procedural layer's texture value“ to 0. We've now managed to pair our particle emission to the aniamted transition - exactly at the point where the skull begins burning. Nonetheless, calculating the current particle emission (the "calcutate“ button) doesn't really look impressive just yet. They should fall downwad and not zap about crazily. So we'll change a few parameters...

under the "Particle“ menu:
"Particle Weight“ =1, "+-" =0,5; "Particle Resistance“ =1, "+-" = 0,25; "Life Time(frame)“ = 50.

under the "Motion“ menu:
“Explosion(m/s)“=2; “Vibration(m/2)“=12; “Vibration(min)“=25%.

under the "Etc“ menu:
“Gravity(m/s^2)Y“=-10.
But its still missing something. We need some external influence and 2 wind fields would do nicely. Keep in mind that the particles will only be visible as long as the object "LowRes“ skull is selected.
Via "Items > Add > Dynamic Obj > Wind“ we'll create the first windfield and call it "Random_Wind“.

The settings: "Wind Mode“= "Random“, "Blend Mode“= "Heavy Wind“, "Falloff“ = "OFF“ und "Power“ = 200%.

Make a second wind field called "Direction_Wind“ with the following settings: "Falloff Mode“ auf "OFF“. Also, rotate this object to determine the wind direction: -50° für "Rotation Heading“ (H) und "Rotation Pitch“ (P).
All this work of typing settings in shall now be rewarded. Press "Calculate“. Everything should look more dynamic now. Sometimes Lightwave doesn't seem to calculate particles. If this happens, try wiggling the "Birth Rate“ in the "generator" tab p a bit - or just type in 750 and calculate anew. This bug seems to crawl out of its hole when the scene's just been saved. All the particles seem to have up and gone, leaving the cg-artist to ponder the injustices in life. This doesn't happen to particles that have been saved together with their motion into a file, also referred to as "baked“ into a *.pfx file. So, if you prefer to go it safe like me, re-enter the "birth rate" before hitting "Calculate“.

But before we can generate this file, we have to first calcualte the data correclty. Go to our trusty menu "Generator" and switch "Nozzle“ to "Object-Surface“. Give the particles a bit of time to die as well, adding 50 keys on the timeline at the lower right hand of the interface.
So, after such a long bout of work you're probably a might thirsty, eh? Well, that's fortuante, because once w hit "Calculate" we'll have - depending on computational resurces - a bit of time on our hands. Good thing we used the "LowRes" version to keep times within reeason. You did use the LowRes version, didn't you?
As ssoon as the calculation finishes, go to the particle menu and, under "File“ hit the "Save Motion“ Button. Name it something like "BladeFx_Particles.pfx“. Lightwave will now relay on this file and the working with the scene should now be considerably faster and more comfortable. By now at the very latest, you should also save your scene and objects ("Save Scene“ und "Save All Objects“). Before we set about shading our particles, let's turn off the camera's background image sequence. Don't need it anymore! (Scene > Effects > Compositing > Background Image > (none))

Open a VIPER window and the hypervoxel menu. Under the object list at the left select and double-click "Skull_Default:LowRes“. Now for a load of settings!
general:
"Object Type“ = Sprite;
under the "Geometry“ menu:
“ Particle Size“ = 20cm; “ Size Variation“ = 250%; “ Stretch Direction“ = “ Velocity“; “ Stretch Amount“ = 125%; “ Maintain Volume“ & “ Align To Path“ = on;

under the "Shading“ menu:
“ Color“ = 211, 158, 084; “ Luminosity“ = 2500%; “ Density“ = 75%; “ Light 1“ = (none);

under the „Hypertexture“ menu:
“ Turbulence“; “ Frequencies“ = 6; “ Contrast“ = -50%; “Texture Amplitude“ = 200%; “Texture Effect” = “Turbulence“; “Effect Speed“ = 20%; “Scale X, Y,Z“ = 2m.
And now two gradients: one on “Particle Size“ should look like this:

„Input Parameter“ = „Particle Age“; 1.) Parameter 0 > „Value“ = 0%; Alpha = 100%; 2.) Parameter 2 > „Value“ = 100%; Alpha = 100%; 3.) Parameter 50 > „Value“ = 0%; Alpha = 100%;
This keeps the particles from popping up abruptl and lets them fade out smoothly.

And a second gradient for "Color“ in the "Shading“ menu:
“Input Parameter“ = “Particle Age“ 1.) Parameter 0 > “Color“ = 255,000,000; Alpha = 0%; 2.) Parameter 50 > “Color“ = 000,000,000; Alpha = 100%;
This lends the particles a dynamic change in color respective to their age.
So! That was all! Last thing to do is render. Set the camera format, quality and - if you'd like - motion blur and select a file format, name and path under „Render Options“. Don't forget to set "Render Last Frame“ to 150. You can also turn off "Ray Trace Shadows“. And if everything's worked out as it should you wil have the first notch under your vampire-hunting belt, and a nifty dissolving skull ala "Blade".
Final Animation.
You can refine or alter any number of settings, for example using numerous emitters each with its own particle style for seperate ash and other effects. Skin makes the whole process more complex, of course. Then you have more soot and oily smoke with the bones only dissolving after the flesh has burnt away. Endless possibilities! The deadline's the limit! For comparison and for the profis, check out the "BladeFX_Default.lws“ file. This is the file at the stage of the finished tutorial.
Have fun!
|