| How to create a fractured explosion using Particle Flow |
Several people have wondered how I created the fractured explosion of this teapot, so in this tutorial I will try to explain the procedure. In this tutorial you will learn the basics of fractured explosions and the different elements that must be put together to create one. *Note: this tutorial requires a basic knowledge of 3d Studio Max (preferably 5), and a basic knowledge of Particle Flow. It also only demonstrates a basic fractured explosion, so I recommend playing around with many of the values that I have provided for you, in order to create more realistic explosions for yourself. |
First of all, create a plane, a teapot, a deflector (where the plane sits), a drag spacewarp and a gravity spacewarp. Your setup should look like this:
Next, create a PF Source object. Before we bring up the Particle View though, we must change the parameters of the gravity, drag and deflector objects. Gravity: Set the gravity to 0.7 Drag: Set the X Axis, Y Axis and Z Axis values (under linear damping) each to 4 Deflector: Set the bounce to 0.75, the variation to 40%, the chaos to 30%, and the friction to 0.2% Now, open the Particle View (press '6' on your keyboard, or click on the button in the PF Source object parameters). The default setup looks like this:
Ok. First click on the birth operator. Next, Change both emit start and stop to 20, and the amount to 350. Then, delete the Position Icon operator and replace it with a Position Object operator. This will cause the particles to be emitted by a mesh object, rather than by the PF Source object. In the Position Object parameters, add your teapot to the Emitter Objects list. Now, click on the Speed operator. Change the speed value to 800 and the variation to 70. Also change the direction to Random 3D. The default Rotation operator parameters are fine, but in order for the fragments to spin you must add a Spin operator to the list. Under the Spin operator's parameters, change the spin rate to 800 and the variation to 80. After that, replace the default Shape operator with a Shape Instance operator. Here is where the cool part comes in, and why Particle Flow is far superior to any of the default particle systems that come with max. In the top viewport, create a group of shapes from splines like so: *Note....the shapes can be in any form or shape you would like them to be in, but make sure you don't make them too big as their size will directly affect the size of your particles later, and particles too big will make the fragments look odd (the same goes for particles that are too small). Select all of the shapes and apply an Extrude modifier to them now. With an extrude value of 2 or 3, you should have something that looks like this:
Now, group these objects, and under the Shape Instance operator parameters in the Particle View, select the group as the Particle Geometry Object. Make sure you've selected the "Group Members" checkbox as well, and that you've changed the scale to somewhere around 50%, and the variation to around 40% (assuming your shape fragments are the right size as mentioned above). Finally, before the next group of steps, change the Display type to Geometry. If you press play, you should currently have an animation that looks something like this. Our next group of steps deal with applying forces to the particles, as well as detecting collisions with the deflector we created earlier. So, the first thing you need to do is add a Force operator to your list of operators for Event01. Your current event/operator stack should look like this: In the Force operator parameters, add both your gravity spacewarp and your drag spacewarp to the list of forces. If you scrub your animation you should see the particles falling after their initial emission. Our next step requires us to finally detect collisions between the particles and the deflector. The first thing you need to do is add a Collision test to the list of operators for Event01. Then, add the deflector you created to the list of deflectors. All of the other parameters can stay the same. Ok, so we have our initial particle emission, as well as our first basic collision test. But now comes the beauty of event-based particle systems. So, what you want to do now is create a new event by dragging a Spawn test into a gray area of the Particle View. Particle Flow will then create a new spawn event (Event02) that will look like this: Basically, what we will do now is give the illusion of our fragments fracturing further (after the initial explosion) by spawning several particles in Event02 every time a particle from Event01 hits the deflector. So, now you can connect the two events by dragging the blue circle beside the Collision test in Event01 into the open circle at the top of Event02. It'll now look something like this: Now we must change the parameters of the Spawn test to fit the effect we are trying to achieve. First, check 'Delete Parent' Change the Offspring # to 5 and the variation to 40%. Change the Speed variation to 50% Finally, change the scale factor to 45% and the variation to 30%. If you play the animation now, you'll notice that when a fragment hits the deflector, it changes into a '+' and it floats away. This is because of two reasons, which we will now fix. First, in the Display operator change the display type to geometry. Second, add a Force operator to the list of operators in Event02 and add both the drag and gravity spacewarps to it. Now, the only problem left is that the particles from Event02 do not collide with the deflector, so once again we must add a Collision test to Event02. Your stack should now look like this: Under the Collision test parameters, once again, add the deflector you created to the list. The only difference between this Collision test and the last one we made, is that in this test we will allow the particles to collide more than once before going to the next event. To do so, click on 'Collide Multiple Times' button, and change the number of times to 3. Now, the particles will leave the teapot as large fragments, hit the deflector and change into smaller fragments. At this point it should look like this. There are still several problems with this animation, namely: a) the large fragments break into smaller *identical* fragments b) the smaller fragments rotate uniformly, and very quickly These 2 problems can be fixed though, and we will do so before moving on to the creation of Event03. To correct the first problem, add a Shape Instance operator to the Event02 stack and set it up the exact same way that you set up the Shape Instance operator in Event01. The only difference is that you should set the Scale to 30% and the variation to 40%. As you can see, this fixed the first problem quite easily. To correct the second problem, add a new Spin operator to the Event02 stack. Then, change the spin rate to 600 and the variation to 40. Now the second problem is fixed. We also want the particles to stop bouncing after bouncing 3 times in this event, so set the speed (under the Collision test parameters) to Stop (instead of Bounce). Now we are ready to move to creating Event03. So, once again, create a new Spawn event by dragging a Spawn test into a gray area in the Particle View. Your stack will look similar to this: And, once again, connect the Collision test of Event02 to the Spawn test of Event03. Finally, we must change the operators in Event03 to get the desired result that we are looking for (ie, you're almost there!). First, under the Spawn operator parameters, make sure 'Delete Parent' is checked. Next, under the Display operator parameters, change the display type (once again) to geometry. After that, add a new Rotation operator to the Event03 stack, and change the orientation matrix to Random Horizontal. Then, add a new Spin operator to the stack and set the spin rate to 0. Now, play the animation. *Note. If some of the particles bounce right off the deflector without stopping, simply increase the size of the deflector (and the plane). Your animation should look like this now. Although the major aspect of the effect has been completed, some minor things still must be cleaned up, such as: a) the original fragment object (the group object we instanced) is still visible in the render b) the teapot is still visible after it explodes c) the fragments change colours as they go from one event to another d) some motion blur on the particles would look nice :) So, let's fix all of these things, starting with: A) Right click on the fragment group object and deselect 'Renderable'. Now it won't be visible even though the particles will still be visible. B) Right click on the teapot and animate its Visibility parameter so that it remains at a value of 1 (visible) until frame 20, where it changes to a value of 0 (invisible). C) First, change the colour of the teapot to white. Next, in the Particle View, click on each of the coloured circles beside each of the Display operators in each event, and change their colour to white.
You have now effectively changed the colour of all of the fragments and the teapot itself to white (or whatever colour you want) D) In the Particle View, right click on each of the Event headings (dark gray) and click on properties. Under the properties, enable image motion blur. Now that we have fixed those minor problems, we are essentially done! You can view an example of the final animation here. You can also view and example of the final animation with a basic light setup and some extra camera shake and movement here. If you would like to look at the max file, you can download it here. Well, I hope you found this tutorial both enjoyable and informative. If you have any questions, comments, or concerns, feel free to contact me at ivanisavich@yahoo.com |