EaseClin solucion para la clinica dental We are renewing the page, please stay tuned facebookfacebook Select language
Español
English
 

Unity TORNADO Tutorial (For english version click here)

Requerimientos de sistema: Unity 3.5.7 or superior (Funciona con Unity free y Pro)

Este es l mismo Tornado que se puede ver en el vídeo 3dnemo's Youtube channel con algunas mejoras.





Descargar el package aquí.

Una vez descomprimido, encontrará un Unity Package y una carpeta "plugins".

Si experimenta algúnproblema con la descarga envíe un mensaje a contact@3dnemo.com

IMPORTANDO LOS ASSETS

Recomiendo comenzar con un proyecto de Unity vacio. Todo lo necesario para ver el Tornado se encuentra en la descarga.

Una vez que se tiene Unity abierto, ir al menú Assets:Import Package: Custom Package
Buscar el paquete descargado en el disco duro and e importar todos los assets.

1

Tras la primera importación, puede aparecer un error en la consolo, es normal. Esto se debe a que Unity no encuentra el script Perlin.cs que debería estar en una carpeta Plugins. Arrastre la carpeta también descargada en la pestaña de Proyecto, no el script.

La jerarquía correcta debería ser como se ve en la imagen inferior.


2

ANTES DE COLOCAR EL TORNADO EN LA ESCENA

Antes de colocar el Tornado en la escena, seleccione la cámara por defecto de la escena y ajuste los valores como en la imagen inferior. Debido al tamaño del Tornado, la cámara debe estar un poco alejada y mirando ligeramente hacia arriba.

Al mismo tiempo, el plano de recorte lejano debe tener un valor de 2000 o más para no recortar el efecto de partículas superior.

3


COLOCANDO EL TORNADO EN LA ESCENA

Ahora puede colocar el Tornado en la escena. Vaya a la carpeta "Prefabs" en la pestaña de proyecto y arrastre el Twister_Prefab a la pestaña de jerarquía para colocarlo cerca de la posición 0,0,0.

El Tornado empezará a construirse inmediatamente. Espere varios segundos para ver el crecimiento completo.

En este momento se puede ver un tornado recto con tres características principales. Un cuerpo principal desde el suelo hasta el cielo, un efecto polvoriento en la base y un efecto de nubes en la parte superior.

Presione play.

El Tornado cobrará vida y empezará a desplazarse lentamente dando un efecto más real. De nuevo deberá esperar unos segundos hasta que el efecto esté completo.

Si lo desea, puede añadir el Tornado a cualquier escena que ya tenga definida y dejarlo tal cual, pero quizá desea experimentar un poco más y conseguir efectos más impresionantes y adecuados a su escena, si es así siga leyendo.

Hasta este momento debe ver en la escena algo similar a la imagen inferior.

4

CONTROLANDO EL TORNADO

Hay muchos parametros que puede variar para conseguir un efecto más a su gusto pero debe tener en cuenta que la mayoría de ellos tienen influencia sobre los demás, tenga cuidado pues y siga las recomendaciones del tutorial.

El comportamiento y aspecto del Tornado están controlados principalmente por:

- Los emisores de partículas. Uno para el efecto de suelo, uno para el cuerpo principal y uno para el efecto superior.
- Tres materiales, uno para cada uno de los emisores.
- Dos texturas, una de ellas compartida por dos materiales.
- Un script para dotar de un movimiento aleatorio al Tornado (necesita el Perlin noise plugin).

Como un bonus, el Tornado viene con un efecto de sonido en el objeto padre del tornado. Es un sonido 3D así que aumenta su volumen según nos acercamos.

Primeramente, como se ve en la imagen anterior, el efecto se consigue con muy pocos elementos, solo 4 drawcalls y 1.6k tris. No tenga en cuenta la cifra de 119.6 FPS, Unity ofrece una cifra aleatoria en este caso desde 400 FPS hasta 70 FPS. Puede ser un problema de interpretación de mi tarjeta gráfica pero no esoty seguro. (Nvidia GT 120 en un Mac Pro 8 core).

