Rincón AE

Expresiones

Como usar TextLayerBounds

by _TheAway on May.10, 2009, under Expresiones

Esta expresión es especifica para el TextLayerBounds y para una composición con varias capas. Es totalmente inutil en el Karaoke 1.3.1 ya que directamente esta expresion ya forma parte del Master.

 


//Escribe aquí el nombre de la composición donde se han creado las lineas del SSA
Compo=comp(”Composicion Karaoke”);
if (time >0 && Compo.layer(1).outPoint>time)
{
a=Compo.numLayers;
while (a>0 && Compo.layer(a).inPoint<=time)
{
a=a-1;
}
//Aqui Compo.layer(a+1) es el layer actual
layerActual=Compo.layer(a+1);

//Si no estas usando el Karaoke 1.X sobra el if, lo aplicarias directamente tendrias que
//borrar desde aqui

if(layerActual.name!=”Master”)
{
//Hasta aquí
izquierda=layerActual.effect(”TextLayerBounds”)(”Superior izquierda”)[0];
derecha=layerActual.effect(”TextLayerBounds”)(”Inferior derecha”)[0];
abajo=layerActual.effect(”TextLayerBounds”)(”Inferior izquierda”)[1];
arriba=layerActual.effect(”TextLayerBounds”)(”Superior izquierda”)[1];
//abajo + arriba / 2 es, como sabeis, la media aritmetica. Luego estará centrado en la altura de la capa
[izquierda,(abajo+arriba)/2]
//Si sobra el if borras tambien desde aquí
}
else
{
[-100,0]
}
//Hasta aquí
}
else
{
//si no hay ninguna capa ponlo en 0,0
[0,0]
}

Leave a Comment more...

Como acceder a los valores de los efectos usando expresiones

by _TheAway on May.10, 2009, under Expresiones

Acceder a los efectos de las capas es sencillo. Ya que existe una funcion para ello, Effect(). Sin embargo, acceder a un parametro de el efecto no es tan obvio.

En las expresiones, AE trata a los efectos y sus parametros como un arbol. Al usar effect. Cada vez que abres y cierras parentesis, estas accediendo a un nodo hijo de el inmediato a la izquierda. De forma que si haces:

thisLayer.effect(”Glow”);

Lo que está devolviendo es el nodo de este arbol , el efecto en si, y seria algo que a nosotros no nos valdria para nada. Ya que no guarda ninguna informacion de utilidad. Para acceder a lo que nos seria util, vamos, a los valores. Hemos de elegir algun parametro.

Para ello una vez elegido el efecto hay que volver a direccionar el parametro. Que como dije arriba, es con los parentesis. Asi esta expresion:

thisLayer.effect(”Glow”)(”Alpha”);

Esta seleccionando el valor del parametro Alpha de el efecto Glow. Si por algun casual este parametro fueses un parametro compuesto y tuviera otros parametros dependiendo de ellos seria otra vez abrir y cerrar parentesis para seleccionar un parametro hijo.


En ejemplo practico:

Si aplicas TextLayerBounds a una capa de texto y quieres acceder al valor del punto de la esquina inferior derecha desde otra capa seria escribir:

derecha=thisComp.layer(”Texto”).effect(”TextLayerBounds”)(”Inferior derecha”);

En este caso derecha tendria el valor del punto asociado.

X=thisComp.layer(”Texto”).effect(”TextLayerBounds”)(”Inferior derecha”)[0];
Y=thisComp.layer(”Texto”).effect(”TextLayerBounds”)(”Inferior derecha”)[1];

Asi obtienes el valor X e Y respectivamente del punto.

Leave a Comment more...

Fade in fade out sencillo con expresiones

by _TheAway on May.10, 2009, under Expresiones

layerActual=thisLayer;
tiempo=0.5;
if (time>layerActual.inPoint && time < layerActual.outPoint )
{
if (time < layerActual.inPoint+tiempo )

{
linear(time,layerActual.inPoint ,layerActual.inPoint+tiempo,0,100)
}
else if (time>layerActual.outPoint-tiempo )
{
linear(time,layerActual.outPoint-tiempo ,layerActual.outPoint,100,0)
}
else
{
100
}

}
else
{
0
}

Leave a Comment more...

Expresión que recorre los layers.

by _TheAway on May.10, 2009, under Expresiones

Compo=thisComp;
if (time >0 && Compo.layer(1).outPoint > time )
{
a=Compo.numLayers;
while (a >0 && Compo.layer(a).inPoint<=time)
{
a=a-1;
}
//Aqui Compo.layer(a+1) es el layer actual
layerActual=Compo.layer(a+1);
// Se realiza lo que haya que realizar
}
else
{
//caso nulo
}

Leave a Comment more...

Realiza una acción entre 2 markers

by _TheAway on May.10, 2009, under Expresiones

layerActual=thisLayer;
//Extrae los markers de el layer
marcadores=layerActual.marker;
ind=marcadores.nearestKey(time).index;
if (ind<=2)
{
valor=marcadores.key(2).time-marcadores.key(1).time;
indA=1;
}
else {
if (marcadores.key(ind).time<time && marcadores.numKeys>ind)
{
ind=ind+1;
}
//indice anterior
indA=marcadores.key(ind-1).index;
//tiempo de el indice siguiente
valor=marcadores.key(ind).time-marcadores.key(indA).time;
}
//Se realiza la operacion que se quiera realizar en este caso es un incremento gradual de 0 a 1
//en el tiempo entre los markers

linear(time,marcadores.key(indA).time,marcadores.key(ind).time,0,1)

Leave a Comment more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...

Archives

All entries, chronologically...