ADOBE AFTER EFFECTS: Forum Expressions Tutorials Creative Cloud

Randomizing a Time Remap for Eyeblink Tweens

COW Forums : Adobe After Effects Expressions

<< PREVIOUS   •   FAQ   •   VIEW ALL   •   PRINT   •   NEXT >>
Jordan Lambrecht
Randomizing a Time Remap for Eyeblink Tweens
on Aug 8, 2019 at 5:55:08 pm

Hi all,

I'd like to hear your thoughts on this. I'm currently working on a head rig. Up until now I’ve had the characters blink every three seconds or so with a loopOut. Each eye has two blink tweens with hold keyframes on their appacity. Here's what it's looking like:

I'm wondering if there's a way I could make it a little dynamic and randomize the loop of blinks. For example sometimes they do a double blink, sometimes they blink from 3-5 seconds, but they never just rapidly blink nonstop.

My first thought was to maybe precomp both sets of tweens, enable time remapping on the precomps, attach them to a DUIK slider, and throw some expression on it? I'm not sure what that expression would look like though. Also I can’t really precomp both sets up tweens together because I have a controller that rotates the eyes and such.

Let me know your thoughts!

Return to posts index

Jordan Lambrecht
Re: Randomizing a Time Remap for Eyeblink Tweens
on Aug 15, 2019 at 7:36:44 pm

I eventually figured it out. I'm using a funky combo of time remapping, precomping, and Dan Ebbert's expression here.

I precomped the two sets of tweens together (i.e [halfOpen] [fullOpen]->[Blink R] & [halfOpen], [fullOpen] -> [Blink L]). The two precomps ended up being 5 frames. From there, I dropped them into place and enabled Time Remapping on them. I used DUIK to make a quick dummy switch and keyframed the switch turning on and off over the course of 5 frames (this has to match). I then precomped the dummy switch, and made the precomp a guide layer. From there I added three expression sliders to the dummy switch: Min Delay, Max Delay, and Seed Random. I enabled time remapping on the dummy switch and made sure it matched the remapping of the two blink comps. I applied Dan's expression to the dummy switch's time remap keyframes and tweaked it a little bit so it used the data from the three sliders. Finally, I pick whipped the time remapping keyframes on the two blink comps to the time remapping on the dummy switch.

This is probably an over-complication of it, but the project we're working on has around 14 character rigs so there's a lot of reusability out of this. I also really like the random seed slider; it makes sure all the characters aren't blinking in unison a la Children of the Corn. Here's a vimeo link of it in action .

If anyone has tips on streamlining this, HMU.

if (numKeys > 1){
minDelay = effect("Min Delay (seconds)")("Slider");
maxDelay = effect("Max Delay (seconds)")("Slider");
t1 = key(1).time;
t2 = key(numKeys).time;
if (time > t2){
acc = t2;
i = effect("Seed Random")("Slider");
while (acc &lt;= time){
delay = random(minDelay,maxDelay);
prev = acc;
acc += delay + (t2 - t1);
if (time &lt; prev + delay)
valueAtTime(t1 + time - (prev + delay));

Return to posts index

<< PREVIOUS   •   VIEW ALL   •   PRINT   •   NEXT >>
© 2019 All Rights Reserved