NOTA TÉCNICA: Los tres emisores de partículas utilizados son del tipo utilizado por Unity en versiones anteriores y que ahora se pueden encontrar en el menú Component:Effects:Legacy Particles. Por tanto no se han utilizado partículas Shuriken debido a que estas no poseen una cualidad de velocidad tangencial, que es la que precisamente hace funcionar el Tornado. Esto no permite utilizar las nuevas características de las partículas Shuriken, lo cual hay que tener en cuenta:

- Las partículas "Legacy" carecen de una propiedad "Prewarm" (hasta donde yo se), así que el tornado no se puede mostrar inmediatamente al entrar en una escena y hay que concederle unos segundos para desarrollarse completamente antes de mostrarlo en cámara.

-El segundo problema no afecta al resultado final, pero crea cierta confusión cuando se está ajustando el comportamiento del Tornado, y creo que es una de las razones fundamentales para no tener tornados mostrandose por todas partes en Unity.El problema con las "Legacy Particles" es que padecen cierta inestabilidad cada vez que se cambia algún parametro del emisor así que es necesario esperar varios segundos sin tocar nada hasta ver lo que realmente está pasando. Realmente se trata de un proceso de acierto-error que consume mucho tiempo hasta conseguir el efecto deseado.

Es muy importante considerar que cada ajuste se debe hacer por separado y comprobando su efecto antes de modificar otro parametro, así que es importante tener paciencia.


LOS EMISORES

Como se ha dicho, se necesitan tres emisores de partículas para crear el Tornado completo, aunque se pueden usar dos o solo uno dependiendo del efecto buscado.

Twister_Prefab - Es el objeto principal y el que crea el v´rtice ascendente. El objeto se situa al nivel del suelo y crece hacia arriba hasta que alcanza el emisor superior.
TwisterUp - Es un emisor que crea un puñado de partículas de gran tamaño que se funden con el cielo.
TwisterDown - Este emisor crea un efecto de material absorbido desde el suelo, como plantas u otros, dependiendo de la textura utilizada. Se pueden conseguir efectos interesantes solo cambiando el color de las partículas. Por ejemplo se pueden teñir de verde si el suelo está cubierto de vegetación, más rojizo si estamos en un desierto o incluso blanco si estamos sobre el agua.

Los emisores disponen de multiples parametros en sus tres componentes, el Ellipsoid Particle Emitter, el Particle Animator y el Particle Renderer, pero solo necesitamos actuar sobre unos pocos de ellos.

Por favor piense que, como se ha dicho, esto es el resultado de un proceso de prueba error así que muchos parametros pueden ser alterados sin encontrarse un cambio significativo en el comportamiento del tornado, mientras que otros pueden destruir el efecto completamente.

Empecemos con el objeto principal en la escena "Twister_Prefab". Como se puede ver al presionar Play, el Tornado crece desde abajo hacia arriba lo cual es incorrecto de alguna manera ya que los tornados reales crecen al reves, desde arriba hacia abajo, pero es la única manera que he encontrado para hacerlo funcionar. A partir de su crecimiento total, el efecto es correcto, ya que los tornados son fundamentalmente un flujo rotacional y ascendente de aire.

Al mismo tiempo, este es el objeto padre de los otros dos emisores, así que cuando este se desplaza los otros dos también, y aunque el emisor superior se desplaza con el, debido al gran tamaño de sus partículas y al Damping de las partículasm el efecto es coherente.
Desde luego se puede alterar la jerarquía para conseguir otros efectos, pero he intentado mantenerlo de la forma más simple posible.

5

Para conseguir el efecto correcto, desde luego se necesita una fuerza ascendente de "20" in World velocity Y y algunos valores aleatorios en Rnd velocity para romper la uniformidad. Además e puede encontrar un valor de "10" en Tangent velocity X lo que crea una parte del comportamiento rotacional de las partículas.

Intente usar (y tu puedes hacerlo en este momento) las coordenadas Y y Z, pero incluso aunque se consigue un movimiento rotacional, el efecto es ligeramente diferente y no me convencía del todo. Si ahora pones el valor de Tangent Velocity a "0" (cero) en los tres ejes, verás solo una columna de humo ascendente

