Fallout Forum

Tutorial per GECK: Il navmesh, Guida base per "navmeshare"

« Older   Newer »
  Share  
view post Posted on 29/9/2013, 19:54     +1   -1
Avatar

Duchess and the proverbial mind spread

Group:
Administrator
Posts:
5,901
Karma:
+17

Status:


Quando si crea un luogo in Fallout (ma anche in Skyrim), gli NPC al suo interno non sono in grado di muoversi. Sono come "ciechi", come scrivevano in qualche guida. Il navmesh consiste nel dar loro la "vista" in modo che possano muoversi liberamente negli spazi.

Conoscenza richiesta: il GECK...
Difficoltà: minima

CONCETTO BASE

Concettualmente è molto semplice: devo riempire ogni spazio dove un npc può potenzialmente camminare, disegnandoci sopra dei "triangoli".

L'opzione per il navmesh è sulla barra in alto del GECK, quella con tutte le icone, tra la "scatola con la T sopra" e la "matita". Cliccandoci sopra, si aprirà una finestrella con dei comandi aggiuntivi, quelli del navmesh appunto

www.mediafire.com/view/lvl43xzgw9ov113/navmesh1.jpg#

Non mi soffermo a spiegare tutte le opzioni, quella che ci interessa a noi principalmente è la seconda partendo da sinistra (segnata con la freccia, nell'immagine).

Questa opzione permette di "posare" alcuni cubetti colorati nella nostra mappa. Per fare ciò, cliccherò col tasto destro in un punto del mio pavimento. Quando avrò posato almeno tre cubetti, potrò unire i loro vertici e creare un triangolo, premendo il tasto A. Andiamo allora a piazzare alcuni cubi, uno dopo l'altro (prime due immagini in alto):

www.mediafire.com/view/1huq8l1u5j62b06/navmesh2.jpg

Dopodiché ne selezioneremo tre (con un click sinistro del mouse, tenendo premuto il tasto CTRL). Un cubetto selezionato è verde, se è giallo o rosso non è selezionato. Infine premendo A, dicevo, uniremo i cubetti in un triangolo (ultime due immagini in basso)

E' molto importante che i cubetti siano appoggiati al pavimento, e non sospesi per aria. E' possibile muovere la visuale della Render Window come facciamo sempre nel GECK, in modo da vedere se effettivamente il cubo è per terra o se è stato erroneamente appoggiato da qualche altra parte. Se fosse in un posto non idoneo, potremo "trascinarlo" tenendo premuto il tasto sinistro del mouse, come un qualsiasi altro oggetto nel nostro mondo. Per alzarlo o abbassarlo, lo trascineremo sempre col tasto sinistro, ma tenendo premuto il tasto Z: gli stessi, identici, comandi del GECK. Funziona anche il tasto C, che mi cambia la visuale e me la centra sul cubetto selezionato. E funziona anche l'utilissimo tasto F, che se premuto su un cubetto sospeso in aria lo fa cadere sul pavimento.

Se voglio aggiungere un cubetto a metà di una linea, di un lato di un triangolo, selezionerò la terza icona partendo da sinistra, nella barra del navmesh (vedi immagine seguente, quella di sinistra, la freccia in alto indica l'icona da selezionare). A questo punto anche i bordi dei triangoli saranno cliccabili: vado sopra un lato e vedrò che questo diventa rosso, dopodiché cliccando col destro comparirà un cubetto, e quello che prima era un triangolo grosso è stato diviso in due triangoli più piccoli (immagine seguente, in alto a destra).

Ecco qui:
www.mediafire.com/view/6g2j6m53u2jmq2p/navmesh3.jpg#

Posso cancellare un cubetto selezionandolo (cliccandoci sopra con il sinistro finchè non diventa verde) e cliccando CANC. Allo stesso modo, se seleziono la prima icona a sinistra nella barra del navmesh, potrò selezionare un intero triangolo e cancellare quello (immagine precedente, in basso a destra).

WALKING THE DOG

Quando ho due vertici selezionati (che saranno in futuro due dei tre necessari per fare un triangolo), posso tener premuto il tasto CTRL e cliccare col destro per creare il terzo vertice: con un solo click lui poserà il cubetto e lo unirà agli altri due. Non solo: selezionerà in automatico due vertici, con un certo criterio che via via che si navmesha si comincerà a notare. A questo punto, avendo già due vertici selezionati, mi basterà cliccare col destro su un nuovo punto, sempre tenendo premuto CTRL, e lui poserà un nuovo cubetto e lo unirà ai precedenti, creerà un nuovo triangolo e selezionerà due nuovi vertici.

www.mediafire.com/view/bcdm8mwo6ulc9ax/navmesh4.jpg#

Questa tecnica è chiamata "walking the dog", fare un corridoio in questa maniera è una cosa rapidissima.
E' possibile che i due vertici selezionati in automatico non siano quelli che servono a me per creare il successivo triangolo, ma basterà schiacciare il tasto TAB più volte per cambiare coppia di vertici fino a trovare quella che mi interessa.

NOTE:

- I triangoli non dovranno mai essere troppo "stretti", con un angolo troppo acuto. Meglio immaginare di fare dei quadrati o dei rettangoli (non molto rettangoli appunto, non molto allungati) e dividerli in due triangoli. La dimensione può variare, ma generalmente non faccio mai triangoli di 50 metri di lato. Per avere un'idea basterà guardare una qualsiasi cella del gioco e vedere come è stata navmeshata. In linea di massima negli interni sono triangoli di circa 1-2 metri di lato, arrivano anche a 4-5, negli esterni invece anche di più.

- Tutti gli oggetti "static" non vanno inclusi nel navmesh, o un npc si bloccherà correndoci contro. Se avete ad esempio un armadio, col navmesh dovrete passarci attorno.

- Tutti gli oggetti "dinamic" possono essere inclusi nel navmesh. Pensiamo ad esempio ad una bottiglia: se l'npc ci passa sopra, la bottiglia semplicemente rotolerà via.

- Scale: vanno posti due cubetti in cima alla scala, sul bordo del gradino, e due al fondo. Vanno uniti con due triangoli, dopodiché vanno spostati leggermente in modo che i triangoli siano visibili, che non siano "inghiottiti" dai gradini.

- Piani sovrapposti: navmeshare un secondo piano è sempre problematica, a volte si clicca per mettere il cubetto e quello non appare. In realtà appare ma in un posto completamente sbagliato, e ce lo perderemo creando futuri problemi molto noiosi (vedi più avanti). La soluzione sta nel navmeshare selezionando SOLO la famosa seconda icona partendo da sinistra, quella dei vertici, e DESELEZIONANDO la prima e la terza.

- Il navmesh va sempre fatto tutto unito: non possono crearsi "isole". Questo mi crea delle limitazioni a volte. Immaginiamo un recinto con degli animali, che però è chiuso e gli animali non possono uscire. In teoria dovrei fare due navmesh separate, una per l'esterno e una per l'interno del recinto. Ma se farò così, succederanno cose strane. La più classica (su cui ho sbattuto la testa per non so quanto prima di capire dove fosse il problema) è che la cella verrà caricata correttamente SOLO la prima volta che si apre il gioco. Ricaricando un salvataggio, o tornando al menu principale e ricaricando, o uscendo e rientrando nella cella, vedremo succedere cose assurde come vedere creature che erano fuori dal recinto apparire la dentro, o peggio ancora i nostri follower dentro al recinto con gli animali...

EDIT: la ragione del punto precedente è soprattutto dovuta al fatto che il navmesh funziona correttamente SOLO se il nostro plugin è un ESM (o ha ESM come header). Questo è MOLTO importante.

- Il numero massimo di triangoli utilizzabili nel navmesh mi pare sia attorno ai 2000 per cella. Si può vedere il totale nella finestra Cell view, dove sono elencati anche tutti gli oggetti presenti nella mia cella. Il navmesh sarà indicato come prima cosa, col numero di triangoli utilizzati. Se ci saranno due linee separate con due navmesh, significa che ho creato (probabilmente erroneamente) due navmesh separati e dovrò eliminarne uno (o succederanno le cose strane che ho detto al punto precedente).

- Un "errore" non molto grave ma che comunque reputo fastidioso lo si fa quando si duplica una cella esistente per creare una nuova cella. Se deciderò di mantenere il navmesh, succederà che quando sarò dentro quella cella e ad esempio ho selezionato nel pipboy una quest che mi manderebbe fuori da quella cella per raggiungere un certo punto, se apro la mappa vedrò che il "tragitto" è completamente sbagliato, mi farà andare in un posto completamente all'opposto. Se guardiamo meglio, in realtà lui sta puntando alla porta d'uscita della cella che abbiamo duplicato in origine... Personalmente rifaccio sempre i navmesh delle celle che duplico, ma per correggere un errore del genere basterebbe eliminare il triangolo della "finalizzazione".

- La "finalizzazione" è un'operazione che si dovrebbe fare quando un navmesh è finito e corretto. In pratica controlla il nostro lavoro e lo da per buono. Inoltre, se uno dei nostri triangoli è in prossimità di una porta, diventerà verde. Quel triangolo verrà utilizzato dagli npc per entrare e uscire dal luogo. Questo è anche il famoso triangolo che crea l'errore al punto precedente, e che quindi andrebbe cancellato. Personalmente non finalizzo quasi mai un navmesh, per ora non ne ho mai avuto l'esigenza, pare che gli npc escano lo stesso dalle mie celle...

EDIT: ho sentito dire che per le celle esterne la finalizzazione è molto importante e va a piè pari col LOD. Non so comunque che genere di relazione ci possa essere tra i due.

- Consiglio sempre di non fare il navmesh tutto in un colpo. E' meglio ogni tanto chiuderlo, salvare, e riaprirlo per continuare. Questo perché se c'è un errore nel navmesh a volte è complicato capire dov'è e correggerlo. Quando si va a salvare, il GECK controlla sempre se sono stati fatti errori. In questo modo se proprio non riusciamo a trovarlo, potremo sempre ricaricare il salvataggio precedente e fare attenzione a non rifare lo stesso errore.

EDIT: soprattutto perché un errore nel navmesh crea una grande instabilità nel GECK, lo fa crashare e perdete tutto il lavoro fatto... Per cui meglio salvare sovente

- L'errore più comune nel navmesh, almeno nel mio caso, è dato da vertici non collegati o sospesi per aria. Capita anche che addirittura creiamo un triangolo collegato ad un vertice sospeso in aria, e quindi sarà un triangolo "in piedi", come dire, verticale. Questo crea errori.

- Il navmesh dovrebbe comprendere anche un'opzione per testarlo, ma su New Vegas non funziona a quanto pare, c'era solo in Fallout 3. Per testarlo, si potrebbe anche solo andare in gioco e magari sguinzagliare un po' di companion in modalità sandbox, e osservarli per vedere come si muovono, se rimangono "incastrati" da qualche parte, etc. Un altro sistema che utilizzo è attaccare qualcuno, mettermi in modalità God Mode (TGM da console) e farmi sparare di continuo, spostandomi in diverse zone e osservando come lui mi combatte, se riesce a muoversi bene, se mi segue, etc.

- Un navmesh avanzato includerebbe anche lo stabilire dei punti di "copertura", quei triangoli dove i nemici vanno a nascondersi quando combattono con noi, ad esempio dietro ad una colonna, o dietro una barricata etc. Ma quando si arriverà a questo punto, significa che avremo navmeshato già migliaia di triangoli...

- Un navmesh scorretto può creare problemi in tanti ambiti: pensiamo ad esempio ad un npc scriptato in modo che ci debba raggiungere. Se non potrà farlo, è probabile che "vada in tilt".

- Le zone costruite in maniera complessa o con molto clutter sono anche particolarmente difficili da navmeshare, se non impossibili addirittura. Se qualcuno ha esplorato un po' la San Bernardino di Project Brazil, avrà visto come vicino all'uscita del vault, lungo la strada, c'è una specie di cimitero di macchine. Ecco, provate a gironzolare la attorno con i vostri companion e capirete che intendo. Non ce n'è UNO che vi seguirà, saltelleranno come conigli perché non riusciranno a seguire il navmesh. Ora io non dico di uccidere la vena creativa per via del navmesh e fare solo spazi semplici. Ma ecco, se è una zona dove la presenza dei companion è essenziale, cercate un compromesso. Ad esempio, pensiamo proprio ad una strada, con quattro file di macchine. Potremmo magari distanziare le due file centrali in modo da creare un "tunnel", uno spazio da navmeshare in tranquillità e dove i nostri companion ci seguiranno senza problemi.
Un altro "trucco" che ho visto fare da DJ Mystro di AWOP, me ne sono accorta proprio poco tempo fa: in AWOP i combattimenti sono MOLTO importanti, è una mod basata solo sullo spargimento di sangue... ecco, qui c'è tutto un complesso sotterraneo chiamato Underground. Ora, le caverne, per via dei loro continui sali scendi, sono un'impresa da navmeshare bene, ve ne accorgerete alla prima che farete. Mystro ricorre ad un trucco: dove la caverna scende e poi risale, dove è sconnessa, etc. lui piazza una "plancia", un piano, di terra. Questo non è facilmente notabile, visto che la stessa caverna è di terra ed è buia. Ma gli da il pregio di poter navmeshare in piano, così anche i nemici si muoveranno decisamente meglio.

EDIT: la "plancia" è utile, ma con la pratica ho notato che gli npc sono più intelligenti di quel che sembrano, non hanno una così grande necessità d'avere un navmesh super perfetto. Dentro una caverna, per esempio, col terreno sconnesso, non importa se mezzi triangoli vanno sotto terra o stanno sospesi in aria, l'altezza del navmesh non conta molto.

Edited by ana79 - 10/2/2015, 15:00
 
Top
view post Posted on 28/7/2018, 23:00     +1   -1
Avatar

Si nascondono da me dietro muri di nebbia, l'umanità e l'abisso. Partoriscono mostri da aizzare gli uni contro gli altri. E più il sangue scorre, più la follia inebria. L'abisso nell'anima, la colpa dell'altro.

Group:
Seguaci dell'Apocalisse
Posts:
3,796
Karma:
+4
Location:
Da qualche parte, nel subconscio della gente

Status:


E' normale che quando faccio un navmash in una caverna e salvo il Geck crasha? E' crashato cinque volte. Ho persino levato la tab del Navmash per salvarlo, ma crasha sempre. Succede solo se metto il navmash. La cella è duplicata. Ho cancellato ogni cosa prima di mappare, persino il navmash che c'era.

Comunque, avevo per sbaglio fatto il navmash generetor, una cosa simile e mi sono dimenticato di cancellaro ed ho salvato così. Ovviamente ho cancellato quel navmash per farlo da me. Ho fatto qualche quadrato perlopiù, ma appena clicco salva, crasha.
 
Top
view post Posted on 29/7/2018, 01:20     +1   -1
Avatar

Duchess and the proverbial mind spread

Group:
Administrator
Posts:
5,901
Karma:
+17

Status:


CITAZIONE (AdeCerberus @ 29/7/2018, 00:00) 
E' normale che quando faccio un navmash in una caverna e salvo il Geck crasha? E' crashato cinque volte.

No non è normale. Può crashare ma è raro, di solito a me lo faceva se c'era qualche errore nel navmesh.

Una cosa che andrebbe fatta per ridurre notevolmente i crash in generale nel GECK è abilitare il LAA, ad esempio con questa patch:
www.nexusmods.com/newvegas/mods/62552/?
 
Top
view post Posted on 29/7/2018, 12:29     +1   -1
Avatar

Si nascondono da me dietro muri di nebbia, l'umanità e l'abisso. Partoriscono mostri da aizzare gli uni contro gli altri. E più il sangue scorre, più la follia inebria. L'abisso nell'anima, la colpa dell'altro.

Group:
Seguaci dell'Apocalisse
Posts:
3,796
Karma:
+4
Location:
Da qualche parte, nel subconscio della gente

Status:


Ho risolto facendo finalize current cell. Però è strano visto che qualche volta crashava se premevo quello o salvavo senza premerlo. Pensavo che fosse un problema del kit cave. Ho letto che creare una caverna è assai difficile e impegnativo, rispetto ad altri kit, anche con i navmash.

Comunque scarico la patch che mi hai linkato.
 
Top
3 replies since 29/9/2013, 19:54   271 views
  Share