Second Life experience - parte 3
di Alessandro Bordicchia - a.bordicchia@thecode.it
Introduzione
Nella “puntata precedente” abbiamo avuto modo di prendere un po’ di confidenza con i tool che in SL ci consentono di realizzare degli oggetti. Sicuramente in questo periodo avrete avuto modo di sperimentare forme più complesse… ora vedremo come è possibile “animarle”.
Uno degli aspetti interessanti della piattaforma è quello di essere dotata di un linguaggio di programmazione proprietario, (LSL ovvero Linden Script Language) abbastanza semplice ed intuitivo, ma soprattutto in continua evoluzione. Attraverso questo linguaggio è possibile realizzare semplici script di movimento fino a sistemi complessi connessi con pagine web e banche dati esterne.
Creare uno script
Per creare uno script è necessario selezionare un oggetto (uno dei tanti che avrete sicuramente realizzato) e cliccare sul tab “content”. A questo punto troverete in evidenza un pulsante “new script”. Cliccando sul suddetto pulsante apparirà un file all’interno della finestra che potrete rinominare a vostro piacimento cliccando su con il tasto destro e selezionando “rename”. (Immagine 1)
Con un doppio click sul file si aprirà una finestra all’interno della quale troverete già impostato uno script di base:
default { state_entry() { llSay(0, “Hello, Avatar!”); } touch_start(integer total_number) { llSay(0, “Touched.”); } }
All’interno di questo script troverete due stati (default e state_entry) e un evento (touch_start).
Default è lo stato principale all’interno del quale solitamente vengono eseguite le operazioni ogni volta che si verifica un evento. In questo caso l’evento “touch:start” fa eseguire l’istruzione contenuta all’interno delle parentesi graffe, ogni volta che viene toccato l’oggetto.
llSay è una funzione che consente all’oggetto di “parlare” scrivendo nella chat il testo tra le virgolette.
In poche parole, attraverso questo script l’oggetto scriverà nella chat pubblica “Touched” ogni volta che verrà toccato. Potete provare a modificare il testo all’interno delle virgolette per ottenere un messaggio diverso.(Immagine 2)
La rotazione di un oggetto
Proviamo ora ad aggiungere qualche riga al nostro script di base in modo da ottenere una rotazione dell’oggetto di 45 gradi sull’asse z.
Prima di tutto sostituiamo il testo contenuto all’interno delle virgolette nella funzione llSay con “sto ruotando”.
lSay(0, “Sto ruotando!”);
Proseguiamo con la compilazione dello script rimanendo all’interno delle parentesi graffe che individuano l’evento touch_start di modo che il nostro oggetto ruoti di 45 gradi solo se toccato.
Ora stabiliamo qual’è il grado di rotazione attuale dell’oggetto rispetto alla land e inseriamolo all’interno di una variabile che chiameremo rot.
rotation rot = llGetRot();
llGetRot() è una funzione che ci consente di conoscere il valore di rotazione attuale sui tre assi (x,y,z).
Ora stabiliamo il nuovo valore di rotazione e associamolo ad una variabile di rotazione che chiameremo “delta”:
rotation delta = llEuler2Rot (<0,0,45 * DEG_TO_RAD>);
le tre cifre separate da virgole rappresentano I tre assi (
rotation delta = llEuler2Rot (<90,0,0 * DEG_TO_RAD>);
corrisponderà ad una rotazione di 90 gradi sull’asse x.
Per I più curiosi la funzione llEuler2Rot viene da Eulero e DEG_TO_RAD sta per “degrees to radians”.
Ora stabiliamo il valore della nuova rotazioe e assegnamola al nostro oggetto:
rot = delta * rot; llSetRot(rot);
Ecco il nostro script completo:
default { state_entry() { llSay(0, “Hello, Avatar!”); } touch_start(integer total_number) { llSay(0, “Sto ruotando!”); rotation rot = llGetRot(); rotation delta = llEuler2Rot (<0,0,45 * DEG_TO_RAD>); rot = delta * rot; llSetRot(rot); } }
Le applicazioni del LSL sono molte e spesso frutto della fantasia e della curiosità dei programmatori che popolano le isole di Second Life. Esistono alcuni riferimenti on-line come il wiki LSL (http://wiki.secondlife.com/wiki/LSL_Portal) che forniscono un valido supporto agli sviluppatori in termini di terminologia di riferimento e di esempi pratici. Ora non vi resta che sperimentare…
______________________________________________________________
Alessandro Bordicchia
a.bordicchia@thecode.it
Una formazione divisa tra gli studi di architettura, design e di ergonomia cognitiva, dal 1999 ad oggi opera in diversi settori nell’ambito della comunicazione visiva. Da cinque anni a questa parte si interessa delle problematiche legate alla progettazione di interfacce utente, collaborando attualmente con maison,the (gruppo Visiant). Da circa due anni si occupa di progetti legati ai mondi virtuali collaborando con 2ndK, recentemente entrata a far parte del gruppo Visiant.


