En nuestro caso haremos que se pinten todas sus caras ALL_SIDES, pero saber que es posible pintar únicamente una o algunas de las caras del prim, cambiando este parámetro. Más información sobre esto en
http://www.lslwiki.net/lslwiki/wakka.php?wakka=side
En la siguiente imagen vemos el script que debe de llevar el prim 3 de nuestro ejercicio:
Empezamos en default poniendo el color <0.0,0.6,0.8> en todas las caras. Cuando un avatar toca el agua llamamos al estado state estadoB. Al comenzar el segundo estado cambiamos el color del agua y si un avatar la vuelve a tocar retornamos al estado state default volviendo el agua del color de antes.
Ahora vamos a hacer lo mismo en el reborde de la fuente pero cambiando la textura...
Primero tenemos que introducir las texturas que vayamos a utilizar en el prim. Para facilitar las cosas usaremos texturas de las que tenemos todos. Cuando se crea un avatar nuevo los de Linden “nos regalan” la carpeta Library llena de “cosas”.
Abrimos la Ventana de Edición con el prim 2 (el cerco) de este ejercicio seleccionado, y elegimos la pestaña Contenido, esa en la que metemos también los scripts. A parte abrimos el Inventario, vamos a la carpeta Library, dentro de esta vamos a Textures y a Buildings. Ahí dentro cogemos para el cerco de nuestra fuente las texturas llamadas “Concrete” y “SpanishTile” y pinchando en ellas, las arrastramos dentro de la pestaña Contenido de nuestra Ventana de Edición; tal como se puede observar en la siguiente imagen:
Después crearemos el sript que contendrá el cerco de la fuente. Es igual que el que hicimos para el agua, pero con otra función que trabaja con texturas llSetTexture(). Sus parámetros son parecidos. Lo único que cambia es que en vez de especificar un color, le indicamos que textura queremos que se aplique al prim en cuestión.
Para ello en el primer parámetro escribiremos entre comillas la textura elegida ,(las que previamente hemos introducido en la pestaña Contenido), ojo con las mayúsculas y las minúsculas.
Una vez hecho esto cambiara la textura de la fuente ante el evento touch_start de la misma forma que hicimos con el agua.
Vamos con el chorro!!
Seleccionamos el prim 5 (el relieve) y lo bajamos hasta que quede tapando el prim 4 (el tubo), de forma que cuando este prim sea transparente nos dé la sensación de que el agua sale de el tubo.
Primero pondremos una textura de agua en este prim. Yo he escogido la textura “Water-ripple layer 2” que la tenemos todos en la carpeta Library->Textures->Waterfalls. Después crearemos el script. Como todos los de este tema va a tener dos estados; cuando la fuente este apagada, este prim se volverá transparente, y cuando esté encendida veremos la textura de agua en movimiento.
En este caso también podríamos meter la textura de agua y otra transparente y alternarlas tal como hicimos con el cerco. Pero vamos a usar en el state_entry del primer estado otra función que permite volver transparentes los prims aunque estos tengan una textura puesta. LlSetAlpha(0.0,ALL_SIDES). Es parecida a las otra dos que hemos visto en este tema; sólo cambia el primer parámetro, que se refiere al nivel de transparencia u opacidad que deseemos que adopte el prim. Desde 0.0 totalmente invisible, hasta 1.0 opacidad completa.
De esta forma cuando un avatar toque el tubo (pues el prim relieve no lo verá, pues está transparente), iniciamos el estado state estadoB volviendo opaca la textura en su state_entry : LlSetAlpha(1.0,ALL_SIDES).
En esta imagen se puede ver como quedaría este script. Solo necesitamos una función mas llSetTextureAnim(ANIM_ON | SMOOTH | LOOP, ALL_SIDES, 1, 1, 0.0, 0.0, 0.5); que va a ser la que mueva la textura de agua.
Y ya está. Una fuente muy decorativa, interactiva y de sólo 5 prims. Y de paso ya sabéis trabajar con texturas y colores. ¡Cuántas cosas se podrían hacer con esto!
No hace falta que modifiquéis ningún parámetro de esta última función para este ejercicio, aunque tal vez tengáis que girar el prim 180 grados si el agua cae hacia arribaJ.
De todas formas aquí va un resumen de estos parámetros extraído de la Wiki de LSL:
llSetTextureAnim(ANIM_ON | SMOOTH
| LOOP, ALL_SIDES, 1, 1, 0.0, 0.0, 0.5);
Los primeros parámetros (ANIM_ON | SMOOTH | LOOP) que vemos separados con barras (se escriben estas pulsando Alt Gr + 1 en el teclado), son el modo en el que se verá la textura. Podemos introducir aquí cualquiera de los 7 modos que existen, o todos ellos a la vez si así lo queremos .Estos modos son...
- ANIM_ON . Habilita la animación de la textura.
- LOOP . Repite la animación de la textura en un bucle continuo. Sino la textura se quedaría quieta.
- REVERSE . Invierte el sentido del movimiento de la textura.
- PING_PONG . Hace que la textura oscile de un sentido al otro continuamente.
- SMOOTH . Desliza la textura más suavemente.
- ROTATE . Rota la textura en vez de deslizarla.
- SCALE . Hace zoom en la textura en vez de rotarla o desplazarla.
El siguiente parámetro (ALL_SIDES), nos indica que el efecto del script se produce en todas las caras del prim como ya hemos visto en las otras funciones de este tema.
Los dos siguientes parámetros (1,1,0.0,0.0,0.5) indican cúantas veces va a ser vista la textura de una sola vez en sus ejes x e y (horizontal y verticalmente) .Funciona como las casillas de Repetición por cara de la pestaña Textura del Menú de Edición. El siguente (1,1,0.0,0.0,0.5) indica desde que parte de la textura comenzara la animación. En este caso desde su borde al ser 0.0. Puede que deseemos que no sea así alguna vez.
Después (1,1,0.0,0.0,0.5) Según la Wiki especifica el número total de fotogramas a animar. Con un valor de 0 anima todos. (Yo personalmente no aprecio ninguna diferencia al variar este parámetro. Si alguien averigua algo que me lo cuente, J.)
Por último (1,1,0.0,0.0,0.5) indica la velocidad a la que se moverá la textura. El 0.0 nos dejaría la textura quieta.
Espero que os haya gustado el tema.
Fritxitin Martinek 18 de abril de 2008