Posterize Time

Lock a property to a specific frame rate so it updates at a fixed interval, perfect for stuttery or stop-motion effects.

Author:
Denis Stefanides
Category:
Time

Expression Code

posterizeTime(8);
value
jsx
// Limits this property’s update rate to 8 frames per second
posterizeTime(8);

// Keeps the original value, but now it only updates 8 times per second
value
jsx

Where to Apply

You can apply this to any property with a stopwatch—Position, Opacity, Scale, Effects, and more. Just Alt+click the stopwatch and paste it in.


How It Works

The posterizeTime() function basically tells After Effects to sample that property at a fixed frame rate—no matter what your comp’s actual frame rate is.

Let’s say your comp runs at 30fps. If you set posterizeTime(8), the property will only update 8 times each second. That creates a blocky, stuttery look—almost like stop-motion animation. The nice thing? It only affects this property, not the whole comp.

Then, value just returns whatever the property would normally be doing—just now, it’s being held or frozen until the next frame update.


Real-World Example: Choppy Wiggle Movement

Want your layer to wiggle, but only on fixed frames like a jittery cartoon or a robot? Here's how you'd do that:

posterizeTime(6);
wiggle(3, 50)
jsx
// Limits updates to 6 frames per second
posterizeTime(6);

// Wiggles the property 3 times per second with an amount of 50 (e.g., pixels for Position)
wiggle(3, 50)
jsx

This combo is great if you're animating a handheld camera shake or character bounce and want it to feel more stylized or retro. Instead of a smooth, fluid wiggle, you get a janky, low-FPS effect that has way more personality.

Pro tip: try using this on Position or Rotation of a null object and parent your camera or graphic layer to it. Makes the whole scene feel like it’s animated by hand.

Frequently asked questions

How do I use the expression on this page?

Just copy the full expression code from the top of this page. Then Alt-click (or Option-click on Mac) the stopwatch on the property you want to animate. Paste the code into the editor and that's it. If you’re not sure which property to use, check the "Where to Apply" section above.

The expression isn’t working. What should I check?

First, make sure your project is using the JavaScript engine (go to File > Project Settings > Expressions). Also double-check for missing characters, and see if the code requires parenting a layer. If so, there will be a comment in the code explaining what needs to be connected.

I’m not sure what the expression does. Where can I learn more?

Take a look at the "How It Works" section on this page. It explains each part of the expression in plain language so you can understand how everything works together.

Can I customize how the expression behaves?

Yes, absolutely. Most expressions include easy-to-edit variables near the top and comments that guide you on what to change. You can also link sliders or checkboxes using Expression Controls if you want more control in the timeline.

Can I apply this to other properties too?

Yes, you can use it on any property with a stopwatch. That includes Position, Scale, Opacity, and also effect settings like Blur or Tint.

Will it work in comps with different frame rates or sizes?

In most cases, yes. These expressions are designed to adapt to your comp’s resolution and frame rate. If anything specific needs adjusting, it’ll be noted in the code or in the "How It Works" section.

Related Expressions

Explore more expressions in this category