Advertisement
salahzar

ALI - Script animare una texture 05072008

Feb 16th, 2020
501
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.81 KB | None | 0 0
  1. ALI - Lezioni di scripting di base
  2. Animare una texture
  3. A cura di Salahzar Stenvaag
  4. Luglio 2008
  5.  
  6. 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).
  7. Non confondete le texture animate con i filmati quicktime o gif animate prese da siti.
  8.  
  9. 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 :)
  10.  
  11.  
  12. Questa è la "firma":
  13.  
  14. llSetTextureAnim( integer mode, integer face, integer sizex, integer sizey, float start, float length, float rate );
  15.  
  16. Ed ecco il significato dei vari parametri:
  17.  
  18. * mode: è il più potente e complicato, lo vediamo + avanti.
  19. * face: è la faccia su cui si applica l'effetto
  20. * sizex, sizey dimensioni della "griglia" per l'animazione tipo fuochi (non usata per scale e rotazione)
  21. * start posizione iniziale da cui partire (o angolo radianti per la rotazione)
  22. * length numero di frame da visualizzare (o angolo radianti per la rotazione)
  23. * rate numero di frame al secondo (diverso da zero).
  24.  
  25. i MODI:
  26.  
  27. Sono dei numeri che sono "sommati" fra di loro con l'operando "|" ANIM_ON | LOOP per ottenere più effetti in contemporanea
  28.  
  29. ANIM_ON Attiva l'animazione (obbligatorio!!!)
  30. LOOP L'animazione riparte quando è finita (normale)
  31. REVERSE Anima seguendo l'ordine inverso (al contrario)
  32. PING_PONG Anima in avanti e poi indietro
  33. SMOOTH "muove" lungo l'asse delle x invece di seguire i frame (usato anche per SCALE e ROTATE)
  34. ROTATE ruota la texture (incompatibile con scale)
  35. SCALE ingrandisce la texture (incompatibile con rotate).
  36.  
  37. Le modalità più diffuse sono le seguenti:
  38.  
  39. * Muove in una direzione (acqua che scorre, immagine che trasla) ANIM_ON | LOOP | SMOOTH
  40. * Ping/Pong movimento a sobbalzo
  41. * Animazione a frames (tipo fiamma) bisogna fornire una griglia con tutte le immagini intermedie
  42. * Rotazione
  43. * Scalatura (Ingrandimento/riduzione).
  44.  
  45.  
  46. Esempio 1/2: muovere l'acqua
  47.  
  48. default
  49. {
  50. state_entry()
  51. {
  52. // llSetTextureAnim() is a function that animates a texture on a face.
  53. llSetTextureAnim(ANIM_ON | SMOOTH | LOOP, ALL_SIDES,1,1,1.0, 1,0.25);
  54. // animate the script to scroll across all the faces.
  55. }
  56. }
  57.  
  58. 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.
  59. Se aumentate l'ultimo parametro aumenta la velocità.
  60.  
  61. Esempio 3: ruotare una texture
  62.  
  63. llSetTextureAnim(ANIM_ON | SMOOTH | ROTATE | LOOP, ALL_SIDES,1,1,0, 2*PI,.25);
  64.  
  65. Esempio 4: scala una texture
  66.  
  67. llSetTextureAnim(ANIM_ON | SMOOTH | SCALE | LOOP, ALL_SIDES,1,1,0, 2*PI,.25);
  68.  
  69. Fa una sorta di effetto allontanamento o avvicinamento se fatta al contrario
  70.  
  71. Esempio 5: fuoco. Si usano due prim messi incrociati e linkati con la stessa texture ed animazione:
  72.  
  73. llSetTextureAnim(ANIM_ON | LOOP, ALL_SIDES,4,4,0, 15,20);
  74.  
  75. L'esempio 5 va spiegato un attimo meglio. Se guardate la texture è composta da una griglia di 16 immagini disposte
  76. 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.
  77.  
  78. 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.
  79.  
  80.  
  81. E questo è tutto per le texture animate.
  82.  
  83. ====================================================================
  84. 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.
  85.  
  86. 0. Scaricate GIMP e lanciatelo vi apparirà la finestra dei tools.
  87. 1. Aprite una immagine qualunque (possibilmente contrastata)
  88.  
  89.  
  90. TRASPARENZA COMPLETA:
  91.  
  92. 2. Aggiungete un layer trasparente: Layer->Transparency->Add Alpha Channel
  93. 3. Selezionate il "fuzzy selector" (il quarto sulla prima fila dopo il "lazo")
  94. 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
  95. 5. Edit->Clear per cancellare queste aree le vedrete diventare trasparenti.
  96. 6. Salvate con Save as... specificando xxxx.tga
  97.  
  98. SEMITRASPARENZA:
  99.  
  100. 2. Layer->Mask->Add Layer Mask (selezionate Grayscale copy of layer)
  101. 3. Apply Layer Mask
  102. 4. Salvate in modalità TGA.
  103.  
  104. 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