Find Target Test

By default, Find Target sends particles to a specified target or targets. Upon reaching a target, the particles become eligible for redirection to another event. You can specify that the particles should use a particular speed or time frame in moving toward the target. You can also specify where on the target the particles should go.

Alternatively, you can use Find Target as a simple proximity test: If a particle comes within a certain distance of its target, it becomes eligible for redirection to the next event.

Find Target icon

When you add a Find Target test to the particle system in Particle View, a spherical Find Target icon, or helper, appears in the scene at the world origin (0,0,0). You can use this icon as a target, or you can use one or more mesh objects in the scene as targets. To display the Find Target parameters on the Modify panel, select the icon. If you delete the icon, Particle Flow also deletes the test.

Note: If you add Find Target from the Create panel, Particle Flow creates a separate event for the test in the particle diagram.
Tip: In a particle loop, all particles end up at their respective starting positions, enabling seamless repetition of the resulting animation. You can make particle loops with Particle Flow using a Script operator and a Find Target operator. At the start of the loop, the Script operator should read all particle positions and write them into the MXS Vector channel. Then, at the end of the loop, set the Find Target operator to Control by Time, set Timing to Absolute Time, set Time to the end of the loop, and in the Target group, set Point to By Script Vector. Particle Flow will direct particles to the previously cached position at the specified frame.

Script Operator Example

Following is an example of the script operator that can be used when the Target group Object By Script Integer option is active. It assigns the target objects according to particle speed. If the speed is below 1 unit per frame, then the particle is assigned to the first target (index=0). If the speed is higher than 10 units per frame then the particle is assigned to the third target (index=2). All other particles are assigned to the second target (index=1).

on ChannelsUsed pCont do
(
  pCont.useTime = true 
  pCont.useSpeed = true 
  pCont.useInteger = true
)

on Init pCont do 
(

)

on Proceed pCont do 
(
  count = pCont.NumParticles() 
  slowSpeed = 1/160.0 
  fastSpeed = 10/160.0 

  for i in 1 to count do 
  ( 
    pCont.particleIndex = i 
    if length(pCont.particleSpeed) < slowSpeed then pCont.particleInteger = 0 
    else (
       if (length(pCont.particleSpeed) > fastSpeed) then pCont.particleInteger = 2 
       else pCont.particleInteger = 1 
    ) 
  )
)
on Release pCont do
(

)

Interface

The user interface appears in the parameters panel, on the right side of the Particle View dialog.

[Control By drop-down list]
The drop-down list at the top of the parameters panel lets you choose whether to send particles to a target by specifying the speed and acceleration, or by specifying the amount of time they should take. Alternatively, by choosing No Control, you can test particles' distance from a target.
  • Control By Speed Specify speed and acceleration settings for the particles to follow while traveling to the target. Use the Control By Speed group to set the parameters.
  • Control By Time Specify time-based settings for the particles to follow while traveling to the target. Use the Control By Time group to set the parameters.
  • No Control With this option, Find Target functions only as a proximity test. When a particle comes within the specified distance of the target, the particles become eligible for redirection to the next event.
    Note: When you choose No Control, the Find Target test does not affect particle speed or direction.

Test True If Distance To group

These settings let you choose which distance the Find Target test measures and specify the measured distance. You can choose Target Pivot or Target Point, and specify a distance with the Is Less Than setting.

  • Target Pivot Measures the distance between the particle and the target pivot.

    If the particles are directed to the outside of the target and the Is Less Than value is small, this condition might never be satisfied.

  • Target Point Measures the distance between the particle and the target point.
Is Less Than
When particles are closer than this distance from target pivot or point, they test True and become eligible for redirection to the next event. Measured in scene units.
Note: If you set Is Less Than to 0, the particles might never test True. This might be desirable for an animation of, for example, bees buzzing around a flower but not landing on it. In this case, you might want to use a low value for Accel Limit so the bees don’t circle too close to the flower.

Control By Speed group

Use these settings to specify speed and acceleration parameters when using Control By Speed or Speed Then Time. This group is available only when using Control By Speed.

Use Cruise Speed
When on, Particle Flow gives you explicit control over particle speed and speed variation. When off, Particle Flow calculates particle speed automatically using the Accel Limit value. Default=on.
Speed
Particle speed in scene units per second. Default=300.0.
Variation
The amount by which the actual Speed value can vary randomly. Default=0.0.

To obtain the actual speed for each particle, the system multiplies the Variation value by a random number between –1.0 and 1.0, and then applies the result as a percentage of the Speed setting. For example, if Speed=200 and Variation=10, then the actual speed for each particle would vary randomly between 190 and 210.

