Collisioni e NavMesh

INFO

Una mappa senza collisioni è un fantasma: i giocatori ci passano attraverso. Il file .ybn (Bounds) definisce la fisica dell’oggetto.

ObiettivoDettagli
Cosa impareraiGenerare collisioni (.ybn) e NavMesh per oggetti GTA V
PrerequisitiFile YDR esportato, CodeWalker installato

Cos’è un File YBN

Il .ybn contiene:

  • Bounding Volume — la forma di collisione (sfera, box, poligono)
  • Materiale fisico — come reagisce (metallo, cemento, vetro)
  • Flags — proprietà aggiuntive

Generare YBN da Blender

Automatico (Plugin CodeWalker)

Quando esporti il YDR con il plugin CodeWalker, spunta:

Export Settings:
└── Export Collision: ✅

CodeWalker genera automaticamente un .ybn basato sulla mesh del modello.

Attenzione: Mesh Manifold

WARNING

Una mesh non manifold causa collisioni mancanti o errate. Verifica sempre prima dell’esportazione.

Per una collisione corretta, la mesh deve essere manifold (chiusa, senza buchi):

Edit Mode > Select > All by Trait > Non Manifold

Se ci sono bordi evidenziati, riparali con:

Mesh > Clean Up > Fill Holes
Mesh > Clean Up > Merge By Distance

YBN Manuale con CodeWalker

Se la collisione automatica non funziona o vuoi ottimizzarla:

  1. Apri CodeWalker
  2. Carica il .ydr (File > Open)
  3. Edit > Create Collision

Nell’editor collisione:

Collision Box:
├── Min: [-1.0, -1.5, 0.0]
├── Max: [1.0, 1.5, 3.0]
└── Material: METAL

Collision Poligoni (per forme complesse):
├── Vertici...
├── Triangoli...
└── Material: CONCRETE
  1. File > Save > Save as .ybn

Tipi di Materiale Fisico

MaterialeUsato per
METALContainer, auto, ringhiere
CONCRETEMuri, strade, marciapiedi
GLASS_MATERIALFinestre, vetrine
WOODMobili, pallets
DIRTTerreno non pavimentato
CARPETTappeti, interni
FLESHCorpi (ped)

Collisioni per Oggetti Complessi

Box vs Mesh Collision

TipoPerformancePrecisioneQuando Usare
Box (BVH)⭐⭐⭐⭐Oggetti semplici (scatole, muri)
Mesh poligonale⭐⭐⭐⭐⭐Oggetti con forma irregolare
Capsule⭐⭐⭐⭐⭐Colonne, pali

TIP

Usa box per oggetti grandi e semplici, mesh poligonale per dettagli. Massimizzi performance e precisione.

Multipli Bounds

Un oggetto può avere più bounds per parti diverse:

Bounds:
├── Box 1: Parete principale (CONCRETE)
├── Box 2: Finestra (GLASS_MATERIAL)  
└── Box 3: Pavimento (CONCRETE)

Se la tua mappa è calpestabile (un marciapiede, un ponte, un edificio), i pedoni devono sapere che possono camminarci sopra.

  1. Tools > YMAP Editor (con lo ymap aperto)
  2. Sezione NavMesh:
    • Aggiungi poligoni di navigazione
    • Definisci costi di percorso (1.0 = normale)
    • Collega a navmesh esistenti

Senza NavMesh

  • I pedoni ignoreranno la tua mappa (ci passeranno attraverso o la eviteranno)
  • Per oggetti decorativi (non calpestabili) non serve NavMesh
  • Per interni MLO, il NavMesh è quasi sempre necessario

Test delle Collisioni

In CodeWalker

  1. Carica .ydr + .ybn
  2. Attiva View > Show Collision (o premi C)
  3. La collisione dovrebbe apparire come wireframe verde

In FiveM

  1. Avvia la risorsa
  2. Vai alla posizione della mappa
  3. Cammina CONTRO l’oggetto — se ti blocchi, la collisione funziona
  4. Sparagli — il materiale influenzerà il suono

Risoluzione Problemi Collisioni

ProblemaCausaSoluzione
Il giocatore cade attraversoYBN mancanteGenera .ybn
Collisione invisibile/scorrettaYBN non allineato a YDRRigenera o riallinea
Suono sbagliato quando colpitoMateriale erratoCambia materiale nello YBN
L’oggetto “rimbalza”Bounding box troppo grandeRiduci le dimensioni del box
I pedoni si incastranoNavMesh assenteAggiungi NavMesh

TIP

Prossimo passo: 07 - fxmanifest per Mappe


Torna alla: Indice Generale