PART (File Format)

The PART effect script format is used to configure particle effects.

Particles are the most widely-used effect in Metroid Prime, with approximately 3,500 unique scripts across the PAK archives. Each script configures a complete particle system that may draw into the scene.

The particle system is configurable to generate many visual effects:


 * Flames and smoke
 * Floating embers
 * Water splashes/drips
 * Dust and dirt in windy conditions
 * Volumetric light "shimmers"
 * Energy/plasma discharges
 * Many others

The concept behind the particle system is quite simple: lots of view-aligned (camera-facing) quadrilaterals (rectangles) with a texture-image are emitted, positioned, rotated, sized, colored, etc... according to the parameters in the particle script.

Particle Instance
Using the power-in-numbers principle, sophisticated visual effects may be assembled from a large number of individual particles. The effect runtime manages the state of all active particles and their visual properties.

For each frame, each particle does the following primary tasks:


 * Integrates all velocity sources, applies time-scale and advances position 1/60th of a second
 * Evaluates local transforms
 * Scale
 * View-aligned rotation
 * View-aligned offset
 * Evaluates particle color (shader-multiplied with texture-image)

There are other operational steps activated and controlled by the script

Emitter
Each particle-system employs a single emitter context. The emitter generates a specified number of particles each frame; determining the initial position and velocity-vector for each. It also evaluates a lifetime (frame count) for each particle to be in the scene.

Emitters are represented by multiple node-classes:

Point Emitter ( and )
Both nodes receive position and velocity vector parameters. All particle instances are constructed using the parameters directly.

The differences between  and   are presently unknown.

Sphere Emitter
The *sphere emitter* randomly evaluates a point on a sphere of specified offset-vector and radius. The velocity vector is computed from the sphere's normal and scaled by a specified amount.

Partial-Sphere Emitter
Same as the sphere emitter; with additional angular constraints to randomly evaluate within. Therefore, only a sphere-section is emitted from.

PART Keys
Scope is one of (Constant, System, Particle)


 * Constant parameters are evaluated once initially and retained within the system.
 * System parameters are evaluated per-system, per-frame.
 * Particle parameters are evaluated per-system, per-frame, per-particle-instance.

PART Nodes
PART scripts share effect nodes with other effect script formats.

Some nodes are exclusive to PART: