Come creare MLO FiveM

How To Create FiveM MLOs Tutorial

Una guida passo passo per costruire, esportare, impacchettare, testare, ottimizzare e distribuire FiveM MLOs con Blender, Sollumz, CodeWalker e OpenIV—più risoluzione problemi, QA e budget di performance.

TL;DR: Configurerai gli strumenti (Blender + Sollumz, CodeWalker, OpenIV), modellerai un interno con topologia e densità texel adeguate, creerai collisioni (YBN), portal/stanze/occlusione (YTYP), esporterai con Sollumz, impacchetterai una risorsa con un fxmanifest.lua, convaliderai in-game e raggiungerai i budget di performance usando Resmon.


A chi è rivolta questa guida

FiveM Server Owners and Asset Creators


Prima di iniziare: strumenti & download

Necessario

Opzionale

  • Codice di Visual Studio per modificare i manifest.
  • Editor di immagini (Photoshop, Affinity, GIMP) per le texture.

Nota sulla licenza: Rispetta le politiche di Rockstar/Cfx e le licenze di terze parti. Non ridistribuire asset di gioco proprietari oltre quanto consentito.


Guida rapida (panoramica di 10 minuti)

  1. Installare Blender + Sollumz e abilita l'add‑on.
  2. Crea una nuova scena in metri (1 unità Blender = 1 metro). Importa mesh di riferimento se necessario.
  3. Modella il tuo interno in modo modulare; mantieni la densità texel coerente; evita facce non visibili.
  4. Creare mesh di collisione (primitive semplici) e contrassegnali per l'esportazione YBN.
  5. In CodeWalker, definisci rooms/portals/occluders e genera YTYP voci.
  6. Esporta con Sollumz → YDR/YDD/YBN/YTYP dove appropriato.
  7. Costruisci un cartella della risorsa con stream e un fxmanifest.lua.
  8. Aggiungi risorsa a server.cfg, avvia il server, convalida in-game.
  9. Profilo con Resmon; correggi perdite, overdraw e materiali pesanti.

GTA V/FiveM MLO Tutorial part 1 (Blender/Sollumz)

Guarda, ci sono passato anche io.

Stai camminando nel tuo server, vedi un edificio che sarebbe il perfetto un posto per un'officina meccanica o un nascondiglio segreto di un cartello, e ti avvicini alla porta… e niente. Solo una texture piatta. Una porta finta. Ti fa impazzire, vero?

Quella sensazione è esattamente il motivo per cui ho iniziato a creare MLO (Map Loader Objects). Volevo solo aprire quella dannata porta.

Ma poi ho aperto i tutorial e all'improvviso la gente urlava di “vertex paints” e “ytyps” e “portali,” e onestamente ho quasi mollato lì. Sembrava servisse una laurea in architettura solo per mettere una scatola in un videogioco.

Quindi, fai un respiro profondo. Prendi un caffè (o un Red Bull, non giudico). Ti guiderò attraverso questo come avrei voluto che qualcuno lo spiegasse a me—disordinato, imperfetto, ma comprensibile.

Ecco come iniziare davvero a creare interni per FiveM.


Il Toolkit (Non saltare questo)

Non puoi costruire una casa senza un martello. Per gli interni di GTA V, hai bisogno di un set specifico di strumenti. È fastidioso da configurare, lo so, ma devi farlo solo una volta.

  • Blender: Lo standard del settore per la modellazione 3D. È gratuito. All'inizio è intimidatorio, ma ci serve solo una frazione di ciò che può fare.
  • Sollumz: Questo è un plugin per Blender. Pensalo come il traduttore. Blender parla “3D,” ma GTA V parla “Rage Engine.” Sollumz traduce il tuo modello in modo che il gioco lo capisca.
  • CodeWalker: L'editor di mappe. Lo userai per posizionare il tuo edificio nel mondo e dire al gioco: “Ehi, questo è un interno.”
  • OpenIV: Probabilmente lo hai già. È il file manager/visualizzatore.

Breve parentesi: Se non hai ancora installato Sollumz, fallo prima. Ci sono un milione di video su YouTube su come installarlo. Ti aspetto qui.


Passo 1: Il “Guscio” (Costruire la Scatola)

Ok, quindi un MLO non è solo una stanza. È un guscio.

