Enfoque del artículo: En este tutorial, Dan ebberts explora cómo puede utilizar las expresiones en After Effects 5.5 a construir un 3d bastante sofisticado generador de partículas. Nuestras partículas responden a la velocidad inicial, Gravedad, Viento, Arrastre, Y mucho más. Uso de este generador de partículas, Veremos cómo crear explosiones, Humo, Una explosión de fuego, Caída de nieve, E incluso un líquido similar al flujo. Vamos a estudiar cómo hacer que cada partícula reutilizables, Lo que nos permitirá simular una fuente de partículas similares a los arroyos. Este es un muy avanzado.
La idea básica es que vamos a importar una representación gráfica de una sola partícula. Vamos a arrastrar en nuestra competición y hacerlo 3d. Vamos a aplicar nuestras expresiones de la simulación física de partículas y, a continuación, nuestro duplicar esa capa veces suficiente para obtener un resultado convincente. Vamos a establecer las expresiones de modo que cada partícula (la capa) se comportan de forma diferente. Vamos a aplicar muchas de las expresiones de las propiedades de las partículas, Incluida la posición, Escala, Opacidad, Y la rotación.
Vamos a empezar con una simple explosión y el desarrollo de las expresiones más complejas a partir de ahí. Con el tiempo se involucran bastante peludo de matemáticas y física de algunos (lo siento!), Pero la buena noticia es que no necesariamente tienen que entender exactamente cómo las expresiones de trabajo - sólo tiene que saber cómo modificarlas para que haga lo que quiera. En la primera parte del tutorial, Lo voy a intentar hacer, La medida de lo posible, Es para cubrir los fundamentos de cómo las expresiones de trabajo y cómo modificar los. Entonces, Hacia el final, El valiente puede seguir conmigo a través de la peluda de matemáticas y física.
La estrategia --- ---
Queremos que cada una de nuestras partículas tienen una vida útil definida que será al azar dentro de un rango determinado. Ya que será la aplicación de las expresiones de múltiples propiedades de la partícula, NeceSentarseamos alguna manera de comunicar información acerca de las partículas de la vida a todas las expresiones que lo neceSentarsean. Vamos a hacer esto mediante la realización de cálculos de la vida en una expresión de control (si desea obtener más información acerca de los controles de expresión, Ver mi tutorial La construcción de la cámara más grande del mundo). Entonces vamos a utilizar la expresión de control como de sólo lectura Variable global Que se puede acceder a todas las otras expresiones aplicadas a nuestras partículas.
--- dejar 's comenzar!---
Seguir adelante y abrir el archivo de proyecto y abra la "explosión - básico" comp. Verás que hay una capa gráfica llamada "estrella bengala" y una nula capa, Que ambos hayan convertido en 3d. Vamos a estar utilizando la posición de la nula para que el centro de la explosión. Vamos a hacer referencia a la nula de partículas como el "emisor" y luego vamos en torno a la nula impartir "emisor de velocidad" a las partículas. Seleccione la opción "estrella bengala" capa y el tipo "u" para mostrar todas las propiedades que se han aplicado a las mismas expresiones. También el tipo Ctrl + Shift + T (pc) o cmd + Mayús + T ( MAC ) Para mostrar los efectos de la capa aplicada. Verás que un "punto" de control se ha aplicado y llamarse "vida". Puede que se le preguntaba por qué había que utilizar un punto de control en lugar de un deslizador de control para mantener la "vida" valor. La razón es que más tarde (cuando se llega a reutilizables partículas) que vamos a pasar a la necesidad tanto de "vida" y "nacimiento" veces lo que neceSentarseamos un control que puede pasar dos valores. No puede simplemente utilizar dos controles deslizante? No, Porque los cálculos de "nacimiento" y "vida" tiene que ser hecho dentro de la misma expresión para que funcione. En la línea de tiempo, Haga clic en la vuelta al lado de "punto" para revelar la expresión aplicada a la "vida" punto de control:
Lmin = 1.5; / / mínimo de partículas de vida
Lmáx = 2.5, / / la vida máxima de las partículas
Esta expresión se generan de forma aleatoria "vida" valor para nuestros partículas que se Sentarseúa entre el 1.5 y 2.5 segundos. Este valor será conectado en el segundo elemento de nuestra variable de control. El primer elemento ( "nacimiento") es sólo ponen a cero ya que en esta primera explosión comp todas nuestras partículas se nace en el momento cero. El "seed_random" llamada sólo dice After Effects que queremos obtener el mismo valor aleatorio para la "vida" cada vez que ejecuta la expresión (de otro modo la "vida" de lúpulo de todo valor en cada marco - que no Nos ayudan a Aquí). Si desea obtener más información acerca de "seed_random", Ver mi tutorial Generación aleatoria Motion. Si usted quiere cambiar la vida útil de las partículas, Que acaba de cambiar el "lmin" y "lmáx" valores.
Haga clic en la siguiente vuelta a la posición de revelar esta expresión:
Vmin = 500 / / velocidad mínima inicial
Vmax = 700 / / máximo de la velocidad inicial
= efecto nacimiento ( "la vida").Parámetro ( "punto") [0];
= efecto de la vida ( "vida").Parámetro ( "punto") [1];
Origen = this_comp.Capa ( "null 1").Posición.Value_at_time (nacimiento);
Edad = tiempo de nacimiento;
Verd_random (1,True);
S = aleatorio (vmin,Vmáx); / / velocidad inicial
A = degrees_to_radians (aleatorio (180)) / / ángulo de visión vertical
R = degrees_to_radians (aleatorio (360)) / / eje y la rotación alrededor de
X = s * matemáticas.Sin (a) de matemáticas *.Cos (r);
Y =- s * matemáticas.Cos (a);
Z = s * matemáticas.Sin (a) de matemáticas *.Sin (r);
V = [x,y,Z];
Origen + v * tiempo
Esta es la posición básica de una expresión "cero gramos" explosión. Pondrá en marcha nuestro partículas en una dirección aleatoria en el espacio 3D a partir de la "origen" (que es sólo la posición de la capa nulo) con una velocidad inicial de entre 500 y 700 unidades (lo que equivale aproximadamente a los píxeles por segundo). La partícula que seguirá en la velocidad y dirección hasta que muere en. Todavía no hemos factor en el viento, Gravedad, Y arrastre. Estoy seguro de que usted ha visto las tres líneas que utilizan el javascript Funciones trigonométricas para calcular la x, y, Z y componentes de la partícula del vector de velocidad. Este vector se genera a partir de los valores aleatorios de la velocidad ( "s"), ángulo de lanzamiento vertical ( "a") y el relativo a la rotación del eje y de compensación ( "r"). No te preocupes demasiado por este vector todas las cosas en este momento - como he dicho antes, No tienes que entender cómo funciona para poder utilizarlo y lo cubre en mayor detalle más adelante. Lo principal que usted neceSentarsea saber acerca de esta versión de la posición de expresión es que puede editar el "vmin" y "vmáx" valores para cambiar la velocidad inicial de la partícula. Más tarde vamos a añadir una limitación para el ángulo de la vertical que nos permitirá generar una fuente de tipo spray.
Haga clic en la pequeña vuelta al lado de la escala para mostrar la expresión:
Max_Escala = 50 / / máximo de la escala
S =.2; / / escala de tiempo en pista
= efecto de la vida ( "vida").Parámetro ( "punto") [1];
Edad = tiempo-efecto ( "la vida").Parámetro ( "punto") [0]; / / edad = tiempo de nacimiento
Si (edad s) (
X = (edad / s) * Max_Escala;
[x,x,100]
) else (
[Max_Escala,Max_Escala,100]
}
Todo esto no es expresión de la rampa de la escala de 0 al valor indicado en el "Max_Escala" (50% en este caso) durante el período definido por la "s" (.2 segundos en este caso). Si desea que el máximo para llegar a las partículas de tamaño más rápido o más lento, Puede editar el valor de "s". Tenga en cuenta que este valor debe ser inferior a "lmin" de la "vida" expresión si quieres estar seguro de que la partícula llega a tamaño completo antes de que muera.
Ahora haga clic en la siguiente vuelta a la rotación y z verás esta expresión:
Rmax = 1080 / / máximo de rotación
Rmin =- 1080; / / mínimo de rotación
= efecto nacimiento ( "la vida").Parámetro ( "punto") [0];
Verd_random (1,True);
R = random (rmin,Rmax);
= efecto de la vida ( "vida").Parámetro ( "punto") [1];
Edad = tiempo de nacimiento;
If (vidas == 0) (
0
) else (
R / la vida de edad *
}
Esta expresión recoge un valor aleatorio (entre -1080 y 1080 grados grados) para la rotación alrededor del eje z sobre la vida de la partícula. Aviso que este utiliza la expresión "luz" y "vida" los valores desde el punto de control. También tomamos nota de la utilización de la "seed_random" función para asegurarse de que el valor seleccionado al azar de rotación sigue siendo el mismo cada vez que la expresión se calcula. Si usted quiere cambiar la cantidad de las partículas puede girar, Puede editar el "rmax y rmin" valores.
Finalmente, Haga clic en la siguiente vuelta a la opacidad de revelar esta expresión:
Decaimiento =.75; / / fade-out de partículas tiempo
Max_Opacidad = 100 / / máximo de opacidad
= efecto de la vida ( "vida").Parámetro ( "punto") [1];
Edad = tiempo-efecto ( "la vida").Parámetro ( "punto") [0];
If (edad vida) (
0
) else (
If (edad vida decaimiento) (
((la vida de edad) / decaimiento) * Max_Opacidad;
) else (
Max_Opacidad
}
}
Esta expresión se ocupa de la fade-out de la partícula al final de su vida. "Decadencia" es el momento, En segundos, Que la atenuación dura. Puede editar este valor si usted quiere cambiar el fade-out. Este valor debe ser inferior a la "lmin" valor de la "vida" de control. "Max_Opacidad" es, Como se podría esperar, El valor máximo de opacidad que desea llegar a la partícula.
Que es todo por las expresiones de esta primera explosión. Seleccione la opción "estrella bengala" duplicar capa y un montón de veces. Normalmente simplemente pulse Ctrl + D (PC) o cmd + d ( MAC ) Cuatro o cinco veces, Seleccionar el original y todos los duplicados y luego pulsa Ctrl + D / cmd + da montón más veces para generar al menos el 50 partículas. Vista previa de la competición. Naturalmente, Con muchas capas que, Cada uno con cinco expresiones aplicadas, Podrá tomar un poco de tiempo para hacer la vista previa. Al aplicar esta técnica, Tendrá que hacer balance de tiempo contra la utilización de partículas lo suficientemente convincente para crear un efecto. Usted debe acabar con una bonita explosión 3d donde las partículas sólo explosión en todas direcciones sin ningún tipo de fuerzas que actúan sobre ellos, salvo su velocidad inicial.
--Zero-G explosión con 65 partículas
--- dejar 's obtener física ---
Ahora vamos a saltar en la más profunda de la piscina y añadir los efectos físicos de viento, Gravedad, Arrastre, Emisor y la velocidad a nuestra posición de expresión. Vamos a añadir todo el código ahora, Pero no necesariamente el uso de todos los nuevos parámetros para cada ejemplo. Vamos a pasar por un montón de ejemplos, aunque, Hasta que hemos cubierto todo. Seguir adelante y abrir la "explosión de la física" comp. Seleccione una de las "estrellas bengala" capas y el tipo "p" para mostrar la posición de propiedad. Haga clic en la siguiente vuelta a la "posición" para revelar la nueva expresión, que incluye toda la física. Este es el nuevo código:
= 100 g / / gravedad
W = 0; / / viento
Wdir = 0; / / dirección del viento (0 = de izquierda a derecha)
Vmin = 700 / / velocidad mínima inicial
Vmáx = 1000 / / máximo de velocidad inicial
Amin = 0; / / mínimo ángulo de lanzamiento vertical
Amax = 110 / / máximo ángulo de lanzamiento vertical
D = 4; / / arrastrar coeffecient
= efecto nacimiento ( "la vida").Parámetro ( "punto") [0];
= efecto de la vida ( "vida").Parámetro ( "punto") [1];
Origen = this_comp.Capa ( "null 1").Posición.Value_at_time (nacimiento);
Edad = tiempo de nacimiento;
Verd_random (1,True);
S = aleatorio (vmin,Vmáx); / / velocidad inicial
V_e = this_comp.Capa ( "null 1").Posición.Velocity_at_time (nacimiento); / / emisor de velocidad
A = degrees_to_radians (aleatorio (amin,Amax)) / / ángulo de la vertical
R = degrees_to_radians (aleatorio (360)) / / eje y la rotación alrededor de
X = s * matemáticas.Sin (a) de matemáticas *.Cos (r);
Y =- s * matemáticas.Cos (a);
Z = s * matemáticas.Sin (a) de matemáticas *.Sin (r);
V = [x,y,Z] + v_e;
New_speed = longitud (v);
Unit_v = normalizar (v);
Como pueden ver, Hemos añadido el código de la gravedad, Viento (que no está utilizando en este ejemplo), ángulo de lanzamiento, Arrastre, Emisor y la velocidad. No se preocupe aún acerca de cómo funciona todo. Sólo tiene que saber que usted modifique los siete primeros parámetros para cambiar el comportamiento de las partículas. Todas las otras expresiones siguen siendo los mismos que se encontraban en la "explosión - básico" comp.
Seguir adelante y una vista previa de la competición. Usted notará que las partículas de nuestro encuentro ahora la resistencia del aire (arrastre) y se ven afectados por la gravedad. Hemos limitado el ángulo de lanzamiento de las partículas de entre 0 y 110 grados de la vertical.
- explosión con la gravedad (65 partículas)
--- --- ocurrir errores
Abierto y una vista previa de la "explosión de brillo" comp. Se trata de una versión anterior de la "explosión de la física" de compensación que había un error en ella. Resulta que me había quedado fuera de la llamada a seed_random en la expresión para el punto de control. El resultado es un error cuando la opacidad se enciende y se fuera al azar después de la partícula de vida ha expirado. Ya que este efecto es realmente muy bien, Decidí que lo mantenga en torno a. Por lo tanto, el "error" se convierte en una "característica". Aquí está el código de error para el punto de control:
Lmin = 1.5; / / mínimo de partículas de vida
Lmáx = 2.5, / / la vida máxima de las partículas
Vida = aleatorio (lmin,Lmáx);
Nacimiento = 0;
[nacimiento,La vida]
Donde hay humo .....
Ahora vamos a probar nuestra parte en la creación de algo de humo para ir con nuestros explosión. De aquí en adelante, Las cosas se ponen un un poco más fácil. Para obtener diferentes efectos de partículas, Sobre todo ahora que sólo hay que cambiar los parámetros que se han establecido al inicio de las diversas expresiones. Seguir adelante y abrir el "humo" comp. Todo lo que hice para crear esta competición fue para duplicar la "explosión de la física" de compensación y sustituir a la "estrella bengala" imEdadn con el "humo" la imEdadn. Entonces he hecho estas modificaciones a los parámetros en las expresiones:
Posición:
G = 10 / / gravedad
W = 80 / / viento
Escala:
Max_Escala = 150 / / máximo de la escala
Z-rotación:
Rmax = 10 / / máximo de rotación
Rmin =- 10; / / mínimo de rotación
Opacidad:
Decaimiento = 1.25; / / fade-out de partículas tiempo
Max_Opacidad = 50 / / máximo de opacidad
También cambió el modo de mezcla de la capa de "normal" a la "pantalla".
El parámetro cambios reflejan la manera en que el humo que se comporta de manera diferente en respuesta a las diferentes fuerzas físicas. El efecto de la gravedad se ha reducido. El efecto del viento se ha aumentado. Z-la rotación es mucho menos. La opacidad de cada partícula sólo alcanzará el 50%. Llegar a estos valores, a una adivina en la forma en que las partículas deben reaccionar, Y luego ajustar su derecho hasta que se vea. Seguir adelante y una vista previa de la competición. Ojalá usted notará cómo los cambios de parámetros han hecho una gran diferencia en el comportamiento de las partículas.
- partículas de humo con 40
En este punto es posible que se le preguntaba por qué no acaba de poner todos estos parámetros en el control deslizante. Que podríamos hacer y que sin lugar a dudas que el más fácil de ajustar los parámetros. El problema es que si lo haces, De tomar en un golpe muy fuerte hacer. Tal vez merece la pena, Pero me gusta mantener las cosas simple y media la medida de lo posible, Pero no dude en intentar por sí mismo si lo desea.
--- dejar 's añadir un poco a la mezcla de desechos ---
Abierto y una vista previa de los "desechos" comp. Esto es sólo una variación de la "explosión de la física" comp cuando cambié a la partícula "especificaciones" y cambió a 80 de la gravedad y el viento a 80. Max_Escala se ha fijado el 75 y el z-rotación de expresión se ha modificado para sólo seleccionar una orientación aleatoria entre 180 y -180 grados. La opacidad de expresión ha sido desactivado, Dejando la opacidad al 100%.
--- poner las piezas juntas ---
Abierto y una vista previa de la "explosión comp combo". Este comp contiene la "explosión de brillo", "Humos", Y "desechos" comps juntos para demostrar cómo los diferentes tipos de partículas pueden trabajar juntos para crear un complejo efecto. Aviso de que el "colapso transformaciones" se alterna se han convertido en. Esto es para que las partículas de las tres composiciones se entremezclan adecuadamente en el espacio 3D.
- la combinación de múltiples composiciones para crear complejos efectos
Nacido de nuevo --- --- partículas
Ahora vamos a mirar a que nuestra partículas reutilizables. Que es, Muere después de una partícula, Queremos que se renace con distintos atributos, Como si se tratara de una nueva partícula. Esto nos permitirá generar un flujo continuo de partículas. Para hacer esto tenemos que modificar la expresión de nuestra "vida" punto de control. Aquí está el nuevo código:
Lmin = 1.5; / / mínimo de partículas de vida
Lmáx = 2.5, / / la vida máxima de las partículas
I = 1;
Verd_random (I,True);
Delay = aleatorio (lmáx);
Nacimiento = demora;
Muerte = demora;
If (tiempo demora) (
[0,0]
) else (
While (tiempo = muerte) (
I + = 1;
Verd_random (I,True);
Nacimiento = muerte;
Vida = aleatorio (lmin,Lmáx);
+ muerte = vida;
}
[nacimiento,La vida]
}
Esta expresión se ha modificado para incluir una modificación de las expresiones para mi "generación aleatoria Motion "Tutorial. Hay una primera, Retraso aleatorio antes de la generación de la primera encarnación de la partícula. Este plazo será de entre el 0 y el máximo de partículas de vida. De lo contrario, Todos los de "primera generación" de partículas se generan al mismo tiempo (como en una explosión), Que no es lo que queremos para una fuente de tipo efecto. En general, Esta expresión funciona dividiendo la línea de tiempo al azar de longitud en "segmentos" que están entre "lmin" y "lmáx" de duración. Cada segmento representa una nueva vida de la partícula. Para permitir la regeneración de las partículas tienen diferentes características que el original, La seed_random () llama en la posición y rotación z expresiones se ha cambiado a este:
Verd_random (nacimiento,True);
Esto hace que el tiempo del nacimiento de partículas que se utilizará como la semilla, Lo que resultará en cada uno de "vida" de la partícula ser diferente debido a que el nacimiento veces será siempre diferente. El otro cambio que se ha hecho a esta competición es cambiar el "Amax" (máximo ángulo de lanzamiento vertical) de parámetro en la posición de expresión y el 30 para que todas las partículas se pondrá en marcha en una dirección hacia arriba. Seguir adelante y abrir la "fuente" de compensación y una vista previa. Ahora debería ver un rocío continuo de partículas. Tenga en cuenta que esta competición contiene 100 capas de partículas. Si su procesador ahoga, Puede que desee eliminar algunas capas y tratar de nuevo.
- fuente de partículas de aerosol con 100
--- de nuevo a la física ---
Cuando se añade el código a la posición de expresión a fin de incluir los efectos físicos, Hemos añadido una que no hemos examinado aún. Efecto de que la velocidad es impartido por el "emisor" de las partículas. A este punto nuestra emisores (null capas) han sido estacionario. Tiene sentido que si nos movemos a través de nuestra emisora el espacio 3D, Las partículas que se emiten deben tener una tendencia a seguir el emisor hasta que los efectos de arrastre, Gravedad, Enviar y el viento en otras direcciones. Ya que ahora tenemos una fuente de partículas de aerosol en nuestro arsenal, Este es un buen momento para mirar el emisor de la velocidad de la propiedad. Abierto y una vista previa de la "emisor en movimiento 1" comp. En esta competición ha sido el emisor keyframed para moverse en el espacio 3D y la velocidad del emisor es impartida a las partículas. He criaron a una nueva capa ( "pico burbuja") a la nula para que puedas ver cuando el emisor es. Por el contrario, Abierto y una vista previa de la "movimiento emisor 2" comp. Este es exactamente el mismo comp, Pero el código que se agrega en el emisor de la velocidad se ha inhabilitado. Usted debe notar la diferencia.
- emisor en movimiento con velocidad impartida a las partículas
- emisor en movimiento con velocidad no se imparte a las partículas
--- --- más divertido de partículas
Bien ahora que estamos a sólo va a ser alrededor de goofing. Los últimos cuatro composiciones que vamos a ver son sólo variaciones sobre un tema. No voy a entrar en mucho detalle acerca de estos, Pero les invito a examinar las expresiones de cada competición para ver el cómo los parámetros (y, a veces, el código) se han modificado para lograr un efecto diferente.
Abierto y una vista previa de la "nieve" comp. Hay varias cosas acerca de esta nota a comp. Si nos fijamos en la posición de expresión, Usted notará que tenemos un nuevo parámetro para el emisor de ancho. Lo que hacemos con esto es esencialmente nuestro punto emisor a su vez en una "línea" emisor. En este caso nos hemos fijado el emisor de ancho ( "EW") a 600. Cuando una partícula nace, Su posición inicial se encuentra dentro de más o menos la mitad de la anchura del emisor (en la dirección x) de la posición de la nula. Que nos permite generar nuevas partículas en cualquier lugar a lo largo de esa línea. Una cosa que es diferente acerca de esta competición es el uso de múltiples imágenes de partículas. Tengo todas las expresiones para crear una partícula, Dupliqué tres veces y se sustituye cada uno de los duplicados con un copo de nieve imEdadn. Entonces todos los que he seleccionado cuatro de las capas de copo de nieve y la duplicación de ellos un montón de veces.
- nieve con múltiples imágenes de partículas
Abierto y una vista previa de la "explosión de fuego" comp. En este comp viento, Gravedad, Arrastrar y se han establecido a cero. Todas las partículas se puso en marcha en la dirección z negativa (hacia el espectador). Este todavía hay trabajo por, Pero tiene potencial.
- incendio explosión
Ahora abierta y la vista previa "goop" comp. Este fue un intento de generar un flujo de líquido de tipo. Este comp utiliza el emisor de la línea "el concepto de" nieve "de compensación y el" tono "efecto se utiliza para fabricar cada partícula un Color ligeramente diferente. Este es también un trabajo en progreso.
- simulación de flujo de líquido
Finalmente, Abierto y una vista previa de nuestro último ejemplo, Los "anillos" comp. Esta competición es similar al de "explosión de fuego" en el sentido de que todos sus lanzamientos de partículas en la dirección z negativa. Esta competición también tiene una cámara que se keyframed pasar de algo de un lado a un delantero más a la vista. He incluido esta competición sólo para mostrar que también puede utilizar estas expresiones como generadores de movimiento para los objetos que usted puede ser que no suele pensar en como "partículas".
- generador de anillo
Utilizando cámaras --- ---
Esto es probablemente un buen lugar para hablar un poco sobre el uso de cámaras con este sistema de partículas. Las partículas se generan en AE 's 3d espacio, A fin de mover la cámara alrededor de las partículas puede añadir un sentido de profundidad a su animación. Si decides usar una cámara en movimiento, Usted tiene un par de opciones útiles. Si usted no hace nada excepto girar la cámara alrededor del emisor, Eventualmente se convertirá en claro que las partículas son 2d. Esto puede ser el efecto que está después de, Especialmente si usted tiene otros elementos dispuestos en el espacio 3D que son claramente elementos 2d. La otra opción es que las partículas siempre orientada hacia la cámara. Lo hace a través de la capa de menú: Capa transformar auto orientar "orientar hacia la cámara". Dependiendo de las partículas, Esto puede proporcionar una convincente ilusión de que las partículas son 3d. Experimentoo. Divertirse!
--- una palabra acerca de las partículas ---
La eficacia de estas simulaciones depende, En gran parte, Sobre la calidad de las partículas de usar. Le animo a estudiar los que he usado en estos ejemplos y para intentar su mano en hacer su propia y en la sustitución de una de las composiciones. Por ejemplo, Probar los copos de nieve con la sustitución de las hojas de otoño. O simplemente inventar alguna extraña burbuja semi-transparente y ver como se ve en la fuente comp. Experimentoo. Divertirse! También jugar con los diferentes modos de mezcla. Recuerde que usted puede seleccionar todos sus partículas y, a continuación, al cambiar la mezcla de un modo, Todos los demás va a cambiar y.
--- una mirada bajo el capó ---
Bien, Entre los mansos que son libres de salir ahora. Como se prometió, Voy a entrar en la física del movimiento de partículas expresión un poco antes de que esto envuelva. Echemos una mirada más a un típico ejemplo de la posición de expresión que hemos venido utilizando (usaremos el de la "emisor en movimiento 1" comp):
= 100 g / / gravedad
W = 0; / / viento
Wdir = 0; / / dirección del viento (0 = de izquierda a derecha)
Vmin = 500 / / velocidad mínima inicial
Vmax = 700 / / máximo de la velocidad inicial
Amin = 0; / / mínimo ángulo de lanzamiento vertical
Amax = 110 / / máximo ángulo de lanzamiento vertical
D = 4; / / coeficiente de arrastre
= efecto nacimiento ( "la vida").Parámetro ( "punto") [0];
= efecto de la vida ( "vida").Parámetro ( "punto") [1];
Origen = this_comp.Capa ( "null 1").Posición.Value_at_time (nacimiento);
Edad = tiempo de nacimiento;
Verd_random (nacimiento,True);
S = aleatorio (vmin,Vmáx); / / velocidad inicial
V_e = this_comp.Capa ( "null 1").Posición.Velocity_at_time (nacimiento); / / emisor de velocidad
A = degrees_to_radians (aleatorio (amin,Amax)) / / ángulo de la vertical
R = degrees_to_radians (aleatorio (360)) / / eje y la rotación alrededor de
X = s * matemáticas.Sin (a) de matemáticas *.Cos (r);
Y =- s * matemáticas.Cos (a);
Z = s * matemáticas.Sin (a) de matemáticas *.Sin (r);
V = [x,y,Z] + v_e;
New_speed = longitud (v);
Unit_v = normalizar (v);
No soy experto en sistemas de partículas, Pero he visto algunos ejemplos de código usado para generar los. Los que he visto suelen hacer los cálculos sobre la base de incremento de la cantidad de cosas han cambiado desde el último ciclo de cálculo. Una gran cantidad de información acerca de cada partícula y se almacena para cada ciclo de actualización del cálculo. En un ejemplo sencillo, La posición actual, Dirección, Velocidad, Color, Edad, Y la esperanza de vida de la partícula puede ser guardado. El cálculo se ve en estos valores, Así como las actuales fuerzas que actúan sobre las partículas y calcula que cada uno debe estar en la próxima vez que el incremento.
Hemos de enfocar las cosas un poco diferente en After Effects. Como ustedes saben, (especialmente si ha leído mi "generación aleatoria Motion "Tutorial) no es fácil pasar de un ciclo de información (marco), de un cálculo a la siguiente. Variables no sobreviven a partir de un marco a la próxima. Así que no tenemos manera de almacenar toda esta información sobre el estado de la partícula en el anterior marco. Tenemos un plan distinto. Actividades, Sin embargo, Una serie de piezas de información útil a nuestra disposición. Desde el punto de control, Tenemos la partícula del nacimiento y la vida los valores. Ya que tenemos acceso a la hora actual, Podemos calcular la edad de la partícula. Utilizando la siguiente declaración, Podemos determinar si el espacio en 3D de partículas nació:
Origen = this_comp.Capa ( "null 1").Posición.Value_at_time (nacimiento);
De manera similar, La velocidad inicial de la emisora se puede obtener con esta declaración:
Aviso de que "v_e" es un vector. Tiene una magnitud y una dirección que representa la velocidad del emisor.
La velocidad inicial y el ángulo de lanzamiento de partículas están determinadas por estos tres llamadas a la función aleatoria:
S = aleatorio (vmin,Vmáx); / / velocidad inicial
A = degrees_to_radians (aleatorio (amin,Amax)) / / ángulo de la vertical
R = degrees_to_radians (aleatorio (360)) / / eje y la rotación alrededor de
Para asegurarse de que siempre recibe el mismo valores aleatorios durante toda la vida de la partícula, Estas llamadas a la función de azar están precedidos por la siguiente llamada a la "seed_random" función:
Verd_random (nacimiento,True);
Usamos "seed_random" para fijar la semilla del generador de números aleatorios a la vez el nacimiento de la partícula. Ese número seguirá siendo el mismo largo de la vida de la partícula, Así que siempre podrás recrear la velocidad inicial y los valores de ángulo de lanzamiento.
Armados con esta información, Un poco de trigonometría, Y un poco de matemáticas de vectores, Estamos listos para hacer frente a esta cosa. Nuestro plan consiste en calcular las condiciones actuales sobre la base de las condiciones iniciales y cuánto tiempo ha transcurrido desde la partícula nació, Que nos debería dar resultados aceptables.
Bien nuestro primer cálculo será el de convertir la velocidad y ángulo de nuestro lanzamiento de partículas a una velocidad de vectores. Lo hacemos mediante el cálculo del individuo x, y, Z y componentes del vector usando un poco de trigonometría. Estos son los estados para calcular x, y, Y z:
X = s * matemáticas.Sin (a) de matemáticas *.Cos (r);
Y =- s * matemáticas.Cos (a);
Z = s * matemáticas.Sin (a) de matemáticas *.Sin (r);
Tendrá que tomar mi palabra para este. Traté de llegar a un elegante diagrama para mostrar cómo esta se deriva, Pero es necesario que se muestra en el espacio 3D y la cosa es realmente saturado con prisa. Si sabe trigonométrica, Puede músculo a través de él y averiguar lo que está pasando. De todos modos, Ahora estamos listos para combinar la velocidad inicial del vector con el emisor del vector de velocidad inicial para obtener un compuesto de vectores de velocidad. Aquí está el código:
V = [x,y,Z] + v_e;
Ver, Vector de matemáticas no es demasiado miedo (sobre todo desde Adobe cambiado con 5.5 a permitir el uso de las matemáticas a los operadores, "+" En este caso).
Ahora vamos a convertir este nuevo vector de velocidad de una magnitud (velocidad), y un vector unitario (un vector unitario es sólo un vector de longitud 1):
New_speed = longitud (v);
Unit_v = normalizar (v);
Lo que vamos a hacer es calcular el impacto que ha tenido sobre el arrastre de las partículas sobre la vida de la partícula a este punto. Esto es probablemente la más delicada de cálculo de todo el proyecto. Resulta que lo que tenemos que hacer es doblar el efecto de arrastre en el cálculo de la posición de la partícula en el actual marco. Tenemos la magnitud y la dirección de la partícula debido a la velocidad inicial de las partículas y el emisor de la velocidad inicial. Sabemos que la resistencia del aire actuará para frenar la partícula en, La forma que la partícula se está moviendo. Así que lo que tenemos que hacer es integrar (como en el cálculo - lo siento!) El efecto arrastre de la fuerza con el paso del tiempo. Esto resulta en la siguiente ecuación:
El resultado de este cálculo ( "delta_p") es la posición actual de la partícula, Teniendo en cuenta únicamente la velocidad inicial de partículas, Emisor de velocidad, Y el efecto de arrastre. Los actos de arrastre para disminuir la velocidad de las partículas a un ritmo exponencial.
Próximo tenemos que calcular el efecto del viento. Este un más fácil. De la física nos recuerde que
Distancia = velocidad * tiempo
A fin de calcular en qué medida el viento se ha trasladado de las partículas desde su nacimiento, Sólo tenemos que hacer esto:
* w = delta_w edad;
La fórmula para el efecto de la gravedad es un poco más complicado, Pero no demasiado. Volver a nuestros física, Recordamos que nuestra distancia de partículas se mueven por el efecto de la gravedad está dada por esta declaración:
Delta_g = g * edad * edad / 2;
Ahora todo lo que tienes que hacer es combinar estos elementos. Tenemos todas las magnitudes de las distancias se trasladó por las partículas debido a las distintas fuerzas. Ahora sólo tenemos que convertir a los vectores en la dirección y añadirlas hasta obtener la posición final del vector. Sabemos que la gravedad actúa en sentido vertical. Actos de viento en la dirección del parámetro "wdir". El componente inicial de partículas debido a la velocidad, Emisor de velocidad, Actos y arrastre en la dirección de la unidad de vectores que se calculó anteriormente. Así que aquí es el paso final que combina todos los componentes en las direcciones:
Aquí puedes ver que la partícula a partir del vector ( "origen") se combina con la distancia se trasladó debido a la velocidad inicial / arrastre (en la dirección de la unidad de vectores), El efecto del viento sobre la "x" y "z" coordenadas, Y el efecto de la gravedad en la "y" dirección.
Bien, Eso es todo! Todas estas fórmulas son realmente correcta? No sé. Que parecen funcionar lo suficientemente bien como para generar simulaciones útil. Espero que disfruten jugando con ellos.
# # Dan ebberts
Siéntase libre de hablar de esta técnica en el After Effects foro Aquí, en CreativeCow.
Por favor viSentarsee nuestros foros y ver otros artículos en CreativeCow.net Si has encontrado esta página de un vínculo directo.