Skip to content

Normalized

Rescales an animation's frame delay against the game speed setting, or paces a particle's damage states over its flight.

Building animation rate

Specification — Building animation rate
Applies to
AircraftTypeBuildingTypeInfantryTypeUnitType
File
art.ini
Section
[<Image ID>]Image ID: Image= value; ObjectType ID when omitted
Value
boolean
When omitted
no

On a structure, Normalized=yes rescales an animation state’s frame delay against the game speed setting, so the animation keeps roughly the same real-time speed at every game speed setting. It applies in two cases only:

  • the first animation state the structure enters;
  • any animation state set while the scenario is being set up.

The construction state is not rescaled in either case.

Separately, every structure rescales its construction and idle states whatever this flag says. That happens when a queued change of animation state takes effect and each time an animation loops. At those points any other state goes back to its configured delay, so the flag’s effect on that state lasts only until its first loop.

An aircraft, infantry type or vehicle stores the flag without effect.

Animation rate

Specification — Animation rate
Applies to
AnimType
File
art.ini
Section
[<ObjectType ID>]
Value
boolean
When omitted
no

Normalized=yes rescales the animation’s frame delay against the GameSpeed setting, so the animation plays at roughly the same real-time rate at every game speed. The delay is rescaled when the animation is created, and again when another animation switches to this type through Next.

A RandomRate pick is made first, and the rescaling applies to whichever delay it produces.

Particle state pacing

Specification — Particle state pacing
Applies to
ParticleType
File
rules.ini
Section
[<ObjectType ID>]
Value
boolean
When omitted
no

Normalized=yes paces a Fire particle’s animation to the distance it is fired across, so flames fired at near and far targets both reach FinalDamageState at roughly the end of their flight. The particle ignores StateAIAdvance and works out its own interval, in frames per state, when it is created:

  1. Divide the distance from its starting point to its target by its starting Velocity. This is its flight time in frames.
  2. Divide the flight time by one more than FinalDamageState, add one, and drop the fraction.

For example, a flame with Velocity=28 and FinalDamageState=14 aimed 1,280 leptons away has a flight time of about 46 frames, which gives an interval of 4 frames per state.

The frame added in step 2 makes the sequence run somewhat longer than the flight, most noticeably for short flights. The calculation also ignores Deacc and assumes the flame keeps its starting speed. A flame that slows down therefore covers less ground in each state, and reaches FinalDamageState closer to where it started.

Only Fire particles use the result. Particles of every other behavior step at StateAIAdvance as written.

The interval is held in one signed byte, like StateAIAdvance. A result above 127 wraps around to a smaller or negative interval, and one that lands on 0 or -1 stops the game as StateAIAdvance describes.

Voxel animation rate

Specification — Voxel animation rate
Applies to
VoxelAnimType
File
rules.ini
Section
[<ObjectType ID>]
Value
boolean
When omitted
no
Used by the game
No — loaded but not used

A voxel animation moves by its bounce physics each frame and has no frame delay for the flag to rescale.