User Tools

Site Tools


introduction:thinkingparticels_overview:workingwiththinkingparticles

Working with thinkingParticles

A Quick Overview

thinkingParticles offers its advanced particle system functionality through a programmatic approach. As an artist, the word programming conjures up images of code creation and advanced college degrees, however, you should not be afraid of this powerful tool. thinkingParticles provides artists with an easy-to-use visual Wire Setup View to procedurally build the rules and conditions that control the particle behavior.
Through this interface and control, artists become the ultimate masters of all particle mayhem within their scenes.

image

Final Destination 2 image courtesy of Digital Dimension New Line Cinema

 

Event-driven systems vs. Rule-Based systems

To start, it is critical that we differentiate between these two types of particle systems as they are often mistakenly considered the same.

The difference between Event-Driven particles (such as Particle Flow) and Rule-Based particles (like thinkingParticles) can be summed up quite simply:

An Event-Driven particle system is based on “triggers” or events that must happen to activate a specific particle effect, while a Rule-Based system works outside of time and relies on rules and conditions to govern particle behavior.

A simple example of this kind of event system would be having particles spawn when one object collides with another. One object must collide with another in order to create particles. This kind of system implies some kind of key-frame related effects.

Conversely, thinkingParticles is totally independent of time and key-frame constraints and offers true Non-Linear Animation capabilities. Rules and conditions control the particle effects. A particle system created with thinkingParticles will work regardless of the timing or number of frames that change within an animation. Imagine the freedom you have when working with this kind of rule-based system.

Here's an example:
Imagine that you are tasked with creating a vast space scene including an animated spaceship trying to navigate through an asteroid field. This field contains enormous meteors as well as smaller pieces of debris floating around randomly. Now imagine that your client tells you that the spaceship should avoid the bigger meteors, but that the smaller rocks and debris can collide and bounce off the hull.

An Event-Driven particle system would fail to handle this kind of situation effectively because you would first need to define a path through the asteroid field for the spaceship, then you would need to look for the exact key frames where collisions should happen. But what happens if, after setting up all of the animation, you needed to change the path of the spaceship, or the amount of debris, or the balance between the big and small meteors and debris? It would most likely require that you start from the beginning and rework much of the scene.

thinkingParticles on the other hand is designed specifically to handle this kind of situation. First and foremost, it can take your spaceship model and treat it as a single particle. And because of this fact, by applying two rules to the spaceship, you can solve all of your meteor and debris collision and avoidance issues. Conceptually, the rules you'd apply to your new spaceship particle would look something like this:

  1. If SPACESHIP GETS NEAR (VALUE) A ROCK
  2. CHECK IF
  3. BIG (VALUE) ROCK THEN AVOID IT (move around)
  4. SMALL (VALUE) ROCK IGNORE AND DO COLLISION
  5. END

Of course, the text above is not the real code fragment. In thinkingParticles you do not need to type in any code at all. This is only the high-level logic you would use to help build the rules and conditions for your scene. What is unique in this logic flow is that, as you can see, there is no time-related variable in it, so this will always work, regardless of how you animate the spaceship’s path or adjust the length of the animation. Whenever the spaceship gets near a meteor, it will evaluate all of the rules associated with it, and this in turn control's the spaceship's behavior accordingly.
 

How thinkingParticles handles Animation

thinkingParticles uses the same basic animation controls and features just like most other 3ds Max plug-ins do. Not surprisingly, the easiest way to animate a parameter within thinkingParticles is by using the Animate button and the frame slider. Every change will be recorded per frame and the values will be interpolated automatically. Be aware that thinkingParticles also exposes all animatable parameters to TrackView so that you can use any expression or controller to animate a specific parameter.

This means that Object and Inverse Kinematic animations are also supported when nodes are used a particles. For example, the Geom Instance operator allows you to select Character Studio Bipeds, which can then be used as particles within the system.
 

How thinkingParticles handles Materials 

Materials and material animation are also supported by thinkingParticles , but there are a few things to consider.

The way you can assign materials to your particle systems can become a very complicated situation to keep track of. In theory, each individual particle can have its own material, and in some situations each particle could also have more than one material assigned to it. You must also understand that 3ds Max handles all of the particles within each particle system as one mesh object, and add to that the fact that 3ds Max is only able to assign one material per object. To get more than one material per object, you must use Material IDs and Multi/Sub-Object materials.

Imagine modeling 3 different spaceships - each with roughly twenty materials assigned to them through the use of Material IDs and Multi/Sub-Object materials. Let's say that you want to use these craft as particles to create a massive space battle. It would be practically impossible to handle all of these object-based particles with multiple materials manually, so thinkingParticles has an automated system that does the job for you. It reads in the materials applied to the original objects, then updates every time it is needed or forced to do so within the system (through operators like Material Time - which handles animated materials).

Please note that it is legal to change and animate any material outside of thinkingParticles, but keep in mind what an immense chain reaction you might activate when you change a sub-material of a sub-material of a sub-material, and so on.

This automatic material update process also gives some insight as to why you can't change any of the thinkingParticles materials. Any manual change of a sub-material from within thinkingParticles will be useless since it will be recreated from scratch every time you change or reinitialize the particle system or object that is attached to it.

     

Where to go Next? 

Now that you've had some brief exposure to the concepts surrounding thinkingParticles, it's time to dive into the specifics of how you create all of the cool particle animations you've dreamed of over the years. This means getting familiar with how you access thinkingParticles, navigating it's controls and the logic that will be required for your particle work.

While it is highly recommended that you go through the Introduction material in order, if you prefer you can click on any of the topics that interest you.
 

   

©2024, cebas Visual Technology Inc.

introduction/thinkingparticels_overview/workingwiththinkingparticles.txt · Last modified: 2024/01/24 18:35 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki