Search This Blog

Labels

Wednesday, December 8, 2010

Advanced Effects using Blender Particle System: A Sequel

In the previous article by Reynante Martinez, we saw the disintegration effect in Blender's Particle System. In this article we will tackle some more features of Blender's particle system which are as follows:

  • Multiple particle systems
  • Boids

Multiple Particle Systems

Sometimes, singular particle systems are not enough to create the effects we want. This is when multiple particles come in, enabling us to create things like welding sparks, fireworks, rain splash, object shatters, etc. Thankfully, we have Reactor Particles which does just that. In most cases, reactor particles are born when other particle systems' events happen. You'll see more of that later in this part. I guess the best way to explain these things is through valid examples.

Let's begin by simulating the fireworks effect we see during New Year or when there are festivities. First thing we need to do is to setup our scene. We'll be creating a very simple setup for now and it's up to you to take it further when needed.

Fire up Blender 2.49 (sadly, Blender 2.5 doesn't support reactor particles yet) and orient the camera such that it is facing towards the positive y axis, as shown in the screenshot below:

(Positioning the Camera)

Next, delete the default Cube and add a Plane object then position it just below the camera's view. You can scale it according to your liking but we can also adjust it later on if need be. Let's name this plane “emitter”.

(Plane Added in the Scene)

With the “emitter” object still selected, go to Object (F7) then click on Particle buttons and add a new particle system.

(Adding a New Particle System)

This particle system will be the single burst that will eventually give birth to hundreds of particles later on. Let's name it “single” for easier reference later on. Keep the amount at a minimum, probably something like lower than 20, so it won't get too chaotic later on once the bursting of particles begin. Also change the Life of the particle system such that you see them die on your camera's view, otherwise we won't be able to see the bursting effect happening at all. And lastly, increase the Normal value under Physics, this will tell how the particles are shot and how fast. You might also have to edit the Life later on once you have decided on the Normal settings.

(“single” Particle Settings)

(Single Frame from the Particle System Animation)

Now if we play back our animation, it should look something like this:

(fireworks_1.avi)

Next is the main particles for this system – the burst. With the plane emitter still selected, head over to the same window where the Particle System was created. On the upper right hand corner of the Particle System tab, you'll notice a portion there with “1 Part 1” on it with arrows left and right. These are indications of how many sub-particle systems there are in our main system. Our reaction particles would not act if it was a different system, so this is one crucial part. Where you see the 1 Part 1 area, click on the right arrow to register another sub-particle system, making it a “2 Part 2”. Then click on Add Newagain, just like how we did in the previous part.

(Adding a Sub-Particle System)

The important options that we have to take note here are the particle system type, emit from values, and target. With the Physics option, I'll leave it to you to tweak around.

As you might have already guessed, we must first and foremost, choose Reactor as the particle system type, otherwise it would be useless doing so. Next is to change from which will the particles be emitted from (emit from), choose Particle since we wanted it to be emitted from the first particle system that we created. Then in the Target portion, you can choose from which system will it be emitted from, the default which is Psys:1, you can change this setting accordingly depending on which order you want it to be emitted.

(Reactor Particle System Settings)

Then here's the hardware rendered version of the system:

(fireworks_2.avi)

And that's about it! This is also applicable to things like welding sparks or rain splashes. If you want your particle reactor to happen on object collision, instead of setting the particle reactor to begin on Death, change it to Collision then set your objects as collision objects. You can check Part 1 of this article to see more on the material settings. And just a bonus, I've added some tiny details to particle system. You can check out the video below and also download the .blend file.

(fireworks_3.avi)

Boids

Particle boids, are by far, one of the most underestimated and overlooked strengths of Blender's particle system. Not only is it very daunting at first, but the complexity it can offer you is mind blowing.

Simply put, Particle Boid or Boids Particle System is a type of Particle Physics whereby it follows rules and protocols that a user has set. These rules may range from prey and predator relationships to advanced crowd simulation. They can be related to artificial intelligence in ways that each particle point can behave differently and act on its own regardless of the other particle points present in space.

I don't, however, claim to have really surmounted boids particle systems, even before in earlier versions of Blender. It is so exciting and exhilirating yet frustrating at times. To fully comprehend it, you need lots and lots of patience, probably more time to tweak around, and a note near you to have the settings listed down.

For the sake of this article, I'll keep this introduction to boids particle system as simple and as quick as possible, giving you more freedom to experiment and just give you a basic understanding on what this particle system is all about.

Let's get going, shall we?

Fire up Blender 2.53 and delete the default Cube in your scene.

(Deleting the Default Cube)

Next, we need to add the basic elements for our basic boids particle system. It includes 1) an emitter, 2) the visualization object, and 3) the goal object.

With the cube deleted in our 3d viewport, add a plane object (or anything you wish) and leave the default levels of division as it is, this would act as our particle emitter. Name it “emitter”.

(Plane Object Added)

Next, add a simple UV Sphere above the plane, this would then act as our goal object. Smooth the shading and scale to something like 0.200. Name this uv sphere as “goal”.

