Animazione Texture
Inviato: lun 12 ott 2020, 18:32
Animazione Texture
Autore originale: Kallel A.Y.
Link originale: kallelay.users.sourceforge.net/episode1.htm
Tradotto da: TheFactor82
Quello che vado ad illustrarti è attualmente l'unico modo per rendere animato un file World (.w) di Re-volt. L'immagine seguente ne è una dimostrazione (apri l'immagine e, una volta visualizzata, clicca nuovamente su di essa per visualizzare l'effetto):
Puoi scaricare il pacchetto Multiframe direttamente dalla sezione DOWNLOADS di questo forum, all'interno della cartella TOOLS. Le texture sono opera di Urnemanden.
Passo 1. Impostare il tipo richiesto
Per il tipo di mesh, la "Texture Animated mesh" deve avere il flag [TexAnim Flag].
Esempi:
- una mesh Triangular con TexAnim attivo: [TexAnim Flag] -> 512
- una mesh Quad con TexAnim attivo: [Quad Flag] + [TexAnim Flag] = 1+512 -> 513
- una mesh Quad in dimensione raddoppiata con TexAnim attivo: [Quad Flag] + [Double-side Flag] + [TexAnim Flag] = 1+2+512 -> 515
Nota: ASE2W converte le mesh Quad in mesh Triangular.
Passo 2. Da Triangular a Quad
E' altamente consigliata la conversione delle mesh Triangular in Quard. Nel pacchetto Multiframe c'è un file Export w.bat, ma puoi comunque creare tu il tuo file w personale. La prima mesh (CUBE) è quella con l'effetto animato, mentre l'altra è semplicemente l'aeroplano bianco.
Dopo la decodifica, viene creato un file chiamato "multiframe.w.txt"
Fai particolare attenzione a queste due linee:
Sono così perchè ASE2W divide la mesh Quad in Triangular. Dobbiamo quindi procedere a convertirla manualmente in una mesh Quad:
Le facce risulteranno così:
(Nota che la seconda riga "rvshort 0" non viene presa in considerazione dalle mesh Triangular)
Cambia le righe in questo modo:
Ora devi aggiungere un po' di cose. Ma prima, elimina il secondo poligono (questo):
Ora devi utilizzare questa mappatura UV:
Le prime due mappature UV non dovrebbero dare problemi. Per la quarta mappatura, devi prendere la prima riga della prima mappatura e la seconda della seconda, ottenendo questo:
Ricorda però che la mappatura 3 è inserita dentro 2 e 1, quindi:
deve diventare
Alla fine la mappatura UV deve risultare così:
Passo 3. 513 per Quad, 512 per Tri
Il codice
deve diventare
Passo 4 Animazione della texture / Multiframes
Il codice
si può trovare nelle ultime linee. I Multiframes sono all'incirca strutturati così:
rvlong [Animation count]
- rvlong [FrameCount]
- rvlong [Texture Page]
- rvfloat [Time in seconds]
- rvfloat [U1]
- rvfloat [V1]
- rvfloat [U2]
- rvfloat [V2]
- rvfloat [U3]
- rvfloat [V3]
- rvfloat [U4]
- rvfloat [V4]
Osserva i files Toy2.w e multiframe.w per comprendere al meglio la struttura.
Nota bene: per ottenere la mappatura UV, è stato usato 3d Studio Max.
Autore originale: Kallel A.Y.
Link originale: kallelay.users.sourceforge.net/episode1.htm
Tradotto da: TheFactor82
Quello che vado ad illustrarti è attualmente l'unico modo per rendere animato un file World (.w) di Re-volt. L'immagine seguente ne è una dimostrazione (apri l'immagine e, una volta visualizzata, clicca nuovamente su di essa per visualizzare l'effetto):
Puoi scaricare il pacchetto Multiframe direttamente dalla sezione DOWNLOADS di questo forum, all'interno della cartella TOOLS. Le texture sono opera di Urnemanden.
Passo 1. Impostare il tipo richiesto
Codice: Seleziona tutto
Flags conosciuti:
[Quad flag] = 1
[Double-Side Flag]=2
[Translucent Flag]=4
[TexAnim Flag] = 512
[ENV on Flag] = 1024
Per il tipo di mesh, la "Texture Animated mesh" deve avere il flag [TexAnim Flag].
Esempi:
- una mesh Triangular con TexAnim attivo: [TexAnim Flag] -> 512
- una mesh Quad con TexAnim attivo: [Quad Flag] + [TexAnim Flag] = 1+512 -> 513
- una mesh Quad in dimensione raddoppiata con TexAnim attivo: [Quad Flag] + [Double-side Flag] + [TexAnim Flag] = 1+2+512 -> 515
Nota: ASE2W converte le mesh Quad in mesh Triangular.
Passo 2. Da Triangular a Quad
E' altamente consigliata la conversione delle mesh Triangular in Quard. Nel pacchetto Multiframe c'è un file Export w.bat, ma puoi comunque creare tu il tuo file w personale. La prima mesh (CUBE) è quella con l'effetto animato, mentre l'altra è semplicemente l'aeroplano bianco.
Dopo la decodifica, viene creato un file chiamato "multiframe.w.txt"
Codice: Seleziona tutto
#############################################
# multiframe.w
#############################################
#cubes count
rvlong 2
#cube:1
#Bounding sphere (X,Y,Z, radius)
rvfloat 358.7139
rvfloat 958.716
rvfloat -658.2766
rvfloat 561.7676
#Bounding Box (Xmin,Xmax,Ymin,Ymax,Zmin,Zmax)
rvfloat -177.2125
rvfloat 894.6403
rvfloat 789.4481
rvfloat 1127.984
rvfloat -659.2766
rvfloat -657.2766
#Poly count
rvshort 2
#Vertex count
rvshort 4
#Poly n?1
Fai particolare attenzione a queste due linee:
Codice: Seleziona tutto
#Poly count
rvshort 2
Sono così perchè ASE2W divide la mesh Quad in Triangular. Dobbiamo quindi procedere a convertirla manualmente in una mesh Quad:
Codice: Seleziona tutto
#Poly count
rvshort 1
Le facce risulteranno così:
Codice: Seleziona tutto
#Faces (vertex index which link to a face)
rvshort 2
rvshort 1
rvshort 0
rvshort 0
(Nota che la seconda riga "rvshort 0" non viene presa in considerazione dalle mesh Triangular)
Cambia le righe in questo modo:
Codice: Seleziona tutto
#Faces (vertex index which link to a face)
rvshort 0
rvshort 2
rvshort 3
rvshort 1
Ora devi aggiungere un po' di cose. Ma prima, elimina il secondo poligono (questo):
Codice: Seleziona tutto
#Poly n?2
#type
rvshort 0
#texture
rvshort 0
#Faces (vertex index which link to a face)
rvshort 1
rvshort 2
rvshort 3
rvshort 0
#Vertex Color [3 or 4 depends on the type] (including alpha channel)
rvulong 16777215
rvulong 16777215
rvulong 16777215
rvulong 16777215
#UV map
#(1) UV
rvfloat 0
rvfloat 0.1561
#(2) UV
rvfloat 0.8141
rvfloat 0
#(3) UV
rvfloat 0
rvfloat 0
#(4) UV
rvfloat 0
rvfloat 0
Ora devi utilizzare questa mappatura UV:
Codice: Seleziona tutto
#(1) UV
rvfloat 0.8141
rvfloat 0
#(2) UV
rvfloat 0
rvfloat 0.1561
#(3) UV
rvfloat 0
rvfloat 0
#(4) UV
rvfloat 0
rvfloat 0
Le prime due mappature UV non dovrebbero dare problemi. Per la quarta mappatura, devi prendere la prima riga della prima mappatura e la seconda della seconda, ottenendo questo:
Codice: Seleziona tutto
#(4) UV
rvfloat 0.8141
rvfloat 0.1561
Ricorda però che la mappatura 3 è inserita dentro 2 e 1, quindi:
Codice: Seleziona tutto
#(3) UV
rvfloat 0
rvfloat 0
#(4) UV
rvfloat 0.8141
rvfloat 0.1561
deve diventare
Codice: Seleziona tutto
#(3) UV
rvfloat 0.8141
rvfloat 0.1561
#(4) UV
rvfloat 0
rvfloat 0
Alla fine la mappatura UV deve risultare così:
Codice: Seleziona tutto
#(1) UV
rvfloat 0.8141
rvfloat 0
#(2) UV
rvfloat 0
rvfloat 0.1561
#(3) UV
rvfloat 0.8141
rvfloat 0.1561
#(4) UV
rvfloat 0
rvfloat 0
Passo 3. 513 per Quad, 512 per Tri
Il codice
Codice: Seleziona tutto
#Poly n?1
#type
rvshort 1
deve diventare
Codice: Seleziona tutto
#Poly n?1
#type
rvshort 513
Passo 4 Animazione della texture / Multiframes
Il codice
Codice: Seleziona tutto
# -----------------------------------
#multiframe count
rvlong 0
rvlong [Animation count]
- rvlong [FrameCount]
- rvlong [Texture Page]
- rvfloat [Time in seconds]
- rvfloat [U1]
- rvfloat [V1]
- rvfloat [U2]
- rvfloat [V2]
- rvfloat [U3]
- rvfloat [V3]
- rvfloat [U4]
- rvfloat [V4]
Osserva i files Toy2.w e multiframe.w per comprendere al meglio la struttura.
Nota bene: per ottenere la mappatura UV, è stato usato 3d Studio Max.