12 Archivos adjunto(s)
Objetos ligeros en caida libre
objetos ligeros en caída libre
Por Juan. Peña/apollux.
https://www.foro3d.com/attachment.ph...1&d=1243265496
introducción:
En este tutorial aprenderás a crear el siguiente efecto: objetos muy ligeros de peso en caída libre hacia el suelo. Dichos objetos tan livianos podrían ser plumas, pétalos de rosa, guirnaldas, etc.
Para esta práctica usaremos plumas como objeto, porque son más difíciles de animar, además de ser el ejemplo más completo en comparación de los anteriores.
Este tutorial está orientado para los usuarios medios y avanzados. Deberías tener un conocimiento previo de la curvas IPO, dupliverts y partículas. Se requiere Blender 2.37.
el objetivo .
Durante un momento especial, nuestra protagonista camina tranquilamente por el campo, atravesando un maravilloso césped verde. El sol brilla, el viento sopla ligeramente, la música es melodramática, y todo el entorno es onírico, cuando súbitamente nuestra protagonista ve una pluma blanca caer del cielo. Ésta cae sobre su palma abierta, luego mira hacia arriba, y ve miles de plumas blancas caer desde el cielo. Ella sonríe, de algún modo, ahora sabe que el conflicto ha acabado y su amado esta con vida. Lo descrito arriba debería ser familiar para la mayoría de los lectores, aunque con pequeñas variaciones ha sido usado en muchas películas, juegos, novelas, etc. Este tutorial te dirá como trabajar con las plumas, la protagonista, no es nuestro objetivo.
qué necesitamos.
Obviamente, lo primero que necesitamos es una pluma digital (CG feather). Yo en poco tiempo me hice una creando un plano, cortándolo un par de veces y uniendo los extremos. Obtuve algo así:
https://www.foro3d.com/attachment.ph...1&d=1243265496
Nótese que tiene profundidad (de modo que cuando la ves lateralmente, no ves un plano sin profundidad) y (atención especial a esto) el centro del objeto esta ubicado abajo, no el centro de la pluma.
Asignarle un buen material blanco sería genial, y si la texturizas con la imagen de una pluma y con el alfa habilitado, no debería ser tan difícil. Estos son efectos estéticos, no afectarán en nada a la animación, tan sólo hace que se vea mejor. (sin embargo, si vas a texturizar, recuerda que debe incluir los canales col, Nor, ref, Spec y alpha para obtener un resultado convincente y no sólo una pluma pintada en un trozo de vidrio).
Además, necesitamos un buen entorno CG donde tendrá lugar la escena. Para ello creé un plano, lo subdividí un par de veces y levanté algunos puntos para lograr el efecto de un terreno. Luego asigné un material verde, luz apropiada y textura Sky en el panel world.
Por supuesto, nos gustaría tener a un protagonista interactuando con las plumas mientras caen (ese es el objetivo de la escena, ¿cierto?), pero eso implicaría además, adentrarse en el modelado y la animación de personajes, lo que se sale de nuestro objetivo en este tutorial. En lugar de nuestra querida dama, usaremos un cubo como nuestro principal actor estático.
Con todo ello en escena, ya estamos listos para seguir. Por ahora, deberías tener algo similar a esto:
https://www.foro3d.com/attachment.ph...1&d=1243265496
Dado que éste es un tutorial sobre animación, dejaré el modelado a tu criterio. Puedes obtener un archivo con la escena lista en el sitio de blenderart (incluido en la revista), si no tienes ganas de modelar.
el primer instinto .
Lo primero que se me viene a la cabeza es crear un sistema de partículas, de modo que configura al piso y a nuestro actor estático como deflectores de partículas y deja que Blender haga de su magia. Vamos a explorar este camino.
Necesitamos crear un emisor de partículas que debería ir arrojando las plumas, una rejilla de malla debería ser perfecto para esto. Situar la rejilla emisora fuera de la vista de la cámara y situar el centro del objeto plumas en contacto con el centro del objeto rejilla. ¿cómo? .
Selecciona la rejilla emisora (clic derecho en ella) object | Snap | cursor | selection selecciona la pluma (clic derecho en ella) object | Snap | selection | cursor ahora emparenta la rejilla a la pluma, activa la opción dupliverts para la rejilla y agrega un sistema de partículas a ella. Recuerda poner un poco de z force negativo, de modo que las plumas caigan hacia el suelo.
Lo primero que notaras es que, al menos que pongas la opción key en un valor alto, las caídas de nuestras plumas serán erraticas, por decirlo de alguna manera. Se obtienen mejores resultados con el valor de key puesto en su máximo valor que es 100, pero, aun así, puedes tener buenos resultados con valores como 80 o inferiores. Lo segundo que deberías notar, es que incluso con los deflectores en sus valores máximos, las plumas seguirán deslizándose en el suelo, como si tuviera hielo resbaladizo, eventualmente la mayoría de nuestras plumas se abren camino hacia los bordes y caen al vacío, y eso, no está bien.
Lo último, pero no menos importante, es que la detección de colisiones para nuestro sistema de partículas no es muy precisa, muchas plumas caen a través del plano, y luego se devuelven. Eso tal vez estaría bien para las plumas que caen fuera de cámara, pero esto arruinaría cualquier toma de tipo acercamiento (close up).
No todo es tan malo desde este enfoque. El sistema de partículas nos permite agregar cierta aleatoriedad para hacer nuestra escena más auténtica. Específicamente, en el panel particle motion, la opción Bspline ponerla de modo interpolado y dando a cada pluma una velocidad de partida aleatoria, de ese modo, la ilusión de lluvia comienza a hacerse notar. Las plumas siguen comportándose de una manera algo falsa, pero llegaremos a ello. Hay que tener un cuidado especial con la opción Vect, ya que después de cierto punto, tiende a introducir vueltas de 90 grados en las partículas/ plumas.
En resumen, me refiero a estas preferencias:
https://www.foro3d.com/attachment.ph...1&d=1243265496
Buscaremos un modo de superar el problema de la devolución de partículas, tratando de mantener nuestro buen trabajo.
un mejor enfoque.
Como dije antes, la aproximación de las partículas para la tarea que tenemos entre manos tiene algunos serios problemas, siendo la detección de colisión, el peor de ellos. Sin embargo, las partículas no son los únicos objetos con detección de colisión. Además, tenemos detección de colisión para software bodies y hard body dynamics en el Game Engine. Encuentro que la detección de colisiones implementada para software bodies es más refinada, de modo que usaremos esa. Lo primero que deberías tener en cuenta, es que hay dos modos básicos para el uso de software bodies. Tienes los métodos goal y Spring. Sin entrar en detalles técnicos, goal permite que los objetos sean animados usando los modos convencionales, de esta forma te dará un control casi total sobre el resultado final de la animación. Con el modo Spring gran parte de los resultados provienen del sistema dinámico (dynamic system), y de algún modo, tienes menos control sobre el resultado final (aunque usualmente se ve más realista si se compara con la animación echa a mano). Por supuesto que buscamos una buena relación entre ambos métodos.
Idealmente, necesitamos poder influir en la caída por introducción de transformaciones locales mientras las plumas se están moviendo, pero además, queremos que el sistema se encargue de todas las detecciones de colisiones y cualquier otra fuerza dinámica, como ráfagas de viento que podamos incluir para mejorar nuestra escena.
De modo que, esto es lo que llamo un buen acuerdo: (imagen a la derecha).
Por favor, fíjate en estas preferencias:
https://www.foro3d.com/attachment.ph...1&d=1243265496
1. Hemos puesto la aceleración gravitacional en 9.8 (gravedad real), de modo que al sistema software bodies le estamos diciendo que debería tener en cuenta la secuencia de caída de las plumas.
2. Es de hecho, un sistema goal, así que, podemos pasarle transformaciones locales (muy importante como verás), pero.
3. Tiene las opciones goal influence y goal stifness puestas en cero, de modo que la deformación de la malla, vendrá enteramente del sistema dinámico.
4. goal dampening, ha sido puesto al máximo valor para lograr lo expuesto en el punto 2.
5. Para evitar que la pluma se desforme de algún modo desagradable, usaremos ambas opciones Edges y Stif quads en sus máximos valores posibles. Del mismo modo g min y g max están en cero, sólo para asegurarnos.
Esta demás decir que software bodies debería ser aplicado a la pluma misma, en lugar de a la rejilla emisora. Lo que sí se debe decir es, hasta que algunos problemas técnicos en no sean resueltos, Blender no puede hacer render de partículas dupliverteadas con software bodies. Así que por ahora, deshabilita el sistema de partículas y dupliverts en la rejilla. El modo más fácil de hacer esto, es desemparentando la pluma de la rejilla, y escondiendo la rejilla en una capa sin uso.
No borres la rejilla o su sistema de partículas, porque los necesitaremos después. También está de más decir que el suelo y el actor deberían convertirse en deflectores software bodies (software bodie deflectors) para que Blender calcule la colisión de las plumas en torno a ellos.
Desde la versión 2.40, el cálculo de colisiones software body ya no está limitado sólo a objetos tipo Mesh. Ahora las colisiones pueden ser calculadas entre 2 o más objetos software body. En otras palabras, no más plumas que atraviesan la malla.
Ten en cuenta que al agregar aquellas colisiones extras, aumenta en gran cantidad el tiempo necesario para los cálculos, así que, decidí no hacerlo ahora. Si a pesar de todo, has hecho una prueba de render con tu primera animación, continúa, pero debes saber que tomara mucho tiempo finalizar cada frame.
Del mismo modo, para reducir los tiempos de cálculo, no habilité el suelo como deflector software body, al menos hasta que algo de magia extra se haga. Tan sólo recuerda volver a habilitar el suelo como deflector software body, de otro modo, las plumas caerán a través de éste.
refinando.
Ahora que hemos resuelto el principal inconveniente de la detección de colisiones, es hora de empezar a trabajar en los detalles.
¿Has visto alguna vez una pluma caer, o una hoja desprenderse de la rama de un árbol? Entonces sabes que éstas no caen en línea recta, tienen un movimiento oscilante, mientras dan vueltas sobre su centro gravitacional.
Ciertamente, podríamos animar esos movimientos a mano usando motion paths y rotation key frames, y sería fácil hacerlo con un par de plumas. Pero aquí hablamos de cientos de ellas, pueden ser incluso miles de plumas cayendo, así que, necesitamos un modo más flexible y menos laborioso para lograr nuestro objetivo.
canales delta del ipo .
Muy subestimados, pero extremadamente útiles son estos canales del ipo. Delta es una letra del alfabeto griego y es comúnmente usada en matemáticas y física, para representar cuanto varía una magnitud dada, en un determinado tiempo. En palabras simples, mide cuanto cambia algo desde su estado inicial.
Blender ofrece ipo delta channels (canales delta) para localización, rotación y tamaño en relación a los tres ejes. Selecciona cualquier objeto, abre una ipo y mira a aquellos canales cuyo nombre comience con una d.
Imagen con canales delta destacados.
https://www.foro3d.com/attachment.ph...1&d=1243265496
Asumiré que el lector ya tiene conocimientos básicos sobre añadir y editar key frames en una curva IPO, directamente desde la ventana ipo. Si necesitas un recordatorio, entonces te sugiero ir y volver a leer esos capítulos en la documentación oficial.
Ahora, con la pluma seleccionada, selecciona el canal drotz y dibuja una curva para el movimiento circular. No hagas otras de más. He elegido dibujar una curva simple de 2 puntos. Uno está en (0,0) y el otro en (25,60). Esto causara que la pluma rote 60º cada 25 frames. Con la curva puesta en modo cyclic extrapolation, la pluma se mantendrá dando vueltas para siempre.
https://www.foro3d.com/attachment.ph...1&d=1243265496
(captura de imagen de la curva drotz).
Antes de ir más, allá, quizás te preguntes, ¿por qué usar drot en lugar de root? Muy simple, de haber usado root, eso habría causado que cada pluma rote del mismo modo, todas las plumas, a lo largo del tiempo, habrían tenido la misma rotación. Se habría visto bien en una coreografía de baile, pero eso es precisamente.
Lo que queremos evitar cuando tratamos de simular algo tan aleatorio como una lluvia.
El usar drot significa que cualquier rotación que dicte el ipo es añadida a cualquier rotación que la pluma haya dado previamente. Así, si damos a cada pluma un comienzo de rotación diferente, ésta rotación se mantendrá única a través de la secuencia entera, lo que da un resultado más deseable.
Continuando con nuestros ajustes, ahora que tenemos nuestra pluma dando vueltas sobre su eje de gravedad, necesitamos agregar el movimiento oscilante que es tan característico de este tipo de objetos. Para ello dlocx y dlocy, nos serán de mucha ayuda. Dibuja unas curvas ipo como las de la imagen, asegurándote de cruzar la línea cero un par de veces. Cuando estés listo, pon la curva en modo cyclic extrapolation, de modo que el movimiento oscilante se mantenga para siempre.
Para ambas curvas, traté de mantenerme en +/- 1 unidad Blender en torno a la línea cero. Cualquier cosa más, allá de eso, hará que nuestro trabajo se vea poco natural. Por supuesto, los valores actuales dependen de las condiciones climáticas.
Que trates de representar y la escala global de la escena. Además, deberías asegurarte cuando haces zoom out (alejamiento) sobre la curva, que ésta se quede centrada en torno a la línea cero.
Es muy simple dibujar curvas que luzcan bien cuando trabajas en ellas, pero éstas tienden a desviarse progresivamente de la línea cero. Después de algunas pruebas y ensayos, deberías ser capaz de familiarizarte con ellas, no es difícil, creerme.
En la captura, puedes ver que la curva dlocx se desvía progresivamente del centro, haciendo que en el tiempo, se haga más difícil predecir en que punto la pluma haga su próximo movimiento. Esta situación se puede arreglar con técnicas que veremos en la próxima página, pero evita este problema si puedes.
https://www.foro3d.com/attachment.ph...1&d=1243265496
Captura de pantalla de las curvas dloc.
https://www.foro3d.com/attachment.ph...1&d=1243265516
Ese es un ejemplo de lo que deberías evitar.
más arreglos.
Si reproduces tu animación frame a frame, te darás cuenta que ahora tenemos un movimiento más natural en la pluma, ya es hora de pulir más para los detalles finales.
El primer detalle, es que, ahora tenemos sólo una pluma. ¿recuedas la rejilla y su sistema de partículas? Si, la misma que ubicamos en una capa sin uso como vimos en las páginas anteriores. Ya es hora de volver a trabajar en ella. Al igual que antes, emparenta la pluma a la rejilla, y deja que ésta haga tantos duplicados como sea necesario. No temas experimentar con las preferencias. El objetivo ahora es crear tanta aleatoriedad como sea posible.
Si haces un render de la escena tal cómo se encuentra ahora, veras que todas las plumas no aparecen en él. ¿recuerdas cuando dije que Blender tiene problemas con los software bodies dupliverteados? Bueno éste, es uno de esos casos.
Para solucionar este contratiempo, necesitamos hacer de todas esas plumas dupliverteadas, duplicados reales. Selecciona la rejilla y presiona [Control]+[shift]+[a] o ve a object >> clear/apply >> make duplicates real.
Es natural obtener una bajada de rendimiento después de crear los duplicados reales, porque ahora el sistema software bodies está haciendo cálculos en cientos o miles de plumas al mismo tiempo.
Vuelve a ver tu animación de nuevo, ¿está todo bien? ¿no? ¿las plumas duplicadas siguen cayendo en línea recta? Tranquilo.
Cuando haces duplicados reales, Blender no hace copia de la animación creada en el IPO, sino, sólo de las mallas y materiales. Resolveremos esto seleccionando todas las plumas y asegurándonos que la última seleccionada sea la original (es el objeto activo del grupo). Luego ve a object >> make links>> object ipo. Si ves tu animación, o chequeas cada pluma en la ventana del IPO, veras que todo está bien.
Es hora de hacer una prueba de render. Desde que las curvas del ipo son sólo una, y éstas están enlazadas a todas las plumas, arreglar cualquier error en los canales IPO, es tan simple como seleccionar una de las plumas, hacer cualquier cambio, y éste se traspasara a todas las otras plumas.
toques finales.
¿Qué tal si añadimos unas cuantas ráfagas de viento suave y quizás un campo de fuerza (force field vortex) en torno al actor principal para hacer una escena más natural y emotiva? No olvides ubicar algunas corrientes de aire cerca del suelo para hacer que las plumas sigan deslizándose, incluso si han tocado la superficie.
Para este caso en particular, son el viento (Wind) y el campo de fuerza en torno al actor lo que me ha dado mejores resultados, pero eso es un asunto de gustos personales.
Si previamente deshabilitaste la deflexión software bodies para el suelo y/o el actor, recuerda volver a habilitarla antes de hacer un render final. En mi experiencia, haciendo render con la deflexión habilitada, el suelo incrementa en gran medida el tiempo necesario para renderizar cada frame. En mi máquina, el cambio de velocidad es dramático, yendo desde 17 segundos, hasta 4 minutos por cuadro.
nota: dependiendo de lo que quieras lograr, en ocasiones sería bueno pasar por alto el sistema software body antes de hacer duplicados reales. Para ello retrocede un frame antes de usar el comando make real. No aconsejo hacer clic en disable software bodies antes de hacer copias reales porque, podrías necesitar seleccionar manualmente y volver a habilitarlo para cada pluma. Cuando hablamos de cientos de plumas, no es una tarea simple.
créditos de las imágenes: la pluma texturizada dentro del archivo (*.blend) esta basada en la imagen libre de una fotografía que encontré en image*After. (http://www.imageafter.com) otros sitios en los que podrás encontrar imágenes de plumas con licencia libre son stock.xchng (http://www.sxc, hu), morguefile (http://morguefile.com) y gettyimages (http://creative.gettyimages.com/source/home/home.aspx).
https://www.foro3d.com/attachment.ph...1&d=1243265516
conclusión .
A pesar de todo, tan sólo hemos visto un poco de lo que realmente podemos hacer con esta técnica, y ese fue el propósito de este tutorial. Ahora depende de ti ir refinando, personalizando y mejorando tu idea. Estos son tan solo algunos consejos de lo que podrías hacer para mejorar tu escena:
- 1. Un cielo animado con nubes moviéndose y cambiando sus tonalidades (hazlo coincidir con la dirección del viento).
- 2. Mejorar el pasto y la hierba del campo.
- 3. Aumentar el número de plumas.
- 4. Agregar más variación a las plumas, porque ahora, es la misma pluma copiada una y otra vez.
- 5. Dividir las nubes de plumas en grupos más pequeños, cada uno con su propia configuración de ipo.
- 6. Remplazar el cubo con un personaje animado. Después de agregar algunas ráfagas de viento y experimentar un poco con el cielo, esto es lo que obtuve en mí animación final (ubicación de la película falta por anunciarse). Llevó nada menos que 14 horas hacer el render con sus 300 frames, así que, ojalá te guste.
Si tienes cualquier duda acerca de cómo se hizo algún procedimiento, el archivo (*.blend) está disponible en esta edición de la revista para que lo veas. Hemos llegado al final de este breve tutorial para crear lluvia. Para cualquier comentario, no dudes en contactar conmigo, apollux@apollux-designs.com o, búscame en los diversos foros de Blender en la web.
https://www.foro3d.com/attachment.ph...1&d=1243265516
Oh, a propósito, ¿recuerdas aquella pluma solitaria que cae en la mano de nuestra dama en la introducción de este tutorial? Eso se hace con una Path curve normal. Selecciona una de las plumas y emparéntala a una ruta (Path) que la guíe hacia la palma de la mano abierta.
https://www.foro3d.com/attachment.ph...1&d=1243266817Juan. Peña (apollux) 27 años, estudiante de arquitectura en la república dominicana. Ha sido usuario de Blender durante mucho tiempo, y eso lo ha llevado a convertirse en uno de los moderadores del Blender Linux faq. En su tiempo libre, el sigue su amada pasión, la fotografía amateur. Antes de volver a entrar a la universidad para estudiar arquitectura, fue profesor de ciencias computacionales (para niños). http://apollux-designs.com. www.blenderart.org. equipo de traduccion.