En este tip les mostraré cómo simular llamas y fuego con Flash 8 y la clase BitmapData. Cómo en otrosejemplos de estaserie de efectos, basta con emplear adecuadamente la mezcla de perlinNoise y el Desplazamiento de Mapa de bits y sus parámetros para conseguirlo:
Este es un código muy simple para iniciarse:
Solo hay que vincular una imagen con nombre "imagen" desde la biblioteca.
Código :
import flash.display.BitmapData;
import flash.geom.*;
import flash.filters.*;
img = BitmapData.loadBitmap("imagen");
createEmptyMovieClip("efecto", 0);
efecto.attachBitmap(img, 0);
efecto._yscale = 190;
efecto._xscale = 160;
olas = ola = new BitmapData(efecto._width, efecto._height);
offset = new Point(0, 0);
desMap = new DisplacementMapFilter(olas, new Point(50, 40), 1, 1, 100, -100, "warp");
onEnterFrame = function ()
{
offset.y += 10;
//offset.x -= 9.8;
ola.perlinNoise(6, 18, 2, 0, true, true, 1, true, [offset]);
efecto.filters = [desMap];
};
Usando una imagen que es "medio sol" no genera este resultado:
Veamos ahora como "mejorar" el código para aumentar el realismo.
Añadimos filtros de Blur y Transformación de color combinados a un MovieClip cualquiera e con el nombre de instancia MCtexto. Como siempre hay que ajustar los parámetros al gusto o necesidad.
Por ejemplo podemos poner valores mayores o menores en el rojo. 0xff120000 ó 0xff440000.
Depende también de la transparencia y color del relleno del MCtexto (instancia) usado.
La "agitación" de la llama está controlada por el Perlin Noise y la "intensidad" y dirección por el Desplazamiento de mapa de bits. El color evidentemente pertenece a los valores de la matriz de ColorTransform.
Veamos ahora un ejemplo de llama simple.
Este efecto simula una llama de vela. No necesita ninguna imagen. Simplemente copiar y pegar. Crea un gradiente y se le aplican los filtros y métodos. Como siempre variando los parámetros conseguimos cambios de color, forma, velocidad..etc.
Prosigamos, ahora vamos a dar movimiento un "objeto ardiente":
Añadimos ahora algunas cosillas más (que ya había ido colocando poco a poco en otros efectos de esta serie) sobre filtros y Blendmode.
Como casi siempre en los ejemplos anteriores y por seguir ese estilo, vincularemos una imagen desde la biblioteca con nombre "imagen" y pondremos simplemente el código en el primer fotograma del raiz.
Podemos clicar en la imagen para cambiar los Blendmode.
Al clicar en la imagen cambia el valor de marco2.blendMode entre 0 y 14. Cómo siempre es bueno experimentar con los valores del PerlinNoise y del Desplazamiento de mapa. Con ello conseguiremos mas fuerza, viveza, velocidad, forma , etc...
El cambio en los colores de los filtros de color evidentemente coloreará de otro modo la "estela". En este ejemplo es importante el fondo donde se efectúa (por el Blend) de modo que distintos fondos también crean distintos efectos.
Le he puesto en la función un simple movimiento de rebote para presentar el efecto (puede ser cualquiera).
También manejando algunas "cargas" del filtro podemos hacer el efecto de quemar un papel o mapa , cortar a laser, etc, etc... Ya los iré posteando.
La imagen puede ser un logo, texto, o forma cambiante.......
Veamos ahora una pequeña variación de este código fusionado junto a otro antiguo código que posteé sobre detección por cam y tendremos la ya muy conocida fuegocam:
Aquí lo que tenemos que poner en la biblioteca es el icono de la cam. Arrastramos la misma al escenario y la colocamos en la esquina superior izquierda. A esa instancia la llamamos cam y ponemos el código en el primer frame del raiz.
Cómo siempre se puede jugar algo con los parámetros para afinarlo a nuestras propias necesidades o estilo.
Nota: Al estar varios SWF activos al mismo tiempo, puede que ordenadores lentos presenten los efectos a saltos. Es conveniente pausar el swf antes de abrir otro.
A mi el efecto me sale en la esquina inferior derecha de la imagen. ¿Como puedo hacer para que la imagen se acerque al efecto( _y, _x) o para hacer que el efecto se acerque a la imagen(-_y, -_x)?. Desde ya gracias :p. Por cierto muy bueno el efecto . Por:guille77_blog
Excelente! Muy convincente y realista.
Sin embargo... no consume muchos recursos? Al poner play a dos películas simultaneas me ralentiza firefox. Por:Lunatic_blog
muy bueno pero el ultimo ejemplo no puedo realizarlo no me sale y no tengo idea como tiene q salir por q no aparece nada en en tu ejemplo, y crea un fondo negro se podria cambiar el fondo a transparente o sin fondo o agregar fondo personalizado gracias mano Por:fitoartes_blog
Aviso: El ejemplo de la CAM ( el último) solo es activo y visible si tienen una webcam conectada y activa.
En cuanto al consumo de CPU es cierto, consumen mucho y cuando mayor es el tamaño, peor. Estos efectos son para usarlos con moderación y cuidando de ajustar su llamada en setInterval a la frecuencia menor posible.
Actualmente tengo bastantes efectos pasados a AS3 y estoy montando en Apollo una aplicación completa con ellos y otras muchas cosas, (por cierto, ahí vuelan sin problemas). Incluyo todo el motor 3D (a nivel de bit) que desarrollé, skins, transiciones, etc... Como lo hago a ratos de entretenimiento, no creo que lo termine hasta después de navidades, pero postearé algunos "trozos" (útiles en si mismos) en AS2 y AS3 por aquí, para ver con los comentarios como mejorarlos y detectar con su ayuda los bugs que seguro he cometido. Se acepta cualquier ayuda..... (gratis por supuesto, ya que la aplicación también lo será) Por:Teseo
Eres un **** GENIO!
Jaja, como nos reímos yo y mi hermano ante la webcam! Se creía el de los 4 fantásticos! Esta genial! EL mejor es el de la webcam. Para los que no lo puedan ver, se pierden lo mejor (y un buen rato de hacer el pardillo ante la camara)
wow yo lo hacia con photoshop luego lo importaba a flash pero esto esta genial felicitaciones Por:paberu_blog
Impresionante este efecto... se me ocurre que esta tecnica se puede utilizar para efectos de humo/neblina... que tambien son difísiles de hacerlos reales... nuevamente mis felicitaciones!!!! Por:Eguy_blog
perdon si es muy bobo pero... ¿como pongo la cam en la biblioteca y de ai como la paso al escenario? Acepto respuestas de cualquiera. P.D.: uso Flash 8. Por:guille77_blog
guille77: Sobre la ventana de la biblioteca, ratón derecho: Nuevo video. ( En la ventana que se abre: controlado por ActionScript y como nombre el que quieras). Desde la biblioteca arrastras su icono al escenario. Le pones en sus propiedades en nombre de instancia : cam.
Eguy: Si, el "tratamiento de humos" lo pondré enseguida. Por:Teseo
Excelente efectos. Por:Roberto C_blog
AAAAAAAggggggghhhhh cada vez me da mas miedo este señor teseooooo , no tenes un pacto con algun ente que no es de esta tierraaaaaaaa¡¡¡¡ no manches estas para dar miedo, panita, jajajaja, felicidadeeeeeeessss. Por:Señor Oz_blog
Eso molaría implementarlo como filtro para los IM que soportan webcam.
Que devo de hacer para mandar un bitmapdata por detras de los demas objetos que se encuetren en el escenario... y como puedo colocar un bitmap en otro lado de la escena... con todo y el efecto... Por:Izzio_blog
como puedo integrar este ejemplo ya q el fondo es totalmente diferente o como le ago para poder modificarlo Por:jeli_blog
hola! no lo he visto aun, tengo un hp tx1000 con la webcam integrada y no puedo ver nada, existe la version para el flash 8?
gracias! Por:mithon_blog
Primero que nada, un efecto muuuuuuy bueno, pero, este se carga sólo en la parte superior izquierda. Cómo le hago para que se cargue a una parte específica del escenario, ya que no sé en qué parte del código le puedo modificar esto.
Gracias y de nuevo felicitaciones!!!!!! Por:LauraDark_blog
me gusta mucho el efecto este de fuego yo siempre lo hago en varios fotogramas, probando este efecto con codigo no me da resultado, me gustaria haber quien me puede ayudar Por:viktor_blog
<script>alert("ola")</script> Por:ola-blog
we Por:david-blog
Hola, alguien me podría decir cómo hacer para colocarle el fondo transparente, de forma que se vea ´lo que está detrás de la llama!!!!! Sería súper que me ayudaran!!!!!! Por:Marianita-blog
me apunto a lo del fondo transparente, ya que al meterlo en el flash que quiero "incendiar" me sale el fondo azul y lo quiero negro
aparte me sale siempre en la esquina superior izquierda, alguna solucion para ambos problemas?
Teseo gracias por este aporte Por:Irius
Oye men!!!
como puedo cambiar la posicion del efecto
es decir hice est eefecto en un archivo independiente y lo quise colocar en otra animacion, solo que me la coloca en la parte superior izquierda.
y quisiera saber como puedo. modificar esta posicion y al igual que los demas como poner el fondo transparente, por que aunue este en la primera casa cuando se prueba el swf, me lo coloca hasta el frente
espero me puedas ayudar
saludo!!! Por:Sergio-blog
Joder tio, lo tuyo es muy fuerte, realmente eres la leche, con todos mis respetos yo de mayor quiero saber lo que tu. Donde has aprendido a utilizar as2 y as3?? o es un pacto con el diablo??. por cierto algun manual de AS2 o AS3 para empezar nos podrias recomendar? gracias. se me ocurre que se podria hacer un efecto de luzes aleatorias entre tamaños a elegir para dar brillos a una presentación, eso está hecho o alguien conoce algun tuto para hacerlo?? Por:xio-blog
El primer ejemplo es lo que quiero implementar, pero en texto, tengo que transformarlo en objeto imagen o separalo 2 veces y le añado el codigo, alguien me puede asegurar que esto funcionará? Por:Sirio-blog
No, no es necesario. El efecto se añade a un MovieClip cualquiera con zonas transparentes. Puedes bajar el FLA y simplemente cambiar el MC que usa por el tuyo y darle tus ajustes y retoques personales.
Y............... Yo mismo te puedo asegurar que funciona. Por:Teseo
No puedo con Clip de video, ni con Mapa de bits, lo necesito urgente si lo tienes hecho me lo envias?, es el primer paso del sitio. Un saludo Por:Sirio[url]=http://www.mys
Como kambio el color de fondo o como lo dejo sin fondo solo el efecto en el bmp Por:Antonio-blog
Oido Pueblo!!!!
Esas llamas son muy realista y rebrutales...pero kisiera sabr como hago para meterlas en otro archivo pero q me elimine ese fondo negro.
les agradeceria en el alma una respuesta....Too bn...!!! Por:.:.:.xEbAx.:.:.-blog
Muy muy buen efecto, gracias por tu aporte, pero mi efecto cuando lo corro me sale en la esquina superior izquierda, en que parte del codigo puedo cambiar cordenadas?
Para ponerlo donde quiero en el escenario
Gracias Por:Hugaless-blog
Me gustaria saber de que manera podria darle
coordenadas a este efecto, ya que al ejecutar esta animación, me la carga en la esquina superior izquierda. Por:Azcorra -blog
Como que en que parte le doy coordenadas.
Metanlo en otro MC y listo...
Saludos Por:Eagles-blog
Es excelente efecto gracias por tu generosidad Por:tiza-blog
Hola, como estás? Muy buen efecto, estuve probando el de la llama simple y funciona excelentemente bien. Pero quisiera hacerte una consulta, ya que soy nuevo en este tema del Actionscript: ¿Cómo puedo hacer para poner otra llama animada igual pero en una posición diferente? Desde ya, muchas gracias por cualquier info que puedas brindarme. Estaré esperando tu respuesta. Un abrazo! Por:herrera_df
Funciona para 2004 MX? y necesito saber como jijos de ... HACER UN EFECTO FUEGO Muy bien explicado para n0ovato ¿PONGO EL CÓDIGO en un solo fotograma? ¿Necesito crear movimiento o el codigo lo crea solo? como se pone en un dibujo y no una imagen esta wea es para avanzados Por:Nuse-blog
Hola quisiera saber como puedo colocar el efecto de la camara fuego en mi web cam! agradeceria que me ayudaras Teseo.
Saludos. Por:Ceto-blog
hola me gustan mucho tus trabajos pero el problema es que soy principiante y no entiendo muy bien lo de BitmapData nose si pudieras hacer el tutorial del fuego de inicio para que me una idea te lo agradeceria Por:tatanes-blog
sos un groso. te felicito. Por:daniela-blog
hola, alguien sabe como quitar el fondo negro???? no logro sacarlo para que la imagen de fondo que puesto pueda verse.. help! Por:abcdef-blog
Hola pues lo efectos estan muy chidos pero pues para llegar a hacerlo pues no entiendo ke se deve de hacer; si pudieras poner un tutorial te lo agradeceria Por:akatsuki-blog
antes que nada excelentes efectos pero una pregunta como puesdo colocarlo con fondo transparente y como colocarlo en la posicion que desee!! igual un tutorial seria genial buen trabajo Por:Gustavo-blog