Accel Limit
Sets the acceleration limit. This value impacts the inertia and speed of the particles. Default=1000.0.

The default acceleration limit value is based on the default Speed value of 300.0. If you change the Speed value, it is recommended that you also change the Accel Limit value proportionately.

Tip: Use a lower Accel Limit value for smooth motion, and a higher value when greater accuracy is needed, such as when the particles should hit a small target. You can animate this setting (use Sync By Event Duration) to specify different appropriate values, depending on the required results.
Ease In %
Controls the rate by which particles slow down when it approaches the target point.

Particle Flow calculates the final speed with this formula: (100% – Ease In) * Speed. Therefore, if the Ease In value is 100%, a particle should approach the target with a speed of 0, and if Ease In is 0%, the particle doesn't slow down at all when approaching the target. At intermediate values, the speed is calculated according to the distance to the target point, as linear interpolation between the initial (cruise) speed, and the final speed. When a particle enters the event, the distance to the target point is calculated and later used for the interpolation. Default=0.0.

Sync By
Choose the time frame to use when animating Speed, Variation, and Accel Limit:
  • Absolute Time Any keys set for parameters are applied at the actual frames for which they're set.
  • Particle Age Any keys set for parameters are applied at the corresponding frames of each particle's existence.
  • Event Duration Any keys set for parameters are applied to each particle starting when it first enters the event.

Control By Time group

Lets you specify the amount of time particles should take to reach the target. This group is available only when using Control By Speed.

Timing
Determines how Particle Flow applies the specified timing, defined by the Time and Variation values. The possible options are:
  • Absolute Time Time refers to the overall time of the system. Each particle will reach its target at the frame number specified by Time.
  • Particle Age Time refers to the time elapsed since the birth of the particle. Each particle will reach its target when its age reaches the value specified by Time.
  • Event Duration Time refers to the time elapsed since the particle entered the current event. Each particle will reach its target when it has been in the current for the number of frames specified by Time.
Time
The number of frames particles should take to reach the target. Default=60.
Variation
The number of frames by which Time can vary randomly. Default=5.

To obtain the actual time to the target for each spawned particle, the system multiplies the Variation value by a random number between –1.0 and 1.0, and then adds the result to the Time value. For example, if Time=60 and Variation=20, then the time to target for each particle would be between 40 and 80 frames.

Subframe Sampling
Turning this on helps avoid particle "puffing" by timing particles at a much higher subframe resolution (that is, throughout each frame), rather than using the relatively coarse frame resolution. Default=on.

"Puffing" is the effect of clustering particles, rather than producing a continuous stream. This effect is especially noticeable when the emitter is animated.

Use Docking Speed
Lets you specify particles' speed when they reach the target.

A particle might be required to reach the target from a specific direction at a specific speed. When Use Docking Speed is off, Particle Flow calculates a path for particles to reach the target in the shortest distance with the least acceleration along the path. When Use Docking Speed is on, Particle Flow calculates particles' final speed when they reach the target using the Speed and Variation parameters. Therefore if you want a “smooth landing,” set Speed to 0.0. Default=off.

Speed
The speed of particles when they reach the target in scene units per second. Default=100.0.
Variation
The amount by which the actual Speed value can vary randomly. Default=0.0.

Target group

By default, Find Target uses its own target icon, but you can use these controls to designate other scene objects as targets instead.

  • Icon (The default.) Use the Find Target icon as the target.

    Each Find Target test has its own target icon. Even if you don't use it as a target, it still influences particle behavior if you set the docking type to Parallel, Spherical, or Cylindrical.

  • Mesh Objects Use one or more scene mesh objects as targets. Choose this to make the list and list-management buttons available.

    If you designate more than one target, the target used by each particle is determined by the choice in the Object drop-down list in this group.

[list]
Shows the mesh objects used as targets. If more than three target objects apply, a scroll bar appears at the right side of the list.
Add
Click this button, and then select a mesh object in the scene to add it to the list as a target.
By List
Click this button, and then use the Select Target Objects dialog to add one or more mesh objects to the list. The objects must already exist in the scene, and the dialog shows only eligible objects.
Remove
To remove a target object from the list, first highlight it and then click this button. Any removed objects remain in the scene.
Sync By
Choose the time frame to use when sending particles toward animated objects when using Animated Shape or Follow Target Animation:
  • Absolute Time Animation derived from the target is applied to particles immediately.
  • Particle Age Animation derived from the target is applied to particles at the corresponding frames of each particle's existence.
  • Event Duration Animation derived from the target is applied to particles is applied to each particle starting when it first enters the event.
