Luz volumétrica sin plugins

 

Existen plugins que permiten resultados similares, como el Lux de trapcode , pero seguir los pasos de este tutorial permite conocer mejor cómo trabaja After Effects con expresiones.

En este tutorial abundan las expresiones para detectar la posición de la luz o su punto de interés, y enlazar ese valor con otro de manera dinámica para conseguir un efecto volumétrico, entre otras cosas. Linkear propiedades es un recurso común dentro de After Effects, y si aún no estás familiarizado con las expresiones o si sabes poco y nada, este tutorial te dará indicios de cómo experimentar con esta técnica.


Pero si estás en cero con este tema, sería mejor que antes veas este post: Iniciándose en expresiones en After Effects

Introducción y algo más

Este tutorial está creado a partir de la versión original en inglés, que se puede ver en este link.

La escena se va componiendo más o menos en este orden:
1 – Seteo de composición
2 – Creación de las capas con las que va a trabajar: sólido, luz, cámara.
3 – Linkeo de propiedades con expresiones.
4 – Seteo de efectos, con y sin expresiones.


La dificultad del tutorial se da en las etapas de inserción de código, en la que hay que concentrarse especialmente porque cualquier error de tipeo hace que el bloque de código deje de funcionar.


Por otro lado, siempre que se trabaje con expresiones hay que saber detectar cuándo una palabra debe traducirse al idioma de la versión de After Effects instalada. Por ejemplo, en este tutorial trabaja con el efecto Beam, el cual debe reemplazarse por Haz, y la propiedad Softness por Suavizado


Les recomiendo seguir el tutorial porque creo que a partir de la lógica que propone, con esta técnica, se puede experimentar en muchísimos efectos más, aún cuando no entendamos del todo todo lo que se puede hacer con expresiones. Pero si aún se les complica, o tienen dudas (o fiaca) pueden descargar este archivo:


Luz Volumétrica sin plugins – CS6.rar

A modo de ayuda, les dejo pedazos de código en el orden que van apareciendo en el tutorial.




1

thisComp.layer("luz_amarilla").toComp([0,0,0]);




2

var cp = thisComp.activeCamera.position;
var lp = thisComp.layer("luz_amarilla").position;
var pp = thisComp.layer("luz_amarilla_POI").position;
var cv = normalize(sub(cp, lp));
var pv = normalize(sub(pp, lp));
var theta = Math.acos(dot(cv, pv));
thisComp.layer("luz_amarilla").intensity * (Math.PI / 2 - theta);




3


thisComp.layer("luz_amarilla").toComp([0,0,0]);




4

thisComp.layer("luz_amarilla_POI").toComp([0,0,0]);




5

thisComp.layer("luz_amarilla").coneFeather;




6

var l = length(thisComp.layer("luz_amarilla_POI").position,thisComp.layer("luz_amarilla").position);
var r = l * Math.tan(degreesToRadians(thisComp.layer ("luz_amarilla").coneAngle)/1.1);
var d = thisComp.activeCamera.zoom / length (thisComp.activeCamera.position,thisComp.layer
("luz_amarilla_POI").position);
d * r * (1.0 - effect("Haz") ("Suavizado") / 200);




7 – en el efecto Rampa

thisComp.layer("luz_amarilla").toComp([0,0,0]);

thisComp.layer("luz_amarilla_POI").toComp([0,0,0]);

thisComp.layer("luz_amarilla").color*thisComp.layer("luz_amarilla").intensity/100;




8 – en el efecto Ruido Fractal

thisComp.layer("luz_amarilla").toComp([0,0,0]);