The Particle Tuner uses custom logic constructed with Expression operators to directly affect the particles of the Phoenix FD Simulator. The primary purpose of the Particle Tuner is to allow for It allows you to do very specific tweaks of the simulation which would otherwise be hard to achieve. It goes through all particles in the simulation and system from the Affect list changes the values only of those particles that pass a the custom condition you created. Example Condition / Action pairs Conditions and Actions would be:
- If the Viscosity of a particle is higher than 0.5, then delete the particle.
- If the distance from a particle to a mesh is less than 5, then reduce the Size of the Foam particle in the simulation.
- If the RGB color of the particle is Red, only then affect the particle with a 3ds Max Wind Force.
You can construct simple conditions such as comparing a value from a particle channel to a number or measuring the distance from a particle to a mesh, and you can also combine many conditions in a complex expression using 'AND' and 'OR' logic. At each simulation step, the Particle Tuner will check each particle against this condition and it will modify the particle channel only if the condition passes. For example:
Unlike the Phoenix FD Mapper, the Particle Tuner can also delete particles from the simulation.
|UI Text Box|
The Particle Tuner is a powerful tool and it will not stop you from creating expressions such as "If the Age is higher than 0, delete the particle". This will kill all particles immediately after they are born which may cause confusion, so you must be careful.
Note that the Particle Tuner affects all Phoenix FD Simulators in the scene unless they explicitly exclude it.
Enabled [ true ] | | tun_enabled – Animatable checkbox that turns on and off the effect of the Particle Tuner.
Affect [ Liquid ] | affectpartsys – Allows | tun_affectpartsys – Allows the Particle Tuner to separately affect the Liquid, Foam, Splash or Mist particles. You can also affect Drag particles in a Fire/Smoke simulation, but note that you cannot change their Velocity channel - they are simply dragged by the fluid. You could affect any Drag particle system by typing Drag in the list, or you can affect specific Drag particle systems by using their exact names.
When [ Edit Condition... ] – Opens the Edit Condition window. The Edit Condition window is used to construct a sequence of tests which are evaluated for every particle of the Phoenix FD Simulator, at each simulation Step. If the particle satisfies the condition, the Then [ Particle Channel ] action is performed. Otherwisethe selected Then actions are performed - Delete Particle, Change Particle Channel or Affect By Forces. Otherwise, the particle is ignored. By default, the condition is set to "Age > 1.000", therefore only those particles whose age is greater than one will be affected by the specified Action.Then [ Viscosity ] | act_specified action. See the Particle Channel Ranges page for more information on the channel ranges.
Delete Particle | tun_act_op_del – When the condition of the Tuner passes for a particle, it will be deleted. If this action is selected, Change Particle Channel and Affect By Forces will have no effect.
Change Particle Channel checkbox | tun_act_op_chan – When the condition of the Tuner passes for a particle, you can choose which of its particle channels will be changed and how:
Channel | tun_act_chan – Selects the Particle Channel to affect. Note that if set to Viscosity or RGB, the channel value can be no lower than 0 and no higher than 1 - Viscosity
and RGB are clamped strictly
inside this range.
The Channel can be one of: [ Size ], [ Age ], [ Viscosity ], [ RGB Red ], [ RGB Green ], [ RGB Blue ], [ Velocity X ], [ Velocity Y ], [ Velocity Z ], [ Speed ].
Action | tun_act_chan_change
– Specifies the type of action to perform on the selected
. You can choose to increase or decrease the value at each simulation step, or set it directly to a certain value.
– Specifies the value for the
Buildup Time (sec)
| tun_buildup_time – Specifies the time it takes (in seconds) for
to gradually reach the specified Action Value. If Buildup Time is 0, the effect is instant.
|UI Text Box|
If If the Buildup Time is set to 0, the specified Action will be executed for every step of the simulation. If the Steps per Frame parameter of the Simulator is set to a value higher than 1, the specified Action will be executed multiple times for a single frame.
Affect By Forces | tun_act_op_force, tun_force_list – When the condition of the Tuner passes for a particle, you can choose which forces will affect it. You can pick 3ds Max forces, Phoenix forces, Mappers, or even other Voxel or Particle Tuners. Using this, you can for example tell a force to only affect the fluid inside a volume, or only affect fluid with certain speed, or even based on a texture mask. When using native 3ds Max forces in the Tuner, you can limit them only to certain particle systems using the Affect list - without using a Tuner, all particle systems in a simulator would be affected.
With Multiplier | tun_force_mult – Multiplier for the strength of the forces. This is particularly useful for easily scaling the effect of 3ds Max forces over a Phoenix simulation.
|UI Text Box|
The Edit Condition window is at the core of the Phoenix FD Particle Tuner. It consists of a Conditions Tree on the left and a Parameters panel for the individual elements in the tree on the right. Any action specified for the selected Then [ Particle Channel ] The Delete Particle, Change Particle Channel or Affect By Forcesactions will only be executed for the particles of the Simulator which satisfy the conditions tree.
Folding (collapsing) of a tree item in the view to the left will show you a simplified view of the expression. For example, collapsing the tree in the image below will change its text to "Age > 1.000", meaning the Particle Tuner will affect only particles whose Age channel is higher than 1 second. You can also read a simplified view of the entire condition expression in the text box below the Edit Condition... button.
Value Expression Item
Number [ 1 ] | val_type, val_number – returns the specified value.
Random Between [ 0 - 1 ] | val_type, val_rand_min, val_rand_max – returns a random number in the selected range. Note: a different value is generated for each particle of the Simulator. The value also changes for every frame.
Channel [ Age ] | val_type, val_chan_part – returns the value of the specified Simulator Particle Channel for the current particle. You must have this particle channel enabled in the Output rollout of your Simulator. The Channel can be one of:[ Size ], [ Age ], [ Viscosity ], [ RGB Red ], [ RGB Green ], [ RGB Blue ], [ Velocity X ], [ Velocity Y ], [ Velocity Z ], [ Speed ]. You can find out more about the usual grid particle channel ranges in Phoenix here.
Distance To [ None ] | val_type, val_dist_node – returns the distance from the current particle to the surface of the specified object. Will be positive if the particle is outside the object volume, and will be negative if the particle is inside the object volume. The distance is in simulation grid voxels. Note: currently you can only pick polygon meshes - measuring distance from the current particle to a nearest particle from a particle system is currently not supported.
Texture [ No Map ] | val_type, val_tex – returns the specified texture's color intensity in the position of the current particle. The Phoenix FD Simulator has no Explicit UV coordinates therefore the texture's Mapping should be set to Planar from Object or World XYZ for this to work.
Compare Expression Item
Compare Type [ Is Greater Than ] | comp_type – Sets the comparison type to perform:
When set to "Is Greater Than", the Compare expression for a given particle will be true when the first Math/Value expression item should return a value larger than the second.
When set to "Is Less Than", the Compare expression for a given particle will be true when the first Math/Value expression item should return a value smaller than the second.
When set to "Is Equal To", the Compare expression for a given particle will be true when both Math/Value expression items evaluate to the same number.
Math Expression Item
Math Type [ Plus ] | math_type – Sets the mathematical operation type to perform:
When set to "Plus", the Math expression returns the sum of the two Math/Value expressions below it.
When set to "Minus", the Math expression returns the difference of the two Math/Value expressions below it.
When set to "Multiplied by", the Math expression returns the product of the two Math/Value expressions below it.
When set to "Divided by", the Math expression returns the quotient of the two Math/Value expressions below it.
Logic Expression Item
Logic Type [ And ]Type | logic_type – Sets the type of logic to use:
When set to "And", both Compare expressions below should evaluate to true for a given particle for the Logic Expression to be true.
When set to "Or", at least one of the two Compare expressions below should evaluate to true for a given particle for the Logic Expression to be true.