NiPSysDragModifier

From GECK
Jump to: navigation, search

NiPSysDragModifier is a modifier for particle systems that applies a drag effect on particles in the system. It does so by defining a point in local scene space (i.e. contained to the NIF) that applies an reductive percentage to particle velocity in its area of influence along a local axis. It is used to slow the speed of particles over time, and some NIFs disable them at times to maintain speed.

A typical example of a NiPSysDragModifier.

Its fields are:

  • Name: Usually named along the lines of "NiPSysDragModifier(X-Axis)" to mark the local axis established in that specific modifier for use in animation.
  • Order: 4000 seems to be the only one used, it instructs the particle system to update forces from this modifier.
  • Target: The particle system you wish to affect.
  • Active: If the modifier is enabled. You can animate this value by specifying the name of the modifier as the Controller ID in a NiControllerSequence and using a NiPSysModifierActiveCtlr as a controller with a NiBoolTimelineInterpolator as the interpolator.
  • Drag Object: A NiNode to center the drag effect on.
  • Drag Axis: Specifies the local axis of the drag force on the Drag Object. Seems to be limited to one axis per modifier, works on a float between 0 and 1.
  • Percentage: Particle velocity is reduced by this percentage when they fall within the Drag Object's area of effect.
  • Range: The distance from the center of the Drag Object that marks its area of full effect. Leave as <float_max> to cover an infinite space in the NIF.
  • Range Falloff: A distance after the Range that diminishes the strength of the Percentage value until its end, where the drag effect ceases to apply.