Using PosterizeTime to Limit Frames in After Effects
The posterizeTime expression in Adobe After Effects is a
powerful tool used to control the execution rate of property updates on
a per-layer basis. By locking an expression or keyframe evaluation to a
specific frame rate, animators can achieve stylized visual effects—such
as traditional hand-drawn animation, stop-motion, or retro video
effects—without changing the frame rate of the overall composition. This
guide explains what the posterizeTime expression is, how it
functions mechanically to restrict frame updates, and how to implement
it directly in your animation workflow.
What is the posterizeTime Expression?
posterizeTime is a native After Effects JavaScript
function designed to override the composition's native frame rate for
whichever property it is applied to.
Its basic syntax is:
posterizeTime(framesPerSecond);The parameter framesPerSecond is a number that tells
After Effects how frequently to calculate new values for that property.
For example, in a composition running at 60 frames per second (fps),
setting posterizeTime(12) forces the target property to
calculate a new value only 12 times per second.
How It Limits Frame Updates
Under normal circumstances, After Effects evaluates expressions and interpolates keyframes on every single frame rendering in the composition timeline. In a 30 fps timeline, After Effects calculates property values 30 times each second.
When you declare posterizeTime(fps) in an
expression:
- Quantization of Time: After Effects establishes a new internal clock for the property based on the specified frame rate.
- Value Freezing (Sample-and-Hold): When the timeline reaches a frame that aligns with the target frame rate, After Effects computes the value. For all intermediate frames between those target intervals, After Effects repeats (holds) the last calculated value instead of continuously recalculating or interpolating it.
- Downstream Execution: The command operates
chronologically within the expression. Any code written beneath
posterizeTime()is bound to that lower frame rate, while any code placed before it will continue evaluating at the full composition frame rate.
Implementing the Expression
The most common implementation of posterizeTime pairs it
with dynamic functions like wiggle() to create an organic,
stepped motion rather than a smooth, continuous drift.
Example: Stepped Wiggle
To create a jittery, stop-motion camera shake on a layer's Position property:
posterizeTime(8);
wiggle(4, 30);In this scenario:
wiggle(4, 30)would normally move smoothly across every frame of a high-framerate composition.posterizeTime(8)forces thewiggleto only update 8 times per second.- The visual result is a choppy, tactile movement that mimics claymation or practical camera rigs.
posterizeTime Expression vs. Posterize Time Effect
While After Effects also offers a native effect called "Posterize Time" found under the Time effect category, using the expression version offers distinct advantages:
- Property Isolation: The effect forces the entire layer (including all masks, effects, and transforms) to render at a reduced frame rate. The expression limits frame updates strictly to the individual property where it is applied, allowing you to combine smooth layer movement with stepped rotation or opacity changes.
- Performance: Limiting evaluations via expressions reduces processing load by preventing heavy downstream calculations from running on intermediate frames.
- Modularity: The target frame rate within an expression can be dynamically linked to sliders, mathematical variables, or layer markers.
Common Use Cases
- Animating on "Twos": In traditional 2D animation,
artists frequently draw every second frame (12 fps within a 24 fps
playback rate).
posterizeTime(12)allows digital motion graphics to match the frame-cadence of cel animation seamlessly. - Retro and Low-Fi Visuals: Lowering frame rates to values between 8 and 15 fps gives modern vector graphics a distinct vintage, retro-computing, or stop-motion aesthetic.
- Staccato Lighting/Glitch Effects: Applying
posterizeTimeto an Opacity or Exposure wiggle creates an erratic, flashing strobe effect that holds values long enough to read clearly on screen.