Immagina di costruire una casa delle bambole. Hai le pareti esterne (l'edificio che vedi dalla strada) e la stanza interna.

  1. Apri Blender. Elimina quel cubo predefinito. (È tradizione. Scusa, cubo.)
  2. Importa il Modello Originale: Se stai modificando un edificio GTA esistente, devi importare quell'edificio usando Sollumz per sapere dove tagliare il buco per la porta.
  3. Taglia il foro: Letteralmente elimina le facce dove dovrebbe essere la porta.
  4. Modella la Stanza: Crea una semplice scatola dietro quel buco. Non esagerare con i dettagli ancora. Crea solo un pavimento, pareti e un soffitto.

Il problema della maglietta “Inside Out”

Ecco qualcosa che mi ha fatto strappare i capelli per una settimana: le normali.

In 3D, un muro ha solo un lato. Se la “Normale” (la faccia anteriore) punta verso l'esterno e tu sei dentro la stanza, il muro sarà invisibile. Devi assicurarti che le linee blu (normali) siano rivolte verso l'interno della stanza.

Se carichi nel gioco e le tue pareti sono invisibili, sono le normali. Sono sempre le normali.

Fase 2: Texturing (Dipingere i muri)

Non puoi lasciarlo grigio. GTA odia i modelli senza texture.

In Blender/Sollumz, applichi gli shader. Di solito userai shader standard di GTA (come gta_default). Mappi una texture—come un muro di mattoni o un pavimento di cemento—sulla tua mesh.

Consiglio da professionista: Mantieni le tue texture “Potenze di due.” $512 per 512$, $1024 per 1024$, ecc. Se provi a usare un'immagine $500 per 500$, il gioco si arrabbierà e crasha. L'ho imparato a mie spese.

Passo 3: La Parte Spaventosa (Portali)

Questa è la parte che manda in tilt tutti.

UN Portale è fondamentalmente una tenda invisibile. Dice al motore di gioco: “Quando il giocatore guarda attraverso questa porta, inizia a renderizzare l'interno della stanza. Quando esce, smetti di renderizzare per risparmiare memoria.”

Senza i portal, ottieni il “vuoto.” Sai, quando guardi attraverso la porta e sembra che stai fissando l'Inferno Blu sotto la mappa? Già.

In Sollumz, creare un portale comporta:

  1. Selezionando i vertici della tua porta.
  2. Creare un “ID Stanza” per l'esterno (Limbo) e un “ID Stanza” per l'interno (Stanza 1).
  3. Collegarli.

Pensalo come a una camera di equilibrio su un'astronave. Devi sigillare la transizione tra “Outside World” e “Inside Room”.

Passo 4: L'esportazione e lo “YTYP”

Una volta che il modello è pronto, lo esporti come .ydr (drawable) e un .ybn (collisione). Ma il gioco non sa ancora che esiste.

Hai bisogno di un .ytyp file. Questo è fondamentalmente un manifesto—un elenco—che dice a GTA: “Ho un nuovo oggetto, ecco il suo nome e le sue proprietà.”

  1. Apri CodeWalker.
  2. Crea un nuovo YTYP.
  3. Aggiungi il tuo nuovo modello tramite la definizione dell'archetipo MLO.
  4. Qui è dove definisci i flag MLO.

Onestamente? La prima volta che lo fai, non funzionerà. Semplicemente non funzionerà. Caricherai, camminerai verso il tuo edificio e cadrai attraverso il pavimento. È un rito di passaggio.

Di solito, significa il tuo Collisione (.ybn) non è allineato con il tuo modello visivo. Oppure, hai dimenticato di selezionare “Embedded Collision” nelle impostazioni di esportazione in Sollumz. Spunta quella casella.

Passo 5: Inserirlo nel Mondo (YMAP)

Ultimo passo. Hai l'oggetto. Ora devi posizionarlo.

In CodeWalker:

  1. Apri il progetto.
  2. Crea un nuovo .ymap.
  3. Posiziona il tuo nuovo oggetto MLO esattamente dove si adatta sulla mappa.
  4. Salva tutto.

Un pensiero finale

Sto facendo sembrare tutto lineare, ma in realtà è molto disordinato. Passerai ore a riparare una texture di luce tremolante o a cercare di capire perché la pioggia cade dentro il tuo soggiorno (questo è un problema di “Occlusione”, ma lasciamolo per un altro giorno).

Inizia in piccolo. Sul serio. Non cercare di costruire una stazione di polizia per il tuo primo progetto. Costruisci una semplice scatola con una porta. Una volta che riesci a entrare in quella scatola senza cadere attraverso il mondo, sei ufficialmente uno sviluppatore MLO.

La sensazione di entrare in una stanza Voi costruito, vedere i tuoi amici fare roleplay in uno spazio che non esisteva ieri? È la sensazione più bella del mondo. Ne vale la pena per il mal di testa.


Cosa dovresti fare ora?

Devi sporcarti le mani.

Vorresti che ti guidassi attraverso le impostazioni di installazione specifiche per il plugin Sollumz in Blender, o dovremmo concentrarci sulla risoluzione di un errore specifico che stai già vedendo?

Consigli per creare MLO

  • Scala: Lavora in metri. Porte ~2.0–2.2m di altezza; banconi ~0.9m; scale salgono ~0.17m.
  • Raccolte: INT_MLO, COLLISIONS, LIGHTS, PROPS_STATIC, PROPS_INSTANCED.
  • Denominazione: int_shop_main_wall_A, coll_floor_A, door_backroom_A. Prefissi coerenti ti faranno risparmiare ore dopo.
  • Pivot/origine: Imposta origini significative (cerniere per le porte), applica le trasformazioni (Ctrl‑A) prima dell'esportazione.

Migliori pratiche di modellazione & topologia

  • Modulare: Costruisci muri/pavimenti/soffitti come moduli da riutilizzare e mantenere.
  • Topologia: Favorisci i quad, mantieni pulito il flusso dei bordi, evita loop superflui.
  • Densità texel: Obiettivo ~512–1024 px/m per le superfici eroe; 256–512 px/m per lo sfondo.
  • Trim sheets & atlanti: Riduci il numero di materiali; raggruppa i prop in atlanti.
  • Nascondi facce nascoste: Elimina geometria invisibile (dietro muri, sotto pavimenti) per ridurre l'overdraw.

Materiali, texture & illuminazione

  • PBR: Usa BaseColor/Roughness/Metallic/Normal. Mantieni pochi materiali (≤ 8 per interni piccoli).
  • Dimensioni texture: Preferisci 1k–2k; evita 4k massicce a meno che non sia assolutamente necessario. Usa BC7 O DXT ove applicabile.
  • Emissivi: Per insegne/LED; mantieni l'intensità ragionevole per evitare problemi di bloom.
  • Illuminazione baked: Le lightmap opzionali possono stabilizzare l'aspetto degli interni durante il ciclo giorno/notte.
  • Riutilizza vanilla: Con OpenIV, fai riferimento a texture/shader esistenti quando la licenza lo consente.

Collisioni (YBN)

  • Utilizzo primitive low‑poly (scatole/cilindri) per approssimare superfici calpestabili e blocchi.
  • Raccolta collisioni separata (COLLISIONS) e mantieni i nomi allineati (ad es., coll_wall_A).
  • Porte/finestre che non devono passare: assicurati che la collisione copra l'apertura o sia attivata/disattivata con la logica delle porte.
  • Insidia comune: collisioni ad alto dettaglio causano problemi di fisica—semplifica.

Stanze, portali, occlusioni e YTYP

  • Stanze: Spazi logici (negozio, retrobottega, corridoio) con portal alle porte.
  • Portali: Cancelli di visibilità; impediscono il rendering di stanze che non puoi vedere.
  • Occluder: Grandi superfici che bloccano il rendering dietro di esse (es. muri solidi).
  • YTYP: Definisce archetipi, distanze LOD, collegamenti stanza/portal.
  • In CodeWalker: assegna stanze, posiziona portali, aggiungi occluder, genera YTYP. Convalida con gli strumenti di visualizzazione di CW (colori delle stanze, linee dei portali).

Esportazione con Sollumz

  • Installa da GitHub, abilita l'add‑on nelle preferenze di Blender.
  • Assegnare Sollumz shaders e flag di esportazione come necessario.
  • Controllo scala e rotazioni vengono applicate (Ctrl‑A) prima dell'esportazione.
  • Target di esportazione:
    • YDR/YDD per modelli drawable / drawable con scheletri.
    • YBN per le collisioni.
    • YTYP per definizioni di archetipo/stanza/portale (spesso finalizzate tramite CodeWalker).

Impacchettamento della risorsa (fxmanifest)

Struttura delle cartelle

[mlo-yourinterior]
├─ fxmanifest.lua
└─ stream/
 ├─ mlo_shop.ydr
 ├─ mlo_shop.ybn
 ├─ mlo_shop.ytyp
 └─ props/
 └─ ...

Minimo fxmanifest.lua

fx_version 'cerulean'
game 'gta5'

name 'mlo-yourinterior'
description 'Custom MLO: YourInterior'
version '1.0.0'

files {
 'stream/*.ytd',
 'stream/*.ydr',
 'stream/*.ydd',
 'stream/*.ybn',
 'stream/*.yft',
 'stream/*.ytyp',
 'stream/props/*'
}

-- Ensure YTYPs are loaded
this_is_a_map 'yes'

Configurazione server
Aggiungi al tuo server.cfg:

ensure mlo-yourinterior

Vedi la documentazione ufficiale per manifest e streaming: https://docs.fivem.net/docs/scripting-reference/resource-manifest/resource-manifest/


Lista di controllo per la validazione in gioco

  • ☐ Teletrasportati nell'interno; verifica altezza di spawn e nessuna caduta attraverso i pavimenti.
  • ☐ Percorri ogni stanza; controlla i passaggi delle porte; nessun muri invisibili.
  • ☐ Guarda attraverso ogni portale; conferma che il culling del rendering funzioni.
  • ☐ Controlla Z‑fighting alle intersezioni parete/battiscopa.
  • ☐ Ciclo ora del giorno; conferma che l'illuminazione/emissivi appaiano naturali.
  • ☐ Stai in ogni stanza; ruota la fotocamera di 360°; guarda Resmon spike.
  • ☐ Test con 3–10 giocatori; guarda la rete e le prestazioni del client.

Budget prestazioni e Resmon

Obiettivi tipici per un MLO di piccole/medie dimensioni:

  • Materiali: ≤ 8–12 materiali unici.
  • Chiamate di disegno: mantieni basso tramite instancing e atlanti.
  • Texture: per lo più 1k–2k; atlante dove possibile.
  • Dimensione dello stream: mira ≤ 30–80 MB per MLO (dipende dal contesto).
  • Portali: aggiungi abbastanza per isolare le stanze ma non eccessivo.

Profilazione

  • Utilizzo Resmon (F8 → resmon 1) per controllare CPU/MS e memoria.
  • Attiva/disattiva interni, nascondi i props per isolare i colli di bottiglia.
  • Se compaiono picchi guardando verso una porta, rivedi portali/occluder.

Per un playbook di ottimizzazione più ampio a livello di server, vedi Ottimizzare le prestazioni su FiveMX → /fivem-ottimizzazione-server/.


Risoluzione dei problemi

SintomoProbabile causaAggiustare
Cadere attraverso il pavimentoMancante/sfalsato YBNAllinea la collisione al mesh di rendering; applica le trasformazioni; riesporta YBN
Vedi altre stanze attraverso i muriMancante/errato portale/occluderDefinire correttamente le stanze in CodeWalker; aggiungere occluder; aggiornare YTYP
Mesh nere/invisibiliProblema percorso shader/textureUsa lo shader Sollumz corretto; verifica i percorsi delle texture; assicurati che YTDs siano presenti
Sfarfallio (Z-fighting)Facce complanariOffset o unisci facce; regola spessore trim
Carro armato FPS rivolto verso l'ingressoSovraccarico dovuto a un divario nel portaleRidimensiona/riallinea il portale; aggiungi occlusori; semplifica i materiali
Le porte bloccano il giocatoreSovrapposizioni di collisioneModifica YBN per liberare il passaggio; separa il collider della porta
Emissione troppo luminosaIntensità/tonemappingValori emissivi più bassi; evitare il bianco puro/spam emissivo

Domande frequenti

Ho bisogno di una collisione (YBN) per ogni mesh?
No. Solo per calpestabile o interagibile superfici. Gli elementi decorativi possono rimanere senza collisione.

Quanti portali dovrebbe avere un interno?
Sufficiente per dividere stanze/corridoi logici e bloccare il rendering tra stanze, tipicamente uno per ogni porta/apertura.

Posso riutilizzare le texture di GTA V?
Spesso sì per l'uso in gioco, ma non ridistribuire risorse oltre i termini consentiti. Controllare i percorsi e le licenze di OpenIV.

Il mio YTYP non si carica.
Controlla l'elenco dei file manifest, i nomi dei file e assicurati this_is_a_map 'yes' è impostato.

Quale versione di Blender funziona meglio con Sollumz?
Le attuali versioni 3.x sono comunemente usate; conferma la compatibilità sul GitHub di Sollumz.


Risorse e ulteriori letture


  • Sfoglia gli MLO/fivem-mlos/ (Esempi, ispirazione e mappe pronte all'uso.)
  • La migliore guida MLOs/free-fivem-mlos/ (Scelte curate, pro/contro, note sulle prestazioni.)
  • Ottimizza il tuo server/fivem-ottimizzazione-server/ (Utilizzo di Resmon, suggerimenti per lo streaming di risorse.)
  • Hai bisogno di aiuto con la mappatura? → Contatta FiveMX (interni personalizzati, revisioni di ottimizzazione).

Asset copia-incolla (starter opzionale)

Inserisci questi elementi nel tuo progetto come base e personalizza.

Principiante fxmanifest.lua (esteso)

fx_version 'cerulean'
game 'gta5'

name 'mlo-yourinterior'
author 'YourName @ FiveMX'
version '1.0.0'

this_is_a_map 'yes'

files {
 'stream/**.ytd',
 'stream/**.ydr',
 'stream/**.ydd',
 'stream/**.ybn',
 'stream/**.yft',
 'stream/**.ytyp'
}

Collezioni consigliate (Blender)

INT_MLO
├─ STRUCTURE
├─ PROPS_STATIC
├─ PROPS_INSTANCED
├─ LIGHTS
└─ COLLISIONS

Crediti: Grazie ai manutentori di Sollumz, CodeWalker e alla documentazione Cfx.re per i loro eccezionali strumenti e documentazione.

Lascia un commento