Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ALI - Lezioni di scripting di base
- Animare una texture
- A cura di Salahzar Stenvaag
- Luglio 2008
- Sapete tutti cos'è una texture. Avrete forse visto delle texture animate in secondlife: sono texture che scorrono, ruotano o fanno una semplice scena (come ad esempio i fuochi).
- Non confondete le texture animate con i filmati quicktime o gif animate prese da siti.
- Tutto questo viene ottenuto con una funzione di scripting che si chiama llSetTextureAnim, che ha un sacco di parametri, ma la studieremo in modo facile :)
- Questa è la "firma":
- llSetTextureAnim( integer mode, integer face, integer sizex, integer sizey, float start, float length, float rate );
- Ed ecco il significato dei vari parametri:
- * mode: è il più potente e complicato, lo vediamo + avanti.
- * face: è la faccia su cui si applica l'effetto
- * sizex, sizey dimensioni della "griglia" per l'animazione tipo fuochi (non usata per scale e rotazione)
- * start posizione iniziale da cui partire (o angolo radianti per la rotazione)
- * length numero di frame da visualizzare (o angolo radianti per la rotazione)
- * rate numero di frame al secondo (diverso da zero).
- i MODI:
- Sono dei numeri che sono "sommati" fra di loro con l'operando "|" ANIM_ON | LOOP per ottenere più effetti in contemporanea
- ANIM_ON Attiva l'animazione (obbligatorio!!!)
- LOOP L'animazione riparte quando è finita (normale)
- REVERSE Anima seguendo l'ordine inverso (al contrario)
- PING_PONG Anima in avanti e poi indietro
- SMOOTH "muove" lungo l'asse delle x invece di seguire i frame (usato anche per SCALE e ROTATE)
- ROTATE ruota la texture (incompatibile con scale)
- SCALE ingrandisce la texture (incompatibile con rotate).
- Le modalità più diffuse sono le seguenti:
- * Muove in una direzione (acqua che scorre, immagine che trasla) ANIM_ON | LOOP | SMOOTH
- * Ping/Pong movimento a sobbalzo
- * Animazione a frames (tipo fiamma) bisogna fornire una griglia con tutte le immagini intermedie
- * Rotazione
- * Scalatura (Ingrandimento/riduzione).
- Esempio 1/2: muovere l'acqua
- default
- {
- state_entry()
- {
- // llSetTextureAnim() is a function that animates a texture on a face.
- llSetTextureAnim(ANIM_ON | SMOOTH | LOOP, ALL_SIDES,1,1,1.0, 1,0.25);
- // animate the script to scroll across all the faces.
- }
- }
- L'esempio 1 mostra un velo d'acqua che scende su una fontana (se usate una texture trasparente) l'esempio 2 mostra acqua non trasparente (fiumi) etc.
- Se aumentate l'ultimo parametro aumenta la velocità.
- Esempio 3: ruotare una texture
- llSetTextureAnim(ANIM_ON | SMOOTH | ROTATE | LOOP, ALL_SIDES,1,1,0, 2*PI,.25);
- Esempio 4: scala una texture
- llSetTextureAnim(ANIM_ON | SMOOTH | SCALE | LOOP, ALL_SIDES,1,1,0, 2*PI,.25);
- Fa una sorta di effetto allontanamento o avvicinamento se fatta al contrario
- Esempio 5: fuoco. Si usano due prim messi incrociati e linkati con la stessa texture ed animazione:
- llSetTextureAnim(ANIM_ON | LOOP, ALL_SIDES,4,4,0, 15,20);
- L'esempio 5 va spiegato un attimo meglio. Se guardate la texture è composta da una griglia di 16 immagini disposte
- su 4 righe e 4 colonne. Ecco perchè mettiamo 4,4. E diciamo 0,15 per dire che andiamo dal frame 0 al frame 15 percorrendoli tutti. Se riuscite a trovare serie di animazioni sul web è ok, le potete fare da voi se siete abbastanza bravi.
- Oppure potete usare "Irfanview" per aprire un gif animato e per estrarre i frame (Options->Extract all frames), che poi andarnno ricomposti in una griglia opportuna.
- E questo è tutto per le texture animate.
- ====================================================================
- A seconda del tempo residuo volevo fare una anticipazione di come usare GIMP per fare l'effetto trasparenza, che normalmente viene fatto con photoshop, ma si può fare agevolmente con GIMP.
- 0. Scaricate GIMP e lanciatelo vi apparirà la finestra dei tools.
- 1. Aprite una immagine qualunque (possibilmente contrastata)
- TRASPARENZA COMPLETA:
- 2. Aggiungete un layer trasparente: Layer->Transparency->Add Alpha Channel
- 3. Selezionate il "fuzzy selector" (il quarto sulla prima fila dopo il "lazo")
- 4. ATTENZIONE funziona solo se la foto è ben contrastata: selezionate cliccando al centro di ogni area che volete rendere trasparente. Premete shift-click per aggiungere aree. Le vedrete selezionate
- 5. Edit->Clear per cancellare queste aree le vedrete diventare trasparenti.
- 6. Salvate con Save as... specificando xxxx.tga
- SEMITRASPARENZA:
- 2. Layer->Mask->Add Layer Mask (selezionate Grayscale copy of layer)
- 3. Apply Layer Mask
- 4. Salvate in modalità TGA.
- Nota l'effetto trasparenza completa normalmente è più efficace per rappresentare strutture, vetri etc, ma l'effetto semitrasparenza può essere usato per complicate e leggere trasparenze come veli per vestiti ed altro.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement