La expresión random en After Effects es a la vez versátil y esencial. Hay muchas aplicaciones donde la expresión random puede ayudar a aliviar la carga de las pequeñas y tediosas tareas de animación que lentamente se comen a la hora de animar. Sin embargo, la expresión random puede ser un poco confusa si eres nuevo en las expresiones de After Effects.
Hoy voy a desglosar las entradas y salidas de la expresión random para que puedas empezar a incorporar esta potente herramienta en tu flujo de trabajo de motion design. Pongámonos en marcha y aprendamos a controlar la expresión random…
¿Qué es la expresión random en After Effects?
La expresión random se utiliza en After Effects para generar valores aleatorios para la propiedad a la que se aplica. Eso parece bastante sencillo, pero ¿sabías que hay algunas expresiones aleatorias diferentes disponibles en After Effects?
Aquí hay una lista de expresiones aleatorias que cubriremos:
- random(maxValOrArray);
- random(minValOrArray, maxValOrArray);
- gaussRandom(minValOrArray, maxValOrArray);
- seedRandom(seed, timeless = false);
Así que, puede que te preguntes, “¿por qué hay tantas opciones para generar un número aleatorio?” Bueno, como artista vas a necesitar un poco de control, y estas diversas expresiones aleatorias ofrecen formas únicas de controlar la aleatoriedad en After Effects.
¿Nuevo en las expresiones de After Effects?
Si eres nuevo en las expresiones y quieres seguir adelante, así es como se añade una expresión a una propiedad en After Effects:
- Selecciona una capa y encuentra una propiedad que quieras afectar (como la opacidad).
- Opción (alt en PC) + clic en el icono del cronómetro junto a la propiedad deseada.
- Copia y pega, o escribe las expresiones de este artículo en el editor de expresiones.
Ahora, echemos un vistazo a las muchas opciones de expresiones aleatorias…
Desglose de la Expresión Random
Vamos a ir una expresión a la vez, de la más fácil a la más difícil, y desglosar lo que está pasando.
La expresión aleatoria básica
La forma más básica de la expresión aleatoria en After Effects es simplemente random();.
random(50);
En el ejemplo anterior, After Effects devolverá valores aleatorios entre 0 y 50 cada cuadro. El número escrito entre paréntesis es el valor máximo que establecimos para esta propiedad.
Si aplicáramos esta expresión a la capa de opacidad, elegiríamos al azar un valor entre 0 y 50 cada cuadro. Si escribieras 100 en lugar de 50, entonces el valor de opacidad se animaría aleatoriamente entre 0 y 100. El azar tampoco es sólo para la opacidad. También puedes aleatorizar casi cualquier propiedad en After Effects, incluida la escala (ver más abajo).
Antes de que continuemos…
Algo que puede confundirte cuando trabajas con la expresión random, es que las propiedades que requieren dos dimensiones, o dos valores, necesitan una atención especial. Estos “cubos” de múltiples valores se llaman arreglos (arrays). Es sólo un poco más de código para ayudar a After Effects a interpretar qué información va a dónde. Por ejemplo, algunas propiedades que requieren dos valores son la escala, la posición y el punto de anclaje.
//Un valor
random(50);
//Dos valores
p = random(50);
[p,p];
Todo lo que hicimos fue colocar la expresión random dentro de la variable p, y luego escribimos una matriz usando paréntesis con la variable p. Esto nos devolverá el mismo valor para ambas dimensiones.
Cuando empiezas a escribir una expresión tienes que terminar con el mismo número de valores con los que empezaste. Si colocas una expresión en posición, entonces comenzarás con dos números, un valor x y un valor y. Cuando termines tu expresión, After Effects seguirá esperando valores tanto para la posición x como para la posición y.
Cuando trabajes con propiedades como la rotación o la opacidad, no tendrás que preocuparte por usar un arreglo para terminar tu código. Estas propiedades sólo utilizan un único valor.
Ganando un Poco más de Control
Si quieres añadir un poco más de control al rango de valores aleatorios puedes escribir random(minValOrArray, maxValOrArray);.
random(40,75);
Bien, entonces, ¿qué está pasando aquí y cómo es esto exactamente diferente? En el ejemplo anterior sólo proporcionaste un valor, que era el valor máximo permitido. En este ejemplo somos capaces de establecer tanto un valor mínimo como uno máximo, permitiéndonos definir un rango de valores personalizado.
Si la expresión anterior se aplicara a la propiedad de opacidad, generaríamos números aleatorios entre 40 y 75 en cada cuadro. Se puede escribir cualquier número que se desee para los valores mínimo y máximo, pero el número más pequeño siempre debe ser el primer número.
Es interesante observar que si se escribe random(0,100); para la opacidad esto sería exactamente lo mismo que si se escribe random(100); porque 0 ya es el valor mínimo permitido, y 100 ya es el valor máximo. Preste atención a las limitaciones de valor de la propiedad cuando escriba sus expresiones y esto podría ayudarle a mantener su código limpio.
Haz que tu Random se Sienta Natural
¿Has oído hablar de la distribución de Gauss? No mucha gente lo ha hecho, y aunque pueda sonar complejo es bastante sencillo de entender. Echemos un vistazo a nuestra próxima expresión aleatoria gaussRandom(); usando la propiedad de opacidad con un rango de 0-100%.
Una imagen impecable, pero ¿cómo se aplica esto a esta expresión aleatoria en After Effects? En lugar de una distribución uniforme de los valores aleatorios, la distribución gaussiana ayudará a conseguir un aspecto más natural utilizando una ecuación de fallo. Sigue conmigo aquí…
Del ejemplo anterior, los valores entre el 40-59% serán elegidos aproximadamente el 38% de las veces. A medida que tus valores se alejen del número medio, se elegirán menos. Aunque esto puede ser obvio, el 50% tiene una probabilidad ligeramente mayor de ser elegido que el 49% debido a la caída de la curva. Si esto fuera una rifa entre 100 personas, querrías ser el número 50. ¡Tus probabilidades de ganar serían dramáticamente mejores que las de la pobre persona número 1 o 100!
Esto es lo que gaussRandom parece en forma de código:
gaussRandom(minValOrArray);
gaussRandom(minValOrArray, maxValOrArray);
Como explicamos para la expresión random(); anterior, también se puede elegir entre proporcionar un único valor o un rango de valores para la expresión gaussRandom();.
Como controlar la expresión random
Si te limitas a la expresión random(); por sí misma, lo que se reproduce será diferente cada vez. Afortunadamente, el equipo de Adobe After Effects nos consiguió una expresión que puede ayudarnos.
Consistencia aleatoria
Usar el método seedRandom te permitirá repetir los mismos movimientos aleatorios cada vez. Esto se logra estableciendo el valor de “semilla”, que le dirá a After Effects qué patrón de algoritmo aleatorio debe elegir y luego utilizar durante cada reproducción.
Para que quede claro, seedRandom no funcionará por sí solo. Tenemos que completar este código utilizando una de las expresiones que hemos cubierto anteriormente. A continuación agregaré un valor de semilla, y luego completaré el código llamando al método gaussRandom.
seedRandom(20, timeless = false);
gaussRandom(20,100);
Usando este pequeño fragmento de código ahora tienes mucho más control sobre tus animaciones. Además, puedes intercambiar gaussRandom(); con random(); para producir un aspecto diferente.
Sin embargo, debo advertirte que la misma semilla usará la misma aleatoriedad independientemente de la capa en la que se use. Por ejemplo, si copias y pegas una expresión de la posición de una capa a otra, se moverán en el mismo patrón exacto. Para arreglar esto, simplemente cambia la semilla y se moverá de manera diferente.
Verdadero o falso
Algo que puede ser confuso sobre seedRandom(); es el argumento atemporal. ¿Qué pasa si lo cambias a verdadero?
Es bastante simple y usaré GIFs para ayudarte a entender cómo funciona. El siguiente GIF se ha ralentizado con una expresión posterizeTime();
Si dejas el argumento Timeless igual a falso tu valor cambiará cada cuadro. En el ejemplo de abajo, el argumento Timeless se establece en “true”.
Ponerla en ” true” hace que la semilla sea ” intemporal”, lo que significa que permanece igual en cada cuadro, pero seguirá eligiendo un valor aleatorio.
El valor de opacidad podría fijarse aleatoriamente en un 50%, y así permanecería durante toda la reproducción. Simplemente cambia el valor de la semilla si quieres un valor de opacidad diferente.
Consejo Pro: Usar el índice de capas con la expresión aleatoria
Establecer un valor de semilla específico cada vez que se implementa este código puede ser tedioso. Aquí hay una solución simple que te quitará parte de esa carga y te ayudará a ahorrar tiempo.
En lugar de escribir un valor numérico, puedes hacer que After Effects utilice el número de capas.
Si usas el índice en tu expresión para la capa 20, entonces el número de la semilla será 20. Haciendo esto te asegurarás de que los cambios de valor no sigan los mismos patrones de otras capas en tu composición. Para lograrlo, simplemente escribe la palabra index donde va el valor de la semilla, así:
seedRandom(index, false);
gaussRandom(20,100);
Esto es extremadamente útil si estás copiando y pegando expresiones a través de varias capas, y te ahorrará tiempo para ir a cada capa y cambiar la semilla.
Un buen ejemplo de la expresión aleatoria
¡Tomemos un poco de ese conocimiento que acabamos de aprender y te mostraré algo genial! Aquí hay un equipo que se desplaza aleatoriamente cuando una capa debe animarse.
Usamos la expresión aleatoria en este ejemplo para dejar que After Effects se desplace y elija cuándo debe comenzar nuestra animación! Lo genial es que es aleatoria para cada capa. ¿Podrías imaginarte tener más círculos que eso? Sin la expresión aleatoria, tendrías que animar cada uno de ellos de forma diferente o incluso desplazar cada capa. Eso llevaría mucho tiempo!
Bueno, hemos visto mucho en este artículo y espero que no se te haya hecho un nudo. Igual, sabes que podés hacerme cualquier consulta usando la famosa caja de comentarios, debajo.