Nella mia stanza l'area esterna ha anche un bel cielo marziano,
e dentro ci ho messo anche un paio di tubi di ossigeno, visto che lì fra un po' l'aria diventerà irrespirabile,
ma la cosa non è essenziale: il tutto funzionerà bene anche senza ;-)
NB.: la cosa è piuttosto ovvia ma la diciamo lo stesso: naturalmente,
l'info_vacuum non potrà trovarsi nella stessa area
in cui si trova il player_start :-P
Rottura di un vetro e decompressione
Introduzione. In questo tutorial vedremo come la rottura di un vetro possa mettere a contatto l'interno con l'esterno, provocando
la decompressione dell'ambiente interno: una stanza sotto pressione e quindi abitabile, subirà la completa perdita di ossigeno,
lasciando il nostro marine in apnea nel vuoto dell'atmosfera marziana.
L'effetto che otterremo non aggiunge nulla che non ci sia già nel gioco. Un passo avanti in questo senso consisterebbe nell'implementare
un meccanismo di trascinamento degli oggetti che si trovano dentro alla stanza e magari anche del player, di modo che tuto venga scaraventato fuori. Questo effetto realistico, o qualcosa di simile,
si può ottenere usando i 'vacuum portals' (come li useremo qui) e i 'nurbs' con l'aggiunta di opportuni scripts.
Una cosa alla volta. Per ora ci occupiamo del'effetto di decompressione e rimandiamo il resto a un tutorial di livello avanzato.
1. La stanza di base
Per prima cosa costruisci una stanza rettangolare con un paio di luci e un player_start. Dividila più o meno a metà con un
muro e aprici una finestra abbastanza ampia.
2. Facciamo il vuoto intorno a noi
Premendo il pulsante destro del mouse su una delle grigle 2D apri il menù a tendina, va su INFO e scegli
info_vacuum
Posiziona l'entità appena creata nell'area che hai deciso che sarà quella esterna :)
Al momento, l'intera stanza/mappa è sotto vuoto; più avanti vedremo come dividere i due ambienti. Ora deseleziona
l'info_vacuum e lascialo stare: non lo toccheremo più, ma lui farà la sua funzione.
Ok andiamo avanti con tutto il resto.
3. Montiamo il vetro
Disegna un brush sottile (diciamo di 2 o 4 unità) e mettici una texture di vetro.
Le altre istruzioni o suggerimenti sono nell'immagine sotto:
3.1 Spezziamolo (Func_fracture)
Costruita la finestra, ora bisogna far sì che il vetro si rompa quando viene colpito.
Cosa decisamente semplice:
con il vetro selezionato premi con il pulsante destro del
mouse sulla griglia 2D, va su func e scegli func_fracture.
Il vetro è ora rompibile, di solito con tre colpi di pistola o uno di shotgun. In ogni caso la resistenza è regolabile.
Fra le proprietà troverai diverse possibilità di regolazione, fra cui quella che ti permetterà di settare la potenza di fuoco che il vetro sarà in grado di
resistere prima di andare in pezzi: esplora da te :)
Qui abbiamo lasciato i valori di default.
4. Sigilliamo la finestra
Ora dividiamo l'esterno dall'interno con un visportal
Disegna un brush spesso quanto il muretto e ampio quanto il vano della finestra.
Nella finestra polivalente seleziona
media, localizza il folder chiamato editor, aprilo e scegli la texture visportal.
Ora nascondi il visportal così che non dia fastidio durante le prossime operazioni:
- dal menù segli show quindi visportals.
La stanza/mappa è ora suddivisa in due aree, una all'aperto, l'altra interna. Tuttavia, nonostante il visportal con cui
abbiamo appena sigillato la finestra, l'intera stanza/mappa è ancora sotto vuoto. Dunque è arrivato il momento di separare le due aree.
5. Separiamo le due aree (info_vacuumseparator)
Ok ci siamo. Ora ci occupiamo di separare il vuoto esterno dall'ambiente interno.
Lo faremo piazzando l'entità info_vacuumseparator in mezzo al vano della vetrata: come prima, premendo il pulsante destro
del mouse sulla griglia 2D, va su info e scegli info_vacuumseparator.
Fa attenzione che il separator rimanga a contatto con il visportal.
Il passo seguente consiste nei collegamenti e nel settaggio delle proprietà delle due entità che abbiamo usato per
separare l'estermo dall'interno: l'info_vacuumseparator e il func_fracture.
6. Colleghiamo le entità e settiamo le proprietà
Come vedi dalla figura sopra, il programma ha assegnato automaticamente all'info_vacuumseparator il nome di l'info_vacuumseparator_1.
Non va bene: bisogna cambiarlo. Inoltre, affinché la rottura del vetro agisca sul separator eliminandolo e quindi
collegando le due aree in modo che il vuoto penetri all'interno, bisogna assegnare all'entità func_fracture
un target, che sarà il nome che andremo a mettere al separator. Ecco come fare:
Con l'info_vacuumseparator selezionato apri la finestra delle proprietà. Clicca su 'name' nel frame di mezzo; spostati nel frame sottostante e,
nel campo 'Value', scrivici: glass_portal. Premi ENTER.
Diseleziona l'info_vacuumseparator e seleziona il func_fracture. Riapri la finestra 'properties': sul
campo 'Key' scrivi target e sul campo 'Value' scrivici glass_portal. Premi ENTER. Se è comparsa una freccia di collegamento fra le entità significa che la procedura è andata a buon fine.
7. Testiamo la mappa
Ed è fatta. Deseleziona tutto, salva, lancia la BSP e testa la mappa. Se hai lavorato bene, dopo tre colpi al vetro
questo dovrebbe andare in frantumi e, dopo un secondo o due, dovresti trovarti nel vuoto dell'atmosfera marziana. Buona fortuna ;)
Ok. Questo è quanto. Ti ricordo che di questo tutorial è disponibile una versione video accessibile dall'indice dei
tutorials per DOOM3, sezione Livello intermedio. Se comunque hai dei dubbi su qualche punto, posta pure le tue domande sul nostro Forum.
Rotura di un vetro e decompressione Tutorial e Video Tutorial by m4rcvs for HG&LD
- 20 giugno. 2004 - Aggiornato il 06 Nov. 2005.