Está en la página 1de 4

AFTER EFFECTS: Expresiones útiles

Curso de Carlos “Zenzuke” Albarrán


Recursos Adicionales

En este documento, al que hago referencia en el vídeo, os dejo una serie de expresiones sencillas
y útiles que he ido recopilando a lo largo del tiempo.

Auto evolución o auto giro en una capa.

time*grados por segundo

Movimiento aleatorio

wiggle(movimientos por segundo,amplitud);

Loops

loopOut(type="cycle", numKeyframes=0)

loopOut(type="pingpong", numKeyframes=0)

loopOut(type="offset", numKeyframes=0)

loopOut(type="continue")

Todos pueden ser loopIn también.

Simular menos fotogramas por segundo

posterizeTime(frames por segundo)

Capa con movimiento perfectamente circular

[(thisComp.width/2), (thisComp.height/2)] + [Math.sin(time)*50, -Math.cos(time)*50]

Aplicar una posición 3D a un parámetro 2D

layer = thisComp.layer("Null 1")

layer.toComp([0,0,0])

Comp to surface.

L =thisComp.layer("pelo 02");

LCP =L.toComp([0,0,0]);

LLP = thisLayer.fromCompToSurface(LCP);

Mantener una capa entre otras dos.

V1 - Sin emparentar.

(thisComp.layer("capa 1").position + thisComp.layer("capa 2").position)/2

V2 - Emparentadas.

(thisComp.layer("capa 1").toWorld(thisComp.layer("capa1").anchorPoint)+thisComp.layer("capa
2").toWorld(thisComp.layer("capa 2").anchorPoint))/2

domestika.org
AFTER EFFECTS: Expresiones útiles
Curso de Carlos “Zenzuke” Albarrán
Recursos Adicionales

Retrasar el movimiento de una capa con respecto a su padre.

delay = 1/25; //Retardo delmovimiento en frames dividido por los fotogramas por segundo

de la composicion

parent.fromWorld(toWorld(anchorPoint,time-delay))

Empezar y terminar wiggle en determinados segundos.

timeToStart = 2;

timeToStop = 4;

if ((time > timeToStart) && (time < timeToStop)){

wiggle(3,25);

}else{

value;

Autofade

Fade in y Fade Out en una capa, si hay marcadores, los usa para definir duración.

//Autofade: Añadir a la opacidad

transition = 20; // tiempo de duración de la transición en frames

if (marker.numKeys<2){

tSecs = transition / ( 1 / thisComp.frameDuration); // convertir a segundos

linear(time, inPoint, inPoint + tSecs, 0, 100) - linear(time, outPoint - tSecs, outPoint,


0, 100)

}else{

linear(time, inPoint,marker.key(1).time,0, 100) -


linear(time,marker.key(2).time,outPoint,0, 100)

Wiggle que se repite en loop.

freq = 1;

amp = 110;

loopTime = 3;

t = time % loopTime;

wiggle1 = wiggle(freq, amp, 1, 0.5, t);

wiggle2 = wiggle(freq, amp, 1, 0.5, t - loopTime);

linear(t, 0, loopTime, wiggle1, wiggle2);

domestika.org
AFTER EFFECTS: Expresiones útiles
Curso de Carlos “Zenzuke” Albarrán
Recursos Adicionales

Capa 3D invisible si no estámirando a cámara.

if (toCompVec([0, 0, 1])[2] > 0 ) value else 0

Animar un parámetro dependiendo del valor de brillo de una capa externa.

sourceLayer = thisComp.layer("CapaGradiente");

sampleSize = [1,1];

samplePoint = transform.position;

colour= sourceLayer.sampleImage(samplePoint,sampleSize);

x=colour[0]*100;

Si el valor es de dimensión 2, añadir.

[x,x]

Easing desde la posición del padre a la posición actual.

parentPos=parent.toWorld(parent.anchorPoint)

myposNow=value;

easeplus=easeOut(time,marker.key(1).time,marker.key(2).time, 0, 100);

easeOut(easeplus, 0, 100, parentPos,myposNow);

Formatear una variable para mostrarla en una caja de texto.

format(Variable);
function format(a){
if(a instanceof Array){
tS="[";for(i in a){tS+=Math.round(a[i])+",";}tS=tS.substring(0,tS.length- 2)+"]\r";
}
else{
tS=Math.round(a);
}
return tS;
}

Formatear texto para un contador de tiempo.

x=Math.round(effect("Time")("Slider")).toString();

while (x.length < 2) x = "0" + x;

"12:"+x;

Animación longitud texto tipo máquina escribir.

n=effect("Reveal")("Slider")*length=text.sourceText.length;

showtext=text.sourceText.substr(0,n);

domestika.org
AFTER EFFECTS: Expresiones útiles
Curso de Carlos “Zenzuke” Albarrán
Recursos Adicionales

Prompt animado con cursor _ parpadeante

n=effect("Reveal")("Slider");

if(Math.round(time*3)%2==0){

showtext=text.sourceText.substr(0,n)+"_";

else{

showtext=text.sourceText.substr(0,n);

Rotación de una capa con velocidad, para poder frenarla.

slider = effect("rpm")("Slider");

accum= 0;

f = timeToFrames(inPoint);

while (f < timeToFrames()){

accum+= slider.valueAtTime(framesToTime(f));

f++;

accum*thisComp.frameDuration*25;

Mantener ancho de stroke aunque escales una capa de forma.

value / length(toComp([0,0]), toComp([0.7071,0.7071])) || 0.001;

Créditos

La mayoría de los scripts son de Dan Ebberts de www.motionscript.comexcepto el del ancho

de los strokes que es de AdamPlouff y el del prompt animado que esmio (Carlos Albarrán).

domestika.org

También podría gustarte