Collisioni e NavMesh
INFO
Una mappa senza collisioni è un fantasma: i giocatori ci passano attraverso. Il file
.ybn(Bounds) definisce la fisica dell’oggetto.
| Obiettivo | Dettagli |
|---|---|
| Cosa imparerai | Generare collisioni (.ybn) e NavMesh per oggetti GTA V |
| Prerequisiti | File 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:
- Apri CodeWalker
- Carica il .ydr (File > Open)
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
File > Save > Save as .ybn
Tipi di Materiale Fisico
| Materiale | Usato per |
|---|---|
| METAL | Container, auto, ringhiere |
| CONCRETE | Muri, strade, marciapiedi |
| GLASS_MATERIAL | Finestre, vetrine |
| WOOD | Mobili, pallets |
| DIRT | Terreno non pavimentato |
| CARPET | Tappeti, interni |
| FLESH | Corpi (ped) |
Collisioni per Oggetti Complessi
Box vs Mesh Collision
| Tipo | Performance | Precisione | Quando 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)
NavMesh per Pedoni (opzionale)
Se la tua mappa è calpestabile (un marciapiede, un ponte, un edificio), i pedoni devono sapere che possono camminarci sopra.
NavMesh in CodeWalker
Tools > YMAP Editor(con lo ymap aperto)- 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
- Carica .ydr + .ybn
- Attiva
View > Show Collision(o premi C) - La collisione dovrebbe apparire come wireframe verde
In FiveM
- Avvia la risorsa
- Vai alla posizione della mappa
- Cammina CONTRO l’oggetto — se ti blocchi, la collisione funziona
- Sparagli — il materiale influenzerà il suono
Risoluzione Problemi Collisioni
| Problema | Causa | Soluzione |
|---|---|---|
| Il giocatore cade attraverso | YBN mancante | Genera .ybn |
| Collisione invisibile/scorretta | YBN non allineato a YDR | Rigenera o riallinea |
| Suono sbagliato quando colpito | Materiale errato | Cambia materiale nello YBN |
| L’oggetto “rimbalza” | Bounding box troppo grande | Riduci le dimensioni del box |
| I pedoni si incastrano | NavMesh assente | Aggiungi NavMesh |
TIP
Prossimo passo: 07 - fxmanifest per Mappe
Torna alla: Indice Generale