Joe Clay | Feb 19, 2016

Happy Friday! Here's a free script that my studiomate, Sev has asked me about. It lets you put text into a floating/dockable panel, so you can keep important text (like your script) right next to your compositions!

Scripty preview

I got to learn how to better lay out script UIs and you get a free script! Perhaps in the future there will be a paid version that will swap selected text into a layer or something. But for now, this is it. For some reason AE text boxes support rich text too, so if you paste in text that's bold or italic that'll be shown also.

The only caveat is that you download it through gumroad so I can get an idea of how it's doing. It's free and pay what you want, so you can download it without having to put in any contact info! You will have to enter 0 for the amount though! Anyway, I hope you find it useful!

Get it here.

The Newness

Joe Clay | Feb 17, 2016

Hi guys! I'm Joe from Workbench. Get used to that phrase. If you're around here often, you'll probably hear it a lot.

I've been wanting to make Workbench for a while. It's my time to begin a community. Unfortunately, I still need to add commenting to this blog, and some other stuff here and there. Until then, feel free to contact us or you can hit me up on twitter @workbench_tv. You can find out more about my story and the Workbench story in the about section. There are a few tutorials up now for you to peruse, and there's a few products to check out. And there will be a lot more tutorials, products, and freebies coming.


Joe Clay | Jan 25, 2016

Here are some of the useful expressions included with Quiver.

//Autofade: Add to opacity
transition = 8;       // transition time in frames
if (marker.numKeys<2){
tSecs = transition / ( 1 / thisComp.frameDuration); // convert to seconds
linear(time, inPoint, inPoint + tSecs, 0, 100) - linear(time, outPoint - tSecs, outPoint, 0, 100)
linear(time, inPoint, marker.key(1).time, 0, 100) - linear(time, marker.key(2).time, outPoint, 0, 100)
//Countdown Timer (apply to Source Text)
t = Math.floor(time);
s = 240 - t;
minutes = Math.floor(s/60);
seconds = s-(minutes*60);
if(seconds < 10)
    seconds = '0' + seconds;
minutes + ':' + seconds;
//Inertial bounce
amp = .1;
freq = 2.0;
decay = 2.0;
n = 0;
if (numKeys > 0){
n = nearestKey(time).index;
if (key(n).time > time){
if (n == 0){ t = 0;
t = time - key(n).time;
if (n > 0){
v = velocityAtTime(key(n).time - thisComp.frameDuration/10);
value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);
//Apply to Time Remap
pos = transform.position;
delay = -1; //in seconds
x = Math.pow(pos[0]-960,2);
y = Math.pow(pos[1]-540,2);
d = Math.sqrt(x+y);
value + linear(d,0,1102,0,delay);
// Spin (rotate at a constant speed without keyframes)
veloc = 360; //rotational velocity (degrees per second)
r = rotation + (time - inPoint) *veloc;
//Moves things in a spiral (apply to position)
rMax = 240; //maximum radius
decay = 0.3; //decay
freq = 6; //frequency
aStart = 0; //start angle offset
aRate = 220; //rotation rate
offsetFactor = 1000; //smoothness
r = rMax/Math.exp(time*decay);
a = degreesToRadians(aStart + aRate*time);
offset = (r/offsetFactor)*Math.sin(freq*time*Math.PI*2);center + [Math.cos(a),Math.sin(a)]*(r + offset);
// Throw (move at a constant speed without keyframes)
veloc = -10; //horizontal velocity (pixels per second)
x = position[0] + (time - inPoint) *veloc;
y = position[1];

I hope these scripts can help you out in your work! Keep an eye on this section for more useful tools!

Intro Build

Joe Clay | Jan 12, 2016

I thought it might be interesting to give a glimpse behind the scenes of building a simple logo animation for the tutorials. This is about two and a half hours in 4 minutes. This isn't everything because I didn't always remember to record what I was doing, but it was a good majority of the time spent on animation.