Tutorial aggiungere modificare acqua in GTA 5 (water.xml)
In GTA 5 si può modificare o aggiungere acqua. Ho fatto molti test, prima modificando alcune porzioni d'acqua esistenti, poi iniziando ad aggiungere nuove porzioni e iniziando a testare i vari paramentri applicabili all'acqua in GTA 5.
Ad ogni test ho creato e condiviso un nuovo file mappa, e molti mi hanno chiesto: come si modifica l'acqua? Cosi ho deciso di farequesto Tutorial.
In questo Tutorial vi mostro solo le basi per gestire l'acqua (principalmente aggiungere-modificare) e come funzionano e cosa fanno i parametri che ho esplorato fin'ora. Non è assolutamente un Tutorial completo su tutte le caratteristiche e le funzioni dell'acqua in GTA 5. Sono un infinità e ogni giorno viene scoperto qualcosa di nuovo.
Cercherò di spiegare tutto nel modo più semplice possibile usando molte immagini ed esempi concreti con file reali. Comunque per qualsiasi dubbio non esitate a chiedere nei commenti.
LE BASI
Innanzitutto, iniziamo col dire che il file con cui andrai a lavorare è water.xml. Il file si trova in "common.rpf/data/level/GTA5". Lo devi esportare e importare con OpenIV.
All'interno del file water.xml troverai una struttura simile a questa:
<waterData>
<waterQuads>
<Item>
<minX value="-1592" />
<maxX value="-1304" />
<minY value="-1744" />
<maxY value="-1624" />
<Type value="0" />
<IsInvisible value="false" />
<HasLimitedDepth value="false" />
<z value="0.0" />
<a1 value="26" />
<a2 value="26" />
<a3 value="26" />
<a4 value="26" />
<NoStencil value="false" />
</Item>
La parte che ti interessa è compresa tra <Item> e </Item>.
Le prime quattro righe che vedi rappresentano coordinate (x,y). Rappresentano quattro punti che definiscono un rettangolo.
Questa è la prima cosa da capire, può creare confusione, ma in realtà è molto semplice.
Per farvi capire ho rimosso dal file water.xml, la prima serie di coordinate. Nella foto qui sotto potete vedere cosa è successo.
Ora che abbiamo capito come funzionano le coordinate, la cosa più semplice che possiamo fare è restringere un rettangolo esistente.
In questo caso ho solo modificato nel codice precedente minX da -1592 a -1582, e minY da -1744 a -1734.
Nei miei primi esperimenti creavo dei grafici, mi hanno aiutato molto a capire cosa stavo facendo e quali coordinate usare nel file.
Questo primo grafico rappresenta le modifiche che ho apportato al file water.xml.
Con queste modifiche ho ottenuto un area a forma di "L" larga 10 metri/unità. Non molto utile, ma un primo passo.
1° ESPERIMENTO - BUCO NELL'acqua
Una cosa più utile potrebbe essere avere solo un quadrato senz'acqua, in cui costruire qualcosa.
Per fare questo dobbiamo aggiungere 2 nuovi rettangoli, che andranno a riempire gli spazi vuoti tra X-1592 e X-1582, e tra Y-1734 e Y-1744.
Aggiungo quindi queste nuove righe nel file water.xml
<Item>
<minX value="-1592" />
<maxX value="-1582" />
<minY value="-1734" />
<maxY value="-1624" />
<Type value="0" />
<IsInvisible value="false" />
<HasLimitedDepth value="false" />
<z value="0.0" />
<a1 value="26" />
<a2 value="26" />
<a3 value="26" />
<a4 value="26" />
<NoStencil value="false" />
</Item>
<Item>
<minX value="-1582" />
<maxX value="-1304" />
<minY value="-1744" />
<maxY value="-1734" />
<Type value="0" />
<IsInvisible value="false" />
<HasLimitedDepth value="false" />
<z value="0.0" />
<a1 value="26" />
<a2 value="26" />
<a3 value="26" />
<a4 value="26" />
<NoStencil value="false" />
</Item>
Nel grafico ho evidenziato in azzurro le aree dei nuovi rettangoli appena creati. Osservando le coordinate nel grafico è semplice capire quali nuove coordinate inserire nel file water.xml.
P.S. un piccoli promemoria, nei numeri negativi, -1 è maggiore di -10. Quindi, ad esempio, Xmin = -10, Xmax = -1, se inverti le coordinate, non funziona nulla.
Quello che ho ottenuto è un quadrato senz'acqua in mezzo al mare esattamente nell'angolo del rettangolo iniziale:
e con questo cosa posso fare? Ad esempio questo:
Questo è stato il mio primo test, un file water.xml con coordinate modificate e un file per Map Editor per l'edificio. E' stato un primo esperimento reale per capire come tutto funziona.
Il quadrato vuoto non deve necessariamente stare nell'angolo, puoi eliminare completamente il rettangolo con le coordinate originali, e creare 4 tuoi nuovi rettangoli, lasciando lo spazio vuoto dove vuoi.
Quest'ultimo grafico è un esempio di come potrebbero essere suddivisi i nuovi rettangoli.
2° ESPERIMENTO - ACQUE PROFONDE
Come puoi vedere nel primo esperimento l'acqua viene eliminata completamente, dal fondo alla superficie.
Il secondo esperimento sono state le acque profonde. Mi sono spostato un pò più al largo in acque più profonde, ma in questo caso non volevo eliminare l'acqua completamente, ma creare 2 livelli d'acqua. Il normale livello del mare (Z = 0) e un nuovo livello all'interno del mio quadrato, più in basso.
Per fare questo, ho creato la solita struttura di rettangoli come in precendenza, ma invece di lasciare un buco, ho creato un area d'acqua anche con le coordinate del quadrato. In quest'ultimo set di coordinate ho modificato il parametro < value="0.0" />. 0.0 è il normale livello del mare, maggiore o minore varia l'altezza del livello dell'acqua.
Quello che ho ottenuto è questo:
Una seconda casa sommersa con un ingresso subaqueo.
Con questo secondo esperimento ho notato diversi comportamenti anomali dell'acqua. Primo e forse più importante, i 2 livelli dell'acqua creano confusione. Nel senso che sia il player che gli animali lasciati liberi di vagare nella zona, sembrano avere problemi con il secondo livello.
Ad esempio, tuffandosi con il player dalla terrazza dell'edificio, si affonda nell'acqua molto più del normale. Le balene, mentre nuotano, senza un apparente motivo, all'improvviso muoiono, come se improvvisamente si ritrovassero sulla terra ferma, anche se ben lontane dal quadrato del secondo livello dell'acqua.
Alcuni problemi simili, li ho riscontrati anche in altri test, avvicinandosi troppo alla riva, forse dipendono dalla profondità del fondale marino, magari spostandosi ancora più al largo si risolvono. Al momento non ho avuto tempo di fare altri test a riguardo. In futuro farò nuovi test.
3° ESPERIMENTO - AQUARIUM
Nel mio terzo esperimento ho ricominciato dai file del primo esperimento. GTAV Underwater House
Ho modificato water.xml per lasciare una strada verso la riva, convertito l'edificio in un aquarium e popolato la zona circostante di una miriade di animali marini. Questo principalmente per capire dove andavano a morire. Costringendoli a nuotare in una zona ristretta, alcuni animali si avviano verso la riva e tendono a morire spiaggiati.
Penso quindi che i problemi del secondo esperimento, siano riferibili al fatto che il secondo livello dell'acqua è forse troppo vicino al fondale. In futuro farò nuovi test per confermare o smentire questa tesi.
4° ESPERIMENTO - FRANKLIN'S LAKE
Questa volta volevo provare ad aggiungere acqua sulla terra ferma. Inizialmente l'idea era di fare una piscina, ma l'acqua era un pò troppo agitata per una piscina, era più adatta a un lago, cosi è ho fatto un lago.
Come al solito ho creato una serie di nuovi rettangoli in water.xml, impostando però in questo caso il valore Z=166. Il livello dell'acqua si è alzato, fino al giardino della villa di Franklin.
Tutto quello che riguarda l'acqua sembra funzionare perfettamente. L'unico "bug" che ho riscontrato riguarda le dimensioni.
Il lago si trova sopra la città. Tutto attorno al lago ho messo una serie di billboard_13 (da editor) per delimitarne i confini. Essendo però il lago molto grande gli elementi più lontani non vengono renderizzati.
L'AI non riconosce l'area come acqua e permette alle auto e ai pedoni di entrarci tranquillamente, che in un attimo si ritrovano sotto decine di metri d'acqua.
Quindi le persone che vedete nuotare nel lago, non sono turisti in visita, sono poveri automobilisti che cercano di salvarsi dall'annegamento.
In superficie l'effetto è carino, ma andando sott'acqua, si vede che il fondale è disseminato di cadaveri...
Il parametro Type
In questo esperimento,ho testato anche il parametro <Type value="0" />. Inizialmente non sembra cambiare granche, la superficie è sempre uguale, le onde sempre uguali, la trasparenza sempre uguale, si nota solo qualche errore nella forma .
Però, mentre preparavo le foto ho allontanato la visuale ed ho notato uno schema.
Sembrano essere gradazioni (0, 90, 180, 270). Probabilmente utili quando la forma rettangolare interferisce con altri elementi. Al momento non ho fatto altri test. Comunque il parametro <Type value="0" /> sembra fare questo.
5° ESPERIMENTO - VANILLA UNICORN POOL PARTY
GTA 5 Vanilla Unicorn Pool Party
Questa volta una piscina... al Vanilla Unicorn.
Per fare una piscina servono necessariamente acque più calme.
Ho trovato, sempre nel file water.xml, diverse righe più in basso, una nuova struttura:
<CalmingQuads>
<Item>
<minX value="135" />
<maxX value="154" />
<minY value="-1328" />
<maxY value="-1300" />
<fDampening value="0.01" />
</Item>
In questa struttura i primi 4 valori sono le solite coordinate, il valore <fDampening value="0.01" /> attenua le onde.
Per ora ho fatto solo qualche test. Non sono sicuro di quali siano i valori minimi e massimi di questo parametro.
Nella piscina del Vanilla Unicorn sono riuscito ad attenuare molto le onde, ma sinceramente non quanto avrei voluto.
Può essere comunque un parametro molto utile anche in mare, per creare una marina o aree con acque calme.
Forse questo parametro è collegato ad altri parametri, per ora non ho avuto il tempo di approfondire.
Una cosa molto strana, modificando l'acqua al vanilla unicorn, scompare l'acqua della diga Tatavian. Non ho idea del perchè... è molto lontana dalle coordinate che ho modificato... forse qualche problema col parametro Z.
Il parametro HasLimitedDepth
Nel file water.xml troviamo anche il parametro <HasLimitedDepth value="false" >.
Sembra facilmente intuibile quello che fa. Però impostando il valore a "true", non succede nulla.
Fortunatamente il nostro amico mixtro ci ha dedicato del tempo, e ha creato un nuovo parametro collegato al primo <LimitedDepth value="10" />.
La nuova struttura diventa ad esempio:
<HasLimitedDepth value="true" />
<LimitedDepth value="10" />
E funziona! Con questa struttura è possibile limitare la profondità dell'acqua.
Quindi è possibile ad esempio avere dell'acqua sopra la testa mentre cammini sul fondo del mare... le possibilità diventano infinite.
Per ora ho fatto solo un paio di test, ma ho visto che è addirittura possibile avere 2 livelli d'acqua uno sopra l'altro, e in mezzo aria.
Per ora, ho scoperto da poco questa possibilità, non ho molto da mostrare. In futuro farò sicuramente qualche altro test con esempi concreti.
Un immenso grazie a mixtro per la scoperta.
P.S. Strana cosa, non sembra funzionare ad Alamo Sea.
6° ESPERIMENTO - Base sommersa
Una base sommersa con acqua sopra e sotto.
Ho trovato il tempo di fare un test con il nuovo parametro creato da mixtro. Ne è uscita una base sommersa con acqua sia sopra che sotto.
Mi sono spostato il più possibile in acque profonde, nella speranza di risolvere alcuni dei problemi dell'acqua riscontrati in precedenza.
Non si sono risolti. Bene o male tutto funziona, però i 2 livelli dell'acqua continuano a creare problemi.
Tuffandosi si affonda per un centinaio di metri, i delfini fanno salti di 180 metri per poi morire misteriosamente, il sottomarino si schianta sul fondale.
Ho notato anche una nuova stranezza, all'interno della base la visuale del player continua ad essere mossa, come se fosse sott'acqua. Nulla di grave, ma a lungo andare da un pò di mal di mare.
Però a parte i soliti problemi dell'acqua, il nuovo parametro creato da mixtro funziona molto bene.
Se trovo il tempo farò anche un test con acqua solo sopra, per vedere se qualche stranezza si risolve.
7° ESPERIMENTO - Magazzino sommerso segreto di Trevor
Download GTA 5 Magazzino sommerso segreto di Trevor
Un esperimento con acqua solo sopra. Ho usato il parametro HasLimitedDepth.
L'idea iniziale era di creare un magazzino sommerso, vicino alla riva con accesso nascosto via mare.
Cioè volevo creare come al solito il magazzino con acqua solo sopra con il parametro HasLimitedDepth ecc ecc ecc.
Poi creare una "strada d'acqua" impostando il parametro LimitedDepth value="-1". lasciando un metro d'acqua sulla superficie, attraversabile con un auto, una moto, un carro armato ecc.
Ma, purtoppo non funziona. Ho fatto molte prove con diversi valori, in diversi posti, ma non funzionava.
Poi mi sono accorto che addirittura nel magazzino il parametro LimitedDepth value="-10" non funziona. Nel senso che non si riesce a impostare la profondità del livello dell'acqua.
Impostando il parametro HasLimitedDepth a "true" l'acqua si ferma ad una certa profondità, ma non segue le direttive di "LimitedDepth value=".
Decide GTA dove si deve fermare. Non so perchè questo succeda, forse soliti problemi di poca profondità, poco al largo, posto sbagliato, non lo so.
In futuro, se avrò tempo farò altri test.
Altri parametri
Qualcuno avrà notato che ci sono altri parametri nel file water.xml
<IsInvisible value="false" />
<a1 value="26" />
<a2 value="26" />
<a3 value="26" />
<a4 value="26" />
<NoStencil value="true" />
Cosa fanno questi parametri? Non lo so...
Ho fatto molte prove, in posti diversi, con valori diversi, ma sebbene alcuni sembrino molto intuitivi, in realtà non fanno sembrano fare nulla.
Qualsiasi valore cambi non sembra apportare nessuna modifica visibile. Sicuramente esistono per un motivo, ma io non ho ancora capito quale sia.
Se qualcuno riesce a capire a cosa servono, ce lo faccia sapere.
Onde
Nel file water.xml esiste anche questa struttura
<Item>
<minX value="1664" />
<maxX value="1988" />
<minY value="-120" />
<maxY value="132" />
<Amplitude value="0.1" />
<XDirection value="-0.603208" />
<YDirection value="-0.797584" />
</Item>
Come si può intuire definisce coordinate, direzione e altezza delle onde.
Nei miei test ho notato che gli effetti di questo codice si vedono su larga scala, su aree molto grandi. Penso funzioni solo sul livello 0 dell'acqua.
Trasparenza/Sporco
So che esiste da qualche parte qualcosa che definisce la trasparenza/sporcizia dell'acqua. Perchè ne ho visto gli effetti sul fondale.
Al momento non ho idea di cosa sia o dove sia.
Rating: 4 out of 5 by 824 visitors