This handy-dandy expression by Dan Ebberts (refined minutes ago on the Cow Expression forum) will do what you want. Just add a marker wherever you want the dampening swing. Put the expression on X Rotation of a 3D layer and where you set a marker, SWING-SWing-swing-rest. Adjust amp, freq and decay to taste. The numbers below work good for about a second to settle down.
amp=70; //amplitude (pixels)
freq=2; //frequency (cycles per second)
decay=2.5; //decay time (seconds)
// find previous marker
n = 0; // assume haven’t reached a marker yet
if (marker.numKeys > 0){
n = marker.nearestKey(time).index;
if (marker.key(n).time > time){
n–;
}
}
if (n > 0) t = time – marker.key(n).time else t =0;
a = amp*Math.sin(freq*t*Math.PI*2)/Math.exp(decay*t);
if ((n > 0) && ((marker.key(n).index % 2) == 0)) a = -a;
a
It is setup so that the text will swing away from the viewer, looking correct if the first rotation of the text if fall down and toward the viewer. Then the next marker will make the text kick out the other way, toward the viewer, then next marker away, so you can alternate the rotations and swing-dampening. You’ll see what I mean.
If you want the dampen to always kickout in the same direction then change the last three lines to this:
if (n > 0) t = time – marker.key(n).time else t =0;
a = amp*Math.sin(freq*t*Math.PI*2)/Math.exp(decay*t);
a
Or to this:
if (n > 0) t = time – marker.key(n).time else t =0;
a = amp*Math.sin(freq*t*Math.PI*2)/Math.exp(decay*t);
– a
depending on which way you want to kickout (the same every time).