Property Test operator

The Property Test operator tests if particles satisfy property-based conditions.


Test Type

  • Property List: the list of testable particle properties.

Test Particle

  • Self: the particle’s own properties will be tested.

  • Target: properties of the particle’s target particle will be tested.

  • Channel: the custom float channel containing the target particle ID.

Test Value

  • Test TRUE if property is: various conditions that will be used in the test.

  • Absolute/Custom Float: controls whether the test value will be taken from the spinner, or a custom float data channel.

  • Value: the absolute test value.

  • Channel: the custom float channel from which to take the value.

Variation: the per-particle amount of variation to apply.

Uniqueness

  • Seed: the seed value for all varied parameters.

Boolean Test Value

  • Test TRUE if property is: controls whether a “true” value will test true, or a “false” value (which effectively inverts the result).

Custom Property Value Rollout

  • Channel: the channel to take the custom float particle data from.

Neighbors Rollout

Test type

  • Neighbors within particle’s radius: a particle will be considered a neighbor if its position is within the searching particle’s radius.

  • Particle within neighbors’ radius: a particle will be considered a neighbor if the searching particle is within its radius.

  • Particle and neighbor radii overlap: a particle will be considered a neighbor if its radius overlaps with the searching particle’s radius.


  • Absolute radius: the neighbor search radius of each particle will be set to a specific value.

  • Radius: the specific neighbor search radius value.

  • Shape radius: the neighbor search radius of each particle will be set to each particle’s shape mesh radius.

  • Scale radius: the neighbor search radius of each particle will be set to each particle’s maximum scale dimension.

  • Multiplier: the multiplier to apply to shape/scale radius values.

  • Look ahead: the search will be conducted at a location this far along the particle’s velocity vector.

  • Field of view: the search will be limited to particles within this number of degrees to the particle’s trajectory.

  • Sweep test: searches for neighbors along each particle’s entire trajectory, not just the particle’s starting position.

Built-in Noise

The noise settings allow you to offset the way in which particle positions are measured during the neighbor test.

  • Noise mode: controls which noise algorithm will be used.

  • Noise texmap: the texmap that will be used by the noise texmap mode(s).

  • Noise preview: a preview image showing a 2D representation of the selected noise mode.

  • Strength: the strength of the noise (a multiplier on the default noise range of [-1, 1]).

  • Frequency: the speed at which the noise will evolve over time.

  • Scale: the scale multiplier for position values sent through the noise algorithm. Smaller values create larger noise patterns.

  • Roughness: controls the amount of extra detail applicable noise modes will generate.

  • Lacunarity: controls the scale of successive noise octaves for applicable noise modes.

  • Gain: controls the relative intensity of successive noise octaves for applicable noise modes.

  • Iterations/Octaves: controls the number of overlapping noise patterns that applicable noise modes will generate.

  • Phase: provides manual control over the evolution of the noise over time.

  • Flatten axis: controls which axis of the input particle positions will be set to zero.

Sometimes you may want to flatten an axis for your neighbor test. For example, imagine a stack of particles that are spaced far apart along the world Z-axis, but whose X and Y-axis position values are all the same. From above, the particles would appear to perfectly overlap each other, but from the side they would appear far apart. A standard neighbor test may not flag any of these particles as neighbors due to their Z-axis spacing, but by flattening the Z-axis, to the neighbor test they would all appear to overlap. By flattening an axis you can essentially conduct the neighbor test in two dimensions, which can help to isolate overlaps that a standard three dimensional neighbor test may not.


  • Cache search info: when enabled, particle radii and search distane will be cached each time step, allowing for viewport display.

  • Display search info: displays cached search info in the viewport.

Enabling “display search info” will display search radii and distances in the viewport. Because the info is saved on a per-particle and per-step basis, it could potentially require a non-negligible amount of RAM to cache (for a lot of particles, over a lot of frames). For this reason, it will only be cached if “cache search info” is enabled. Toggling “cache search info” requires a res-sim to take full effect, but toggling “display search info” does not.

Clusters
  • Enable clustering: controls whether neighbor candidates will be deterined by cluster values.

  • Channel: the particle data channel to get cluster values from.

  • Cluster if equal: neighbor candidates must have equal cluster values.

  • Cluster if different: neighbor candidates must have different cluster values.


Actor Animation Rollout

  • Normalize time value: when enabled, the animation time value will be normalized by the animation sequence length.

By default, the animation time value is not normalized. This means that if a sequence is set to loop the playback percent value can be greater than 100 and the playback frame value can be greater than the duration of the sequence (for example, if the sequence has looped 2.5 times, the playback percent test value will be 250). Normalizing the time keeps the playback test values within the range of the duration of the animation sequence. (for example, if the sequence has looped 2.5 times, the playback percent test value will be 50).

Broken Binds Rollout

  • Test by ID: controls whether only bindings which have a matching ID will be tested.

  • ID: the ID to match.

  • TRUE if all broken: controls whether the test condition will be satisfied if all bindings are broken.

Count Binds Rollout

  • Test by ID: controls whether only bindings which have a matching ID will be counted.

  • ID: the ID to match.

Particle Groups Rollout

  • Simulation groups: controls which particle simulation groups will be considered for the test.

Search Binds Rollout

  • Count depth to first matching bind: when selected, the property test value will be the traversal depth taken to the first bind with a matching ID in the connectivity graph.

  • Count number of matching binds: when selected, the property test value will be the number of binds with a matching ID found during the bind connectivity graph traversal.

  • Particle binds/PhysX binds: controls which bind type to perform the search on.

  • ID: the binding ID to look for in the bind search.

  • Depth: the maximum depth in the binding hierarchy to search for bindings with the matching ID.

  • Short circuit: when enabled, the bind search will stop once the test condition is met.

The binding search travels through the binding connectivity graph of particles, counting how many other particles one particular particle is connected to/through. For large connectivity graphs (ex: many particles bound together) this can be a slow process. Enabling the “short circuit” option will cancel the search as soon as the test condition is met. This can improve search performance, however, if you’re saving the test result to a custom float channel, the value may not be accurate (because the search terminated when the condition was met, not when all binds were counted, exhaustively).

Sibling Index Rollout

  • Sibling type: controls which type of sibling to test for.

“Sibling type” just denotes the order in which a particle was born, relative to its other sibling particles. So the first-born child particle of a paticular parent particle is the “first” sibling, the most-recently born is the “last” sibling, etc.

  • Include “only-child” particles: controls whether child particles with no other siblings will be included in the test.

An “only-child” particle is a child particle with no other siblings (it is the only child particle of a particular parent particle). In some situations it may still be useful to consider them a “sibling” for the purpose of the test, even though they have no other siblings. So in that sense, they are the “first” sibling, the “last” sibling…in fact, they are all the siblings because they are the only child. So when “include only-child particles” is enabled, they will satisfy all of the sibling tests.

Texmap Rollout

  • Texmap: the texmap used for the texmap intensity test.