The DynamicSet Tree View is one of the most important areas inside of thinkingParticles. It is here that you set up your control systems and process ordering for your particle animation. Nearly all of the advanced effects that you can create within the system are based on the fact that thinkingParticles is able to store its rules and operators in separate DynamicSets and have them evaluated based on other rules and conditions.
TreeView - the tree view will give you fast access to DynamicSets within a tP system. You may Cache, Drag and Drop, Reorder, Rename or Remove DynamicSets.
Create - when pressed an Empty DynamicSet will be created below the current level.
UP - when clicked, the DynamicSet is moved up in the tree.
Down - click this button to move a DynamicSet down the hierarchy.
Remove - click this button to remove/delete the selected DynamicSet from the tree.
M - lets you merge a DynamicSet to the current position in the tree.
P - will show you a set of presets that give fast access to a DynamicSet already prepared including empty Groups and possible operators pre-wired.
Load - lets you load a blackbox or any dynamic set that was previously saved.
Save - saves the selected black box or DynamicSet along with any sub-sets.
There are three options available:
DynamicSets are another key to the power of thinkingParticles. A DynamicSet can be seen as another type of hierarchical container that holds one or more instructions (operators, helpers and conditions) telling the created Particle Groups what to do. Like Particle Groups, DynamicSets can also hold other enclosed (or nested) containers within them with even more instructions. By creating and using these DynamicSets, and placing them into a single hierarchy you can create particle animations where only certain particles (those within a specific Group) get affected by a set of conditions or rules in one DynamicSet, while other groups of particles aren't affected at all, or are affected by rules and conditions in a completely different DynamicSet.
Now by default, thinkingParticles uses the Master Dynamic DynamicSet as the root of the hierarchy. The Master Dynamic is a permanent part of the interface, and can't be deleted or moved by the user. It is here that you turn the entire thinkingParticles particle system on or off and set up how your particle system is displayed in the 3ds Max view ports and the user interface for thinkingParticles. When you create DynamicSets, they will all reside beneath this Master Dynamic root.
Any number of instructions (operators) may be stored in one DynamicSet and a DynamicSet can store any number of other sub-DynamicSets. It is recommended that you use multiple DynamicSets to create a particle system. Now, it may be tempting to just add all of your operators to a single DynamicSet - and in the end, you might get the effect you want. However, from an organizational standpoint, doing this with complex effects would be bad practice. Just as in life, you wouldn't put all of your clothes (socks, shirts, belts, etc.) into one drawer for keeping since it would be difficult, if not impossible to find anything in the future, the same holds true for thinkingParticles. Putting all operators in a single event will make diagnosing problems within the particle animation much more difficult, and it will also make it far harder to modify or re-purpose the elements within the animation. Think about what you are going to do and then break the task up into manageable chunks by using multiple DynamicSets.
To create new DynamicSets, simply click on the Create button beneath the Tree View. Once you've got a new DynamicSet created it will be named DynamicSet by default. As this name is not terribly descriptive and is given to all DynamicSets you create, when you generate a new DynamicSet you are strongly encouraged to rename it immediately to something more recognizable.
To rename a created DynamicSet you should take your mouse and perform a slow left-click over the name. This process is identical to renaming a file using standard Windows controls. You'll click once to select the DynamicSet (it will highlight), then do the slow left-click to open up the naming dialog.
Once you have several DynamicSets, you might decide that you want to re-order them or make one DynamicSet a sub-set of another DynamicSet. To do simple re-ordering of the various sets, you can use the UP and DOWN buttons beneath the Tree View. You also have the ability to drag-and-drop one DynamicSet or the operators they contain onto another DynamicSet in order to make it a sub-set of that DynamicSet. This process is sometimes called nesting.You can even drag and drop DynamicSets onto the Master DynamicSet to effectively bring them back up to the main branch level.
DynamicSets can be re-ordered in various ways, the Drag Icon will indicate the task that will be performed when the mouse button is released. Arrow symbols will show where the DynamicSet will land in the hierarchy. Keep in mind that there are several “hot” areas in the DynamicSet Tree-View to drop an Icon on.
You can drag and drop a DynamicSet on :
Shift + Dragging a DynamicSet will copy the complete DynamicSet or operator to its new position.
One other important feature of DynamicSets is the fact that you can disable them quickly from the DynamicSet Tree View. If you right-click upon the DynamicSet, it will turn a light grey, indicating that is has been removed from processing by thinkingParticles.
When an icon is right clicked in the DynamicSet Tree-View, a special DynamicSet related menu is opened. Every DynamicSet may be recorded to hard disk individually. Controls to set or create cache files along with statistical data, is displayed in that right click menu as well.
DynamicSet caching is a powerful tool to speed up and enhance particle animation work flow within a network. Caching particle effects removes the calculation overhead usually introduced by “serial” processing of particle effects. Particle effects rendered in a network are always calculated from start to the current frame to be rendered; so with an increasing amount of frames the rendering time also increases a lot when particles are involved. Caching particles helps there a lot, because every position of the particle is already calculated, every PC in the network can access the frame data immediately.
DynamicSet caching is a great tool, however as everything on this planet comes with a price tag there are some restrictions or things to consider.
Cache Stop - choose this option to disable a cache playback
Cache Play Backward - when selected, the cache is played back in reverse
Cache Record - starts the cache recording to the hard disk
Cache Unset - removes the assigned cache file
Statistics - displays the statistics about the cache file
thinkingParticles uses a real-time interpreter to analyze the logical setup of the particle system. Based on a top to bottom order, the tree and its branches are analyzed in real-time and worked through one after another. This means that you need to examine your DynamicSets' order to determine how the particle animation will flow. As you add operators and rules to DynamicSets, they are added in so that they go one beneath the other - each one appearing in the DynamicSet Tree View at the bottom of the selected DynamicSet. Keep this in mind as you build up your particle animations.
You can add the operators to a DynamicSet in any order, but should be aware of how they are positioned in the stack relative to each other as your particle animation grows in complexity. Many conditions are dependent on the results that other conditions create. As was shown above, you can change the relative order of the DynamicSets and the operators within them from the DynamicSet Tree View.
A good question to ask yourself is: When do I get the results an operator needs?
Remember that one condition will generally create a rule or condition (such as a collision) that another condition will subsequently want to make use of and act upon the particles. For instance, if you have an event that creates a collision and another that modifies the direction the particle travels, would you want the directional change to occur before or after the collision takes place? It’s this kind of thinking that you must apply when you run into trouble with your particle animations.
Example:
Below is an example where the order of rules within the DynamicSet Tree View can provide problems for the final outcome of the particle animation. While the order of the hierarchy doesn't always cause problems for a particular effect, there are situations where the top-down, left to right ordering of the operators is critical for the correct results. Just remember that all operators, conditions and Dynamic sets are evaluated in a top down left to right manner.
Before we proceed ahead, here is a description for each of the DynamicSets and visible operators in the example.
If you were to try and “read” this particle system, it would read as follows:
While this order of rules is still not completely understood at this point (since we do not know what operators and rules will drive the various DynamicSets), we do understand the order in which they will be processed.
When you begin to look at the logic behind the order of rules as shown above, you should be able to spot some errors just by the naming of the Operators and DynamicSets.
First and foremost, it does not make much sense to first test for a collision (Crash DynamicSet and the PPassAB operator) and then move the particles (Motion DynamicSet). The Motion DynamicSet is evaluated after the PPassAB collision operator, it's not critical in this case because when the objects don't move they can not collide. The result of the above DynamicSets is shown below. After a crash of the two particles, fragments are created.
In this example we will assume that the user who did the setup does not care about hierarchies or the order of DynamicSets and operators. The scene/situation is exactly like the one described in the previous chapter but with one little exception. In the case shown below the Shape DynamicSet is placed after PPassAB. By consequence, this means that the shape assignment for the particles is done after the collision and fragmentation has been performed. This is absolutely wrong! As we will assign a shape to particles that do not exist at the time we have performed the fragmentation. The fragment particles will not become “fragments” they will become spheres or whatever shape is assigned in the Shape DynamicSet.
As shown in the previous chapter, the setup is nearly the same, only the Shape DynamicSet is differently placed in the order of rules.
The result out of the processing of the DynamicSets shown above is the following:
as you can see, when the shape is applied to the particles the result is not the expected one.
Presets shortcut button has been added to the DynamicSet View. This will give you access to pre-defined DynamicSet setups. Those presets are a good starting place when creating a new tP simulation. Those presets can be easily expanded or modified to the needs of the specific workflow or pipeline environment.
Now that you know what DynamicSets are and how vital they are to working with thinkingParticles, it's time to look at how the nodes and operators that will reside inside of these DynamicSets are created and connected together to produce amazing results.
While it is highly recommended that you learn how to build particle animations within your DynamicSets next through the Wire Setup View, if you prefer you can click on any of the topics that interest you.
©2024, cebas Visual Technology Inc.