Next thing to add is our visualization object. For this matter, we'll just quickly model a fish-like figure. Activate layer 2, this is the layer where the fish object will reside in, so it won't get in our view in layer 1.

On layer 2, add a Cube object and name it “fish”. Proceed to Edit Mode and go to side/right view (Num 3) a and create loop cut (CTRL R) perfectly centered in the object.

(Adding a Loop Cut to the “fish” object)

(Loop Cut Added)

With the middle vertices still select, quickly select the other vertices by pressing CTRL I for Select Invert. Or you could simply select the vertices except the middle verts by right click on selecting, box selecting, or circle selecting (C).

Scale these vertices along the z-axis (as seen in the screenshot below).

(Scaling the Outside Vertices)

Select the left-most vertices, extrude them to the negative y axis, then scale them along the z-axis.

(Left-most Vertices Selected)

(Left-most Vertices Extruded)

(Vertices Scaled Along the Z-axis)

Our fish object is almost taking shape and almost done. Just some minor adjustments here and there. Select the right-most vertices and move them a bit to the positive y-axis. Then go to top view and scale the vertices we just moved and the segment between the body and tail (see the screenshot).

(Moving the Right-most Vertices)

(Scaling the Tip and Segment Vertices)

Then with a few more adjustments here and there, it should look something funny like this:

(Finished “fish” Object)

Now let's get back to layer 1 where our emitter and goal objects are located. Select the emitter object and add a New Particle System.

(Adding a New Particle System to Object “emitter”)

Before proceeding to editing the particle settings, set first your animation length to something longer than 250 frames which is only 10 seconds (on 25fps). Let's change that to 400 instead.

Now on to the Particle Settings. Under Emission tab, set the amount to 500, the end to something very low, I've set mine to 3, make the Lifetime the same value as our animation length which is 400.

Under Rotation tab, just tick the Random rotation a bit.

Next, under the Render tab, select Object and under Dupli Object:, choose the name of our fish object, in this case “fish”. What this will tell Blender is to use our fish model as display and render visualization, instead of the default halo. Then let's leave the settings under the Physics tab as the default Newtonian Physics right now and see what it gives us.

(Initial Particle Settings)

If we playback the animation now, this is what we get:

(boids_1.avi)

Wait, that's not looking right. That is because by default, we have the Physics settings set to Newtonian Physics and the behavior you just saw is but perfectly normal under this case. But for now, Newtonian is simply out of our way. So under the Physics tab of the Particle System, choose Boids in place of Newtonian.

Just after clicking on Boids, a plethora of options appear. Honestly speaking, there's no right number for all of these settings, nor is there a magic button that let's you do some crazy things. But I do wish someday, there'd be some presets to choose from just so users could have a basis and starting point for their boids system.

(Boids Physics)

If we play back the animation now without altering the default Boids Physics settings, here's how it should look like:

(boids_2.avi)

Just from simply changing the physics from Newtonian to Boids, we already added life to our system. Now, to illustrate just a simple example of this in action, we'll add some settings to it. Proceed to the Boids Braintab under the Particle System, and add a new Boid Rule, choosing Goal. What this will let us do is to tell the boids system to follow an object/system depending on how the rules are arranged.

(Adding a New Boids Rule)

After adding the Goal boid rule, a new option appears just underneath the same tab we are in, labeledObject:. This lets us set what object will the boids system be using as a goal, simply put. You might have already guessed it, under this Object: field, we choose our UV Sphere object which we labeled “goal” before.

(Choosing a Goal Object)

If we play the animation, this is what we'll see:

(boids_3.avi)

Since by default, adding a new boid rule to the system puts it in the last stack of rules, our goal rule happened after it performed the Separation and Flocking rule accordingly, which are another set of behavior on their own. But if we move the goal boid rule on top of the separation rule, the evaluation of the particle system changed to following the object first while behaving in separation and flocking manner. So what we simply told the system is this: Separate the particles while following this goal object as you flock. Playing back the animation, it will look something like this:

(boids_4.avi)

And moving the “goal” object while playing back the animation, we get some nice results with the school of fish closing in on their target.

(boids_5.avi)

Then lastly, on layer 2, rotate the fish object to fix the odd rotations happening in the simulation. I rotated mine by -90 degrees. And here's how it looks now (much better and appealing):

(boids_6.avi)

And as a bonus, I rendered a sample animation with shading, lighting, and node composite! And of course, you can the download .blend file for your own disposal here: (boids.blend). Have fun!

(boids_7.avi)

Summary

In this article we discussed more advanced usages of Blender's powerful particle system in conjunction with the topics that were already discussed in the previous articles. We learned about the notoriousdisintegration effect, using multiple particle systems as reactors, and the not-often-used boids particle system. I really hope you learned something worthwhile from it. I was hoping to add more into the list (and have eventually disregarded some), but I don't want to reinvent the wheel and wanted to give credit to other authors who did just that. If ever you feel there's something missing or you want more clarity on some parts, don't hesitate to email me at reynantem@gmail.com. Also, I would be glad to see what you came up with and I'll sure give you my feedback on them.

So until next time and hoping to see you around again soon! Thanks for your time. Happy Blendering!

No comments:

Post a Comment