Operators

tyFlow operators are what create and drive particles in a simulation.

Click an operator name in the sidebar to find more information about a particular operator.


Operator Activation

After an operator has been added to a flow, it can be enabled/disabled by clicking on its icon.


Operator Settings

The settings for a particular operator can be accessed in the subrollout on the right hand side of the tyFlow editor. An operator must be selected before its settings will be revealed.


Common Settings

Many operators contain common settings. These settings pertain to operator timing controls, as well as test condition controls.


Filters Rollout

The Filters rollout allows you to control which particles will be affected by an operator.

  • Enable filters: controls whether particle filtering will be enabled for the operator.

  • AND/OR: controls the test condition for multiple filters. “And” means that a particle must pass all filters in order to be affected by the operator. “Or” means that a particle must pass any filter in order to be affected by the operator.

  • Filter list: the list of filters that will be used to test particle properties.

  • Property Type: the property that the selected filter will test.

  • Test TRUE if property is: the property test condition.

Test Value
  • Absolute/Custom Float: controls whether the test value will be an absolute value, or a value derived from a custom float data channel of the particle being tested.

  • Value: the absolute test value.

  • Channel: the custom float data channel from which to derive the test value.

  • Variation %: the per-particle percentage of variation to apply.
Custom Float
  • Channel: the custom float data channel from which to derive the property value.
Simulation Groups
  • Simulation Groups: controls which particle simulation groups will be used as the property test.

Uniqueness

  • Seed: the seed value for all varied parameters.

  • Seed by time: the seed value will be incremented with the current time in ticks.

Timing Rollout

The Timing rollout controls when particles will be affected by an operator.

  • Timing type: controls the timing type of the operator.

On Event Entry: particles will only be affected by the operator when they first enter the event.

On Event Entry (Interval): particles will only be affected by the operator if they enter the event within a specified range of frames.

Continuous: particles will be continually affected by the operator as long as they stay in the event.

Event Age: particles will be continually affected by the operator as long as their lifetime within the event is within a specified range of values.

Particle Age: particles will be continually affected by the operator as long as their lifetime within the simulation is within a specified range of values.

Frames: particles will be continually affected by the operator as long as the current frame is within a specified range of values.

  • Range: the range of values which will affect various timing types.
Variation: the per-particle amount of variation to apply.
  • Seed: the seed value for all varied parameters.

Test Action Rollout

The Test Action rollout controls what will happen to particles that satisfy a conditional test within an operator.

  • Send Out: controls whether particles that satisfy the test condition of an operator will be sent to the next event (if the operator has a valid output connection).

  • Increment custom float: controls whether particles that satisfy the test condition of an operator will have the value of one of their custom data channels incremented.

  • Channel: the channel whose value will be incremented.

Sometimes you may want a particle to satisfy the test conditions of multiple operators before sending it to another event. In that case, you would set the test action of all of the relevant operators to “increment custom float”. Then, you would put a Custom Properties operator (whose timing is set to “continuous”) at the top of the event’s operator stack (and have it reset the value of the appropriate custom data channel to 0 each time step), and a Property Test at the end of the event’s operator stack which would be used to check the value of that custom data channel. The Property Test’s test action would be set to “send out” and the condition would be set to the desired value of the custom data channel. For example, if you wanted to chain three different operator’s test conditions together, you would use the Property Test to test for a custom data channel value of 3 before sending particles to the next event.

With that method in mind you can easily craft more complex test conditions within certain events.

  • Ignore: nothing will happen to particles that satisfy the test condition.

Data
  • Save event age when test TRUE: saves the event age of a particle to a custom float data channel at the time when it satisfies the test condition.

  • Frames/Ticks: controls which unit of time to save the event age value in.

  • Channel: the channel where the value will be saved.