Pero Tangent Velocity es solo la mitad de la historia, baja un poco más hasta el componente Particle Animator, verás que el valor Local Rotation Axis tiene un valor de "2", cambialo a "0", el efecto desaparece completamente, vuelve a ponerlo a "2" y el Tornado estará de vuelta.

6

Así que solo con estos dos valores, Tangent Velocity X y Local Rotation Axis, se puede generar el efecto.

Sabiendo esto, se puede realizar cualquier otro vortice como por ejemplo, en este caso, para el objeto TwisterDown. Utilicé los mismos valores que en el Tornado principal para mantener un movimiento coherente entre ambos, pero ahora la World Velocity es "0", así se crea un pequeño vortice sobre el terreno. Para dar cierta vida adicional utilicé un valor de "1" en Rnd Force Y en el Particle Animator y "0.5" para Force Y.

Para el TwisterUp la Tangent Velocity se incrementa a 50, debido al tamaño de las partículas, y el ellipsoid, y con un "0.9" de Damping en el Particle Animator. De nuevo "0" en World Velocity y un mero "0.1" en Local Rotation Axis Y en el particle animator.

PARTÍCULAS Y TEXTURAS

Debo decir que esto fue una verdadera pesadilla al principio y en absoluto intuitivo. Cuando se piensa en un Tornado, se comienza con un montón de pequeñas partículas como se supone que debe de ser sin conseguir el resultado deseado.

Por el contrario, descubrí que un puñado de grandes partículas con la textura correcta es mucho mejor en todos los aspectos, con un look más compacto, mejor rendimiento y más fáciles de ajustar.

La textura utilizada para el emisor principal y el superior es la misma, una voluta de humo de baja resolución retocada manualmente sin otro objetivo mas que dar un aspecto aleatorio. La textura conseguido es ni más ni menos lo que mejor aspecto presentaba, ni más ni menos.

Por otro lado, hay una textura de residuos para el TwisterDown que se puede cambiar para conseguir diversos efectos dependiendo de las condiciones del entorno, pero se pueden conseguir grandes resultados cambiando tan solo el color.

Los materiales usan el shader Particles/Alpha Blended incluido por defecto en Unity, así que se puede afectar la opacidad total del Tornado cambiando el valor del canal alfa en la propiedad Tint Color. Además, como la textura utilizada es en blanco y negro, se puede alterar su color para integrar mejor con el entorno y las características de la luz en ese momento.

Esto también se puede cambiar en los valores de color del Particle Renderer, pero hay que tener cuidado o las partículas empezarán a aparecer y desaparecer de repente rompiendo el efecto de flujo constante.

Finalmente, para conseguir un efecto más coherente, la propiedad "Stretch Particles" del Twister_Prefab en el Particle Renderer se ajusta a "Sorted Billboard" para tener el render correcto de las partículas según su canal alfa.

Las partículas del TwisterUp , utilizan la característica Horizontal Billboard debido a que se supone que siempre se ven desde abajo.
SCRIPTS

En el proyecto hay dos scripts, NoiseMove.js y Perlin.cs de la libreria de Unify Wiki. Los scripts sirven únicamente para dotar de movimiento al tornado y crear un efecto más realista, pero el tornado puede ser desplazado con cualquier script de creación propia.

El Perlin.cs debe encontrarse dentro de una carpeta "Plugins" para que funcione y es solo una librería así que no hay que modificarlo.

El NoiseMove.js está asociado al objeto padre del tornado Twister_Prefab con algunas variables que se pueden ajustar:

- Speed. Debe mantenerse en un nivel bajo. El valor por defecto es "0.02" para dar una sensación de desplazamiento suave y permitir que las partículas se desarrollen correctamente y de forma creible. Valores por encima de "0.1" son demasiado elevados y destruyen el efecto.

- Move size. Se debe mantener "Y" a "0" para desplazarse por el suelo. Por defecto los valores son 400 lo que equivale a 400 m a la derecha, 400 m a la izquierda y lo mismo hacia adelante y hacia atrás, tomando como referencia el punto en el que se encuentra el tornado al pulsar Play.
sponsored by EaseClin
Copyright © 2013 - Lauret Producciones - contact@3dnemo.com