Explotando nuestra segunda vida...

...Yonkis De SL

viernes, 23 de enero de 2009

domingo, 18 de enero de 2009

Curso de Scripting en SL, el lenguaje LSL (I)

El lenguaje de programación LSL es el diseñado para utilizar dentro de Second Life.

Se trata de un lenguaje mucho más sencillo que cualquiera de los que se utilizan en ámbitos externos a Second Life y a continuación describiré la estructura básica para la gente que no ha programado nunca:

Todo en Second Life son objetos. Los prims que creamos, los avatares, hasta el sim en el que nos movemos son objetos con sus carácterísticas propias. Es algo que hay que tener en cuenta, ya que solamente programaremos scripts sobre prims, pero podemos obtener y modificar carácterísticas de los avatares y de los sims aparte de las del propio prim.

Para crear un script en Second Life, primero tenemos que crear un prim, y en la pestaña de contenidos del objeto, creamos un nuevo script.
Cuando creamos un script en Second Life, lo primero que nos aparece es lo siguiente:


default
{
state_entry()
{
llSay(0, "Hello, avatar!");
}
touch_start(integer st)
{
llSay(0, "Touched.");
}
}



Cuando creamos el script el objeto dice "Hello, avatar!" y si pulsamos sobre él dice "Touched.".


Imaginaros el script como una receta de cocina en la que se siguen pasos.
Leemos la receta linea a linea
Partir un huevo
Freirlo en una sarten con aceite hirviendo
Echarle sal
Sacarlo a un plato

Los programas tanto en LSL como en otros lenguajes de programación siguen también recetas línea a línea que escribimos nosotros.

Hay que diferenciar las 3 partes principales de este script:

En este lenguaje de programación el script entiende que comienza la receta donde nosotros escribimos 'default'. Podemos llamarlo el estado inicial o por defecto del script. Apartir de ahi abrimos las llave '{' , escribimos en su interior lo que queremos que suceda y finalizamos el estado con '}'. Es muy importante acordarse de cerrar las llaves por que sino nos dará error.

Dentro del estado 'default' podemos ver que hay unos nombres de color azul, 'state_entry' y 'touch_start', se trata de los eventos. Los eventos son trozos del código que saltan(se ejecutan) cuando sucede algo. Por ejemplo, todo lo que se encuentra dentro de las llaves '{' y '}' que siguen a 'state_entry' se realiza cuando se entra dentro del estado 'default'.
Podemos decir que el evento 'state_entry' es el evento de entrada al estado.

El otro evento, 'touch_start' controla el momento en el que se pulsa sobre un objeto, solamente cuando se pulsa, no cuando se mantiene pulsado ni cuando se suelta, para eso hay otros eventos.

Por último podemos diferenciar un tercer elemento dentro del script, se trata de 'llSay'. Se trata de una función predefinida del Second Life. Esta función lo que hace es decir lo que se expone dentro entre comillas dobles ("Hello, avatar!") por un canal del chat. En este caso el número de canal es 0 y el texto se mostrará por el chat general. Pero podemos utilizar cualquier otro número entero como número de canal para decir lo que queremos, solo que no lo veremos escrito por el chat general. Tendríamos que tener otro script que escuchara por ese canal para procesar el mensaje.

Como veis tanto los eventos como las funciones tienen detrás del nombre un paréntesis y en algunos casos hay contenido en su interior.
Se trata de la cabecera de la función, que nos dice que tipos de datos se introducen dentro de la función o evento. En el caso de 'touch_start(integer st)' podemos ver en su interior 'integer st' nos dice que este evento recibe un número entero. ¿Para que vale ese número entero? Nos dice el número de gente que esta pulsando.

En resumen, el script comienza en el estado 'default', dentro tiene un evento programado para cuando se inicie este estado, se llama 'state_entry' que lo que hace es decir por el chat "Hello, avatar!" utilizando la función 'llSay'. A continuación está el evento 'touch_start' que hace que cuando alguien pulse sobre el prim se diga por el chat "Touched.".

Podríamos hacer más estados con más eventos.
Aquí pongo un ejemplo muy sencillo de como podriamos hacer un prim que cambiará a color verde al pulsarlo y de nuevo a blanco al pulsarlo otra vez. Se puede hacer de una manera sencilla utilizando estados:


default //Aqui comienza el estado inicial
{
state_entry() //Al entrar al estado...
{
llSetColor(<1,1,1>,ALL_SIDES); //...pinta de blanco todas las caras
}
touch_start(integer st) //Cuando se pulse...
{
state color; //...cambiamos al estado color
}
}
state color //Aqui comienza el estado llamado 'color'
{
state_entry() //Al entar al estado...
{
llSetColor(<0,1,0>,ALL_SIDES); //...pintar de verde todas las caras
}
touch_start(integer st) //Cuando se pulse...
{
state default; //...cambiamos al estado inicial
}
}