Animated Shape
Turn on to allow particles to target the surface of an object whose form is animated by scaling, by morphing, or with modifiers. This requires more computation, because the destination must be updated at every integration step.
Follow Target Animation
Turn on to allow particles to follow a moving target; that is, a target whose location is animated. This requires more computation, because the destination must be updated at every integration step.
Point
Lets you specify where on its target a particle should land.
  • Random Each particle targets a random point on the target.
  • Closest Surface Each particle targets the nearest point of the target’s surface.
  • By Script Vector The target point or points are defined using a Script operator that defines values in the particleVector channel. The Script operator can be anywhere upstream of the Find Target test.
    Note: When using By Script Vector to target absolute positions, such as vertex locations, be sure to set Target to Icon. If you set it to Mesh, the positions specified by the script will be relative to the position of the mesh object. This latter option is useful for placing scripted targets on the surface of a moving object.
Object
With multiple mesh targets, lets you specify how Particle Flow should choose among them. Available only when targeting more than one object.
  • Random For each particle, Particle Flow chooses a target object at random.
  • Closest Pivot For each particle, Particle Flow chooses as its target the object whose pivot is nearest to the particle.
  • Closest Surface For each particle, Particle Flow chooses as its target the object whose surface is nearest to the particle.
  • Least Deviation For each particle, Particle Flow chooses as its target the object that requires the least change in its current direction (or resteering) to reach.
  • By Script Integer For each particle, the choice of a targeted object is defined by a script operator that sets an index. This index corresponds to a target-object entry position in the target list. See Script Operator Example.
Lock On Target Object
When on, Particle Flow calculates each particle's target object once: when the particle enters the event. Thereafter, the particle is “locked on” to its target object. When off, Particle Flow can continually recalculate the target object for each particle. Available only when multiple target objects are designated.

For example, if you set particles to target the closest surface, due to the target animation and particle movement, the definition of the closest surface is constantly changing. Thus the particle may change the target object due to the circumstances.

Note: Each time Find Target sets a target object, it “locks on” to a specific point on that object. This point can change only if the target object changes. Thus, with a single target object, the target point always remains constant relative to the target object. That is, if the target object or its surface is animated, and Follow Target Animation or Animated Shape is on, the absolute coordinates of the target point may change.
Note: When Lock On Target Object is off, more calculation is required because the system might have to recalculate each particle's optimal target point in each frame.

Docking Direction group

Docking type
Lets you specify from which direction particles should approach targets.
  • None Specified No docking constraints. Particles reach their targets in the most efficient way, based on their assigned parameters and their current attributes.
  • Along Icon Arrow The final direction is the same as the Find Target icon arrow.
    Note: When using this option, arrows appear on the Find Target icon to indicate the direction particles will use for docking. You can change the docking direction by reorienting the icon. This applies even when using mesh objects as targets.
  • Icon Spherical The final direction points toward the center of the operator icon.
    Note: When using this option, arrows appear on the Find Target icon to indicate the directions particles will use for docking. You can change the docking directions by reorienting the icon. This applies even when using mesh objects as targets.
  • Icon Cylindrical The final direction points toward the icon arrow as a line, thus forming a cylindrical field with the arrow as the cylinder's main axis.
    Note: When using this option, arrows appear on the Find Target icon to indicate the directions particles will use for docking. You can change the docking directions by reorienting the icon. This applies even when using mesh objects as targets.
  • Surface Normals Each particle reaches its target point from a direction perpendicular to the surface at that point.
    Note: When using this option, arrows appear on the Find Target icon to indicate that particles will use surface normals for docking; the actual directions they will use depends on the target surface. This applies even when using mesh objects as targets.
Distance
The distance from the target at which particles begin docking behavior. This includes the docking direction, and, when using Control By Time, the docking speed.
Icon Size
Set the size of the Find Target icon. This affects particle behavior when using the icon as the target.
Color Coordinated
When on, the Find Target icon uses the color of the event containing the test as defined by its local Display operator, if one exists. This applies even if the Display operator is turned off. When off, the Find Target icon uses the default Test Gizmos color as defined in Customize User Interface Colors Particle Flow. Default=on.

Turn on Color Coordinated to make it easier to spot the Find Target icon, because the particles in the event use the same color as the icon.

Uniqueness group

The Uniqueness setting enables randomization of the Random options and the Variation options.

Seed
Specifies a randomization value.
New
Calculates a new seed using a randomization formula.