MOGRT Expression Selector stagger freezes in Premiere Pro — valueAtTime() unreliable for large time offsets
In a .mogrt file, a text layer using an Expression Selector with a
character stagger expression based on valueAtTime() produces incorrect
results in Premiere Pro's renderer. The issue does not occur in After
Effects RAM Preview.
---
Reproduction steps:
1. In After Effects, create a text layer inside a mogrt comp (25fps)
2. Add a text animator → Expression Selector → Based On: Characters
3. Add a Slider Control effect named "Evolution", keyframed 100→0
over 19 frames
4. Add a Slider Control effect named "Delay", value 0.30
5. Set the Amount expression:
var v = effect("Evolution")(1);
var delay = effect("Delay")(1);
var offset = (textIndex - 1) * thisComp.frameDuration * delay;
v.valueAtTime(time - offset);
6. Export as .mogrt, place in Premiere Pro timeline
7. Use a text string with 50+ characters
---
Expected behavior:
Characters stagger in smoothly — each character evaluates the slider
at a slightly earlier time, creating a cascade effect.
After Effects RAM Preview renders this correctly.
Actual behavior:
In Premiere Pro, the last several characters freeze at an intermediate
displaced position for ~6–8 frames, then jump instantly to their final
position. The severity increases with longer texts — more characters
means a larger time offset passed to valueAtTime(), and a worse freeze.
---
Root cause (identified via workaround):
valueAtTime(time - offset) is called with offsets of up to ~1 second
for long texts. Premiere's mogrt renderer appears to return stale or
incorrect cached values for valueAtTime() calls with large time offsets.
A secondary contributing issue: Premiere stops re-evaluating the text
layer once the last effect keyframe is reached (frame 19), even though
the stagger expression continues producing changing values beyond that
frame for the remaining characters.
Both issues are Premiere-specific — After Effects evaluates the same
expression correctly.
---
Workaround:
Replace valueAtTime() with a direct time-based linear() calculation,
and extend the effect keyframe range to cover the full stagger duration.
This reduces the freeze to 1–2 frames but does not eliminate it entirely.
---
Environment:
- Premiere Pro [26]
- After Effects [26]
- OS: Windows 11
- Frame rate: 25fps
