The Property Test operator tests if particles satisfy property-based conditions.
Property List: the list of testable particle properties.
Test TRUE if property is: various conditions that will be used in the test.
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.
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.
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.
The noise settings allow you to offset the way in which particle positions are measured during the neighbor test.
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.
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.
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).
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.
Test by ID: controls whether only bindings which have a matching ID will be counted.
ID: the ID to match.
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 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.
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.