-
Notifications
You must be signed in to change notification settings - Fork 79
Modifiers
The MOPs Aim Modifier orients copies towards a particular point in space, towards an object's centroid, or towards an individual point per-primitive (matched by the id attribute). The instances will have their "forward" or "aim" vector aligned to point directly to the target position, but you'll need to define an up vector yourself. You can either use the Up Vector parameter on the MOPs Aim Modifier, or define a v@up
attribute on your primitives ahead of time (or use MOPs Extract Attributes to get it).
The MOPs Color Modifier simply assigns colors from a ramp based on the value of each copy's @mops_falloff
attribute.
MOPs Curl Modifier pushes instances around based on a curl noise field. Curl noise is great for approximating liquid-like or gaseous-like effects because it's inherently non-divergent; meaning, the noise field itself doesn't self-intersect. In Simple mode, instances are just procedurally moved around by adding the value of the curl noise to @P
. In Advect mode, instances are pushed along the noise field over time, like a solver. You can generate trails from the motion of your objects only in Advect mode.
The Aim Weight determines how quickly your objects rotate to match their direction of motion. The default value of 0.1 is a good starting point so that objects have a little momentum. Higher values will quickly snap your objects to the direction of motion.
If you're using Advect mode and you want the attributes of your copies to update over time, add those attributes to the "Update Attributes" parameter under Solver Settings. By default this will update @mops_falloff
so that you can animate it before applying the curl noise.
MOPs Delay offsets existing animation of instances in time, based on the @mops_falloff
attribute. Higher falloff values mean a longer delay, with a falloff of 1 equivalent to a delay (in seconds) of the Delay Amount parameter. You can delay both the transforms of instances, or the timing of Packed Disk Sequences / Packed Alembics created via a MOPs Instancer if Do Sequence Delay is checked.
MOPs Delay is technically a solver, so if you see unexpected results, try hitting the "Reset Simulation" button to force the simulation to reload.
MOPs Move Along Mesh works in two phases: first, it attaches instances to the mesh based on proximity or random scattering; second, it pushes instances along the mesh based on the orientation of the mesh. The "up" vector of the chosen mesh acts as the "forward" vector for movement. This node works best in conjunction with the MOPs Orient Mesh node, which can easily generate these orientations for you along with options for swirling around the mesh, adding curl noise, and blurring the generated vectors for smoother motion.
The Aim Weight is similar to the same parameter in MOPs Curl Modifier; it determines how quickly an instance orients itself to the direction of motion. A value of 1.0 means each instance will immediately snap to its direction of motion on each timestep.
If your instances start crowding each other you can try to enable Relaxation, but this can be tricky on surfaces with very high curvature. In these situations you may need to implement some other kind of filtering, or consider using POPs or POP Grains with a self-repulsive force and then using MOPs Apply Attributes to snap your instances to the particle sim.
MOPs Move Along Spline moves objects along a path. There are a few presets available in the Tab menu to set up your instances to move as a group, or to simply distribute themselves evenly along the path. There's options for wrapping from the end of the path to the start, so you can get easy looping motion.
Move Along Spline has similar "attach" and "animation" steps as the Move Along Mesh modifier. In the Attach step, you can attach instances to the curve based on attributes, based on their proximity to the curve, or just based on an even distribution. You can even attach to multiple splines per-instance via a point attribute on the instances. The Offset controls determine how much of the original distance between each instance's starting position and the "attach" position is maintained.
The "Animation" step allows you to either procedurally move instances along the curve based on the Goal parameter, or push the instances per timestep in a solver. The Solver mode allows you to additionally create trails that emit from each instance.
MOPs Orient Mesh computes orientation frames on input geometry. It's a little like the Polyframe SOP, but with some fancier options. This node is best used to prepare meshes before using them in the MOPs Move Along Mesh SOP.
For easy "swirling" movement over a mesh, try setting the Compute Method to "N and Up" and enable "Cross Up Vector". This will "wrap" the yellow up vector along the surface of the mesh. You can optionally add curl noise to get more swirly behavior, or enable blurring to soften rough patches.
MOPs Randomize adds randomness to the transforms (translate, rotate, scale) of your instances. It can also randomize the @mops_falloff
attribute. The existing @mops_falloff
attribute, if enabled, will affect the amount of randomness applied. You can tweak the amount of randomness per-axis, if you want to spin your instances around randomly over a single axis, for example.