Todo lo que se escribe despues de '//' es ignorado por el script.


Espero que haya aclarado un poquito la diferencia entre estados y eventos.
Aquí teneis una lista de todos los eventos y todas las funciones que nos ofrece Second Life y su LSL, ambas en la página del Wiki de LSL.
Otra página que me gusta utilizar para encontrar funciones este otro wiki por el menú más intuitivo de la columna derecha.

Bueno por hoy ya hay bastante saturación de información, otro día más.

miércoles, 14 de enero de 2009

Blender y Second Life

Buenas, despues de buscar toda la noche foros, tutoriales, videos,... sobre como hacer un sculpted en Blender he decidido comenzar esta página donde aparte de sculpteds, veremos scripts, construcción de objetos, texturización y cualquier tema relacionado con Second Life.

En este primer post quiero dejar un resumen de lo que he encontrado por ahí sobre el tema:

1.- Lo primero que necesitamos es conseguir el Blender , desde su página , Blender.org, puedes hacerlo.

2.- Despues necesitamos bajar unos scripts en Python para el Blender (esto nos ahorrará mucho trabajo, la página aquí , tendremos que pulsar en la columna de la derecha en el boton 'Download', eso nos preguntará si queremos guardar un archivo .zip).

3.- Ahora descomprimimos ese archivo zip en la carpeta del blender:
Linux: ~/.blender/scripts
Mac: /Applications/blender/blender.app/Contents/MacOS/.blender/scripts/
Windows XP: c:\Program Files
\Blender Foundation\Blender\.blender\scripts
Windows Vista: C:\Users\USERNAME\AppData\Roaming\Blender Foundation\Blender\.blender\scripts
(Si no veis la carpeta es posible que la tengais oculta.)

4.- Ya podemos utilizar el Blender con los scripts funcionando desde el momento que iniciamos el programa, no hace falta cambiar nada más.

5.- Ahora explicaré los pasos mínimos para generar nuestra sculpted con Blender y subirla a Second Life:

5.1.- Al abrir el Blender nos aparece una caja por defecto. La seleccionamos con el botón derecho del ratón y le damos a la tecla 'x' nos pregunta si queremos eliminar la figura y aceptamos.
5.2.- Pulsamos la barra de espacio y nos aparece un menu desplegable, seleccionamos Add-> Mess -> Sculpt Mesh.
5.3.- Ahora aparece una nueva ventana preguntandonos los datos para generar el sculpted. Seleccionamos el tipo que queremos (podemos probar con la primera que aparece por defecto), despues nos pregunta el número de caras en X e Y (no hace falta cambiarlo) y por último aparece la opcion 'Multires Levels' con un 2 por defecto. Esta última opción es la que nos permitirá tener un sculpted con mayor resolución. A mayor número pongais, más calidad tendrá pero también tardará más el ordenador en generar el sculpted. Si no teneis un ordenador muy potente no os recomiendo que paseis de 4. Despues de todo esto, no hace falta cambiar nada para probarlo, le dais a OK.
5.4.- Por fin tenemos nuestra esculpted. Si cambiais de 'Object Mode' a 'Sculpt Mode' podreis editar la sculpted, pero ahora nos interesa principalmente ver si podemos subir la sculpted a Second Life.
5.3.- Sin dejar el modo 'Object Mode', vereis abajo a la izquierda, en la ventana donde se muestra la figura, que hay un boton con una rejilla, si pulsais se despliega el menu de seleccion de ventana (Window type) y ahi teneis que seleccionar 'UV/Image Editor'. Nuestra ventana donde veiamos la figura ahora muestra una rejilla con un fondo gris. Va todo bien, ya lo tenemos casi.
5.4.- En el menu del Blender seleccionamos 'Render' y del desplegable que aparece seleccionamos 'Bake Second Life Sculpties'. Aparece una nueva ventana en la que sencillamente pulsaremos 'OK'.
5.5.- Ahora estaremos viendo nuestra preciada imagen multicolor. En esa misma ventana aparece abajo un boton llamado 'Image*' nos muestra un menu del que seleccionamos 'Save As...', esto nos permite guardar la imagen donde queramos.

6.- Te dejas 10 L$ subiendo la imagen al Second Life y listo. Tu propia sculpted prim en Second Life.

Aquí dejo imagenes de las cosas que he creado tras 4 dias jugando con el Blender.






















Ya os iré contando más cosas...
Un saludo ;)

...pero que yonkis

Estadisticas y contadores web gratis
Estadisticas Gratis