How to use the After Effects Wiggle Expression

28 March 2017

The Wiggle Expression in After Effects is a great way to make objects move randomly, have some sort of idle Movement in character joints, animate a random camera shake, create wobbly text or animate a blinking/flickering light.

Although it is somewhat common knowledge what Wiggle does, I keep forgetting how the correct syntax is and what parts of the Wiggle Expression does what.

So here are some basic and advanced wiggle() Expression snippets for you to copy and paste into your After Effects projects and adjust to your liking:


Basic After Effects Wiggle Expression explained

wiggle(freq, amp, octaves=1, amp_mult=.5, t=time) 

//freq being the frequency, so how often per second the value should wiggle //amp being the amplitude, so how far the value should wiggle
//octaves is the number of octaves of noise to add together.
//This value controls how much detail is in the wiggle.
//Make this value higher than the default of 1 to include higher frequencies or lower to include amplitude harmonics in the wiggle.
//amp_mult is the amount that amp is multiplied by for each octave.
//This value controls how fast the harmonics drop off.
//t is the base start time.

 

Wiggle Expression examples

//wiggle far but slowly
wiggle(1.2, 700);

//wiggle a bit faster but not so far
wiggle(3, 20);

//wiggle fast but not far
wiggle(11, 7);

 

Making wiggle start and stop at specific times

//If your wiggle expression should start at 3 seconds
timeToStart = 3; 
if (time > timeToStart){ 
    wiggle(3,25); 
}else{ 
    value; 
}

//If your wiggle expression should stop at 10 seconds
timeToStop = 10; 
if (time > timeToStop){ 
    value; 
}else{ 
    wiggle(3,25); 
}

//If your wiggle expression should start at 5 seconds and stop at 15 seconds
timeToStart = 5; 
timeToStop = 15; 
  
if ((time > timeToStart) && (time < timeToStop)){ 
    wiggle(3,25); 
}else{ 
    value; 
}

 

Tell the wiggle Expression to only wiggle in one direction

//wiggle only in x (horizontal):
org=value;
temp=wiggle (5,50);
[temp[0],org[1]];

//Shorthand:
[wiggle(5,50)[0],position[1]]

//wiggle only in y (vertical):
org=value;
temp=wiggle (5,50);
[org[0],temp[1]];

//Shorthand:
[position[0],wiggle(5,50)[1]]

 

For more organic and natural looking wiggles also try these tips by Tyler on his Motion Array Site. You can also spice things up by adding a random generator to your wiggle. Here is how to.

 

What useful Wiggle Expressions do you know of? Share your knowledge in the Comments.

 

Alex - post author

Hi, I am Alex, a passionate Director and 3D Generalist currently working in an Animation Studio.

Leave a Reply

Notify of
avatar
wpDiscuz