20
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). pg. 1

AnimazioneTexture&GIMP Trasparenza

Embed Size (px)

Citation preview

Page 1: AnimazioneTexture&GIMP Trasparenza

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.

pg. 1

Page 2: AnimazioneTexture&GIMP Trasparenza

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 );

pg. 2

Page 3: AnimazioneTexture&GIMP Trasparenza

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)

pg. 3

Page 4: AnimazioneTexture&GIMP Trasparenza

* 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

pg. 4

Page 5: AnimazioneTexture&GIMP Trasparenza

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).

pg. 5

Page 6: AnimazioneTexture&GIMP Trasparenza

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).

pg. 6

Page 7: AnimazioneTexture&GIMP Trasparenza

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.

}pg. 7

Page 8: AnimazioneTexture&GIMP Trasparenza

}

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

pg. 8

Page 9: AnimazioneTexture&GIMP Trasparenza

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

pg. 9

Page 10: AnimazioneTexture&GIMP Trasparenza

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

pg. 10

Page 11: AnimazioneTexture&GIMP Trasparenza

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.

pg. 11

Page 12: AnimazioneTexture&GIMP Trasparenza

============================================

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)

pg. 12

Page 13: AnimazioneTexture&GIMP Trasparenza

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

pg. 13

Page 14: AnimazioneTexture&GIMP Trasparenza

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.

pg. 14

Page 15: AnimazioneTexture&GIMP Trasparenza

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.

pg. 15

Page 16: AnimazioneTexture&GIMP Trasparenza

pg. 16