Limit Modifier

With this modifier you can limit the movement of particles by preventing them from moving in one or more planes. So for example, if you have a Turbulence modifier in the scene, the Limit modifier could be used to restrict movement to the X and Z axes, with no movement along the Y axis.

Note that if you set the limit to 100% in all three fields, the particles will not move at all!

In the latest version you can also limit particle rotations or use the modifier to limit a variety of other particle data values.

This modifier was originally written by Paul Taylor in Python using the X-Particles API. Paul generously allowed us to convert his modifier into a full inbuilt modifier for the particle system.

Interface

This modifier has the following sections:

For the 'Groups Affected', 'Mapping', and 'Falloff' tabs, and for the buttons at the bottom of the interface, please see the 'Common interface elements' page.

Parameters

General quicktab

Parameters

Enabled

Uncheck this switch to disable the modifier.

Mode

Independent [default setting]

In this mode, the modifier will work in the same way as a standard Cinema 4D particle modifier: particles will be affected if they come into the field of effect of the modifier. X-Particle Actions have no effect on the modifier in this mode.

Action-Controlled

In this mode, the modifier will only act on a particle when told to do so by an Action. Until that point, the particle will not be affected, but once activated for a particular particle, the modifier will continue to influence it as long as it is in the field of effect of the modifier. The modifier's effect on a particle can be halted by means of another Action, if desired.

Limit Positions

Check this switch to enable position limiting.

Use Emitter Space

If this space is unchecked, the axes on which movement is limited will be the global, 3D world, axes. If it is checked the emitter axis is used instead. You will only see a difference if the emitter is rotated so its axes are not aligned with the world axes. Note that this setting has no effect if you are emitting from an object, only if you emit directly from an emitter.

Axis Limit

This is the limit, in percentage terms, of movement on the three axes. A value of zero means no limit, a value of 100% results in no movement at all on that axis.

In X-Particles 4, the three components (X, Y, and Z axes) of the 'Axis Limit' parameter can now be mapped individually. Previously, the mapping was an overall effect which affected each axis equally.

X-Axis Restriction

This drop-down has three settings:

None

There is no restriction on the X-axis other than the value in 'Axis Limit' if that is greater than zero.

X+

X-axis movement is restricted to the positive axis. This can be combined with the 'Axis Limit' setting to reduce movement along the other axes.

X-

X-axis movement is restricted to the negative axis. This can be combined with the 'Axis Limit' setting to reduce movement along the other axes.

Y-Axis Restriction. Z-Axis Restriction

These operate in the same way as for the 'X-Axis Restriction'.

No Banking

When particles turn to move in a different direction, the bank component of their rotation is often changed automatically. This looks natural for such things as birds, but if you watch a school of fish, they do not appear to bank on turning.

If you would prefer that the particles emulate that behaviour and don't bank when turning, you can use this modifier with 'No Banking' checked.

Scale quicktab

In this quicktab you can apply limits to the particle's scale.

Limit Scale

Check this switch to enable scale limiting.

Limit Upper Scale

To limit the maximum scale of the particle, check this switch.

Upper Limit

If 'Limit Upper Scale' is checked, this is the maximum scale of the particle.

Limit Lower Scale

To limit the minimum scale of the particle, check this switch.

Lower Limit

f 'Limit Lower Scale' is checked, this is the minimum scale of the particle.

Rotations quicktab

In this quicktab you can limit the rotation applied to a particle.

Limit Rotations

Check this switch to enable rotation limiting.

Limit H positive

When checked, particle positive rotation around the H axis will be limited to the value in 'Positive Limit'.

Positive Limit

The limiting value to use when 'Limit H Positive' is checked.

Limit H Negative, Negative Limit

As for 'Limit H Positive' and 'Positive Limit' but for negative rotation around the H axis.

Limit P Positive, Positive Limit, Limit P Negative, Negative Limit, Limit B Positive, Positive Limit, Limit B Negative, Negative Limit

As for rotation around the H axis for the P and B axes.

Restrictions on rotation limiting

The emitter

If you use the emitter Extended Data tab to implement a rotation mode such as Tangential rotation, this modifier will have no effect. This is because the emitter rotates the particle after all modifiers are executed, so will override anything the Limit modifier does. If you don't want that to happen, enable rotations in the emitter but leave its 'Rotation Mode' setting at 'None'. You can use the Spin modifier to carry out the rotations instead. This has a 'Tangential' mode so the emitter is not needed for such rotation.

Degrees of freedom

One problem to be aware of is that it is not possible to limit rotations around all three axes independently. As an example, consider what happens if you use a Direction modifier to change the direction to +90 degrees H (heading), and a Spin modifier to rotate the particle tangentially. You would see something like this:

If you use the XP Console to see the rotation values, you will see that the particle is rotating around H but P and B are still zero. You can use the Limit modifier to restrict the rotation around the H axis and it will not affect the P or B axes.

Now in the Direction modifier also change the direction to +45 degrees on P (pitch). Then you see this:

If you use the XP Console, you see that as well as changes to H and P, rotation around B also changes. This is inevitable: change two axes of rotation and the third must change too. If we use a Limit modifier to limit rotation around B to zero degrees, it will work - but the rotation will no longer be tangential, because altering B must alter H and P as well, as seen here:

This is a known issue with 3D rotations. Just be aware that in some circumstances it is not possible to limit rotations without altering the rotation in an undesirable way.

Other Data quicktab

You can use this quicktab to limit the value of several particle data parameters to within upper and/or lower limits.

Limit Other Data

Check this switch to enable the limiting of other particle data.

Parameter to Limit

From this drop-down menu you can choose the data item to limit. The options are:

  • Speed
  • Radius
  • Mass
  • Temperature
  • Smoke
  • Fuel
  • Fire

Clip Lower Values

If checked, the selected parameter will be clamped to no lower than the value in the 'Value' parameter.

Value

The lower limit value to use.

Clip Higher Values

If checked, the selected parameter will be clamped to no higher than the value in the 'Value' parameter.

Value

The upper limit value to use.