📚 Docs

Mod Mappe: Fase 2

Aggiornato con la v252 - Aprile 2020 Di Marcos Elias

Introduzione

La Fase 2 del sistema di mod mappe di Proton Bus permette di avere passeggeri, traffico e altro nel gioco! Questo lo porta a un altro livello, letteralmente si può separare Proton prima e dopo questa funzionalità. È quasi come un nuovo gioco!

Avviso: Per motivi di tempo, non è possibile fornire supporto individuale nel processo di conversione e modifica. Consigliamo di provare da soli, vedendo come sono state fatte le altre mappe ed esplorando le strutture dei file. Preferite postare dubbi e problemi correlati nei gruppi del gioco su Facebook, così le soluzioni servono a tutti, e anche altri produttori di mod possono aiutarvi.

Se non sei ancora iscritto, unisciti al canale del produttore: www.youtube.com/marquinhosxp. Alcuni video e tutorial vengono pubblicati lì.

Pagina ufficiale PBSU su Facebook: https://www.facebook.com/protonbusoficial E di PBSR: https://www.facebook.com/protonbusrod.oficial/

Gruppi su Facebook

Gruppo esclusivo per creatori di mod: https://www.facebook.com/groups/pbsmods/ Per favore, evita di entrare in questo se sei solo un giocatore, per non intasare con post fuori tema (che verranno eliminati)!

Gruppi per utenti: In questi sì, post liberi di screenshot, consigli, video, tutorial vari, ecc., dal punto di vista dei giocatori:

Consiglio su un buon sito da cui ottenere texture per le mod: http://www.textures.com


Note riguardanti la Fase 1

Prima di iniziare una mappa nella Fase 2, è necessario aver padroneggiato la produzione del livello base per la Fase 1. Se non hai ancora familiarità, non preoccuparti, è possibile seguire questa guida accompagnando la mappa di esempio. Il requisito più grande è avere conoscenze base di Blender, poiché lo useremo per esportare le mappe.

La vecchia documentazione riguardante la Fase 1 è qui, per le mappe: http://blog.protonbus.com.br/2019/09/experimental-mods-de-mapas-no-pbs.html

E per gli autobus: http://blog.protonbus.com.br/2018/09/primeira-fase-do-sistema-de-mods-de.html

È sempre bene avere la versione più recente del gioco! Le vecchie non sono più supportate, la beta è in costante evoluzione, quindi consideriamo sempre la più recente. Puoi trovare le build più recenti su http://pbsu.busmods.com per l'urbano e http://pbsr.busmods.com per lo stradale.

Fondamentalmente usiamo Blender 2.79 per produrre lo scenario, esportiamo il modello in formato 3ds e creiamo la struttura di cartelle e file per il sistema di Proton Bus.

IMPORTANTE: USA BLENDER 2.79! L'esportatore necessario per il formato attuale del gioco non funziona con Blender 2.8, apparentemente è stato interrotto e nessuno ad oggi lo ha aggiornato. Chissà se in futuro tornerà a funzionare, c'è gente che ci sta provando.

Puoi scaricare Blender 2.79 qui: https://download.blender.org/release/Blender2.79/ La versione più recente di solito è quella che ha una "b" nel nome. La piattaforma è indifferente, dipenderà dal tuo sistema (Windows, Linux o Mac) e architettura (32 o 64 bit).

Se hai già iniziato la mappa nella 2.8, la raccomandazione sarebbe di esportare in qualche formato intermedio che la 2.79 possa aprire e quindi esportare da lì per il gioco.

IMPORTANTE: MODIFICA L'ESPORTATORE DI 3DS PER PROTON! L'esportatore predefinito di 3ds di Blender tronca i nomi degli oggetti e delle texture a 12 caratteri. Normalmente avremo bisogno di più di questo per evitare errori nei nomi di alcune parti e/o nelle texture.

Download del plugin di Blender modificato per esportare (file per Blender 2.79): http://proton.viamep.com/coisas/export_3ds_protonbus_blender279.zip

TUTORIAL SU COME CAMBIARE IL PLUGIN: https://youtu.be/0EokFmSjGdA

Se preferisci, invece di scaricare questo, modifica il file export_3ds.py della cartella scripts\addons\io_scene_3ds del tuo Blender. Cerca [:12] e cambia il 12 in un numero molto più grande, come 999. È il limite di caratteri. Senza questo l'esportazione per il gioco potrebbe fallire.

CONSIGLIO: SCARICANDO BLENDER PUOI OPTARE PER LE VERSIONI "PORTABLE" IN ZIP, PER MANTENERE VARIE VERSIONI ALLO STESSO TEMPO.


La struttura dei file della mod mappa

La mappa in Proton è composta da vari file txt (di puro testo), e alcune cartelle. La struttura primaria essenziale è un txt di definizione della mappa e una cartella, entrambi si trovano dentro la cartella maps, che a sua volta si trova nella cartella delle mod del gioco.

Esempio di struttura su PC:

Struttura Cartelle

Il txt di definizione della mappa deve finire in .map.txt (es: Estrada Longa.map.txt). Deve essere un nome unico!

IMPORTANTE: NON USARE MAI ACCENTI, CEDIGLIE O CARATTERI SPECIALI NEI NOMI DEI FILE DELLE MOD!

Dentro questo txt avremo la struttura base:

[map]
baseDir=Estrada Longe 
; La cartella base della mappa, che si trova in maps insieme al .map.txt

modelsDir=Rota 1 
; La cartella dei modelli, che si trova dentro la cartella tiles

textures=textures 
; La cartella delle texture

mapModVersion=2 
; Usa il numero 2 nella Fase 2!

preview=preview.png 
; Immagine della schermata di selezione (16:9, es: 640x360)

Dentro la cartella base della mappa devono esistere altre cartelle:

Cartelle Base

  • dest: Memorizza insegne e targhe.
  • skins: Memorizza le livree degli autobus della mappa (dentro skins/0/pbc).
  • textures: Memorizza le texture. Evita JPG, usa PNG!
  • tiles: Deve avere questo nome obbligatoriamente. Dentro di essa si trova la cartella dei modelli (modelsDir).

IMPORTANTE: LE MOD MAPPE DI PROTON BUS VENGONO CARICATE INTERAMENTE! NON POSSONO ESSERE TROPPO PESANTI. SE HAI INTENZIONE DI FARE VARIE LINEE LUNGHE, DIVIDILE IN PARTI.

Dentro la cartella definita in modelsDir, si trovano i file esportati .3ds e le configurazioni:

Cartella Tiles

Struttura interna della cartella dei modelli:

Sottocartelle Modelli

  • aipeople: Configurazioni dei pedoni.
  • aitrains: Configurazioni dei treni.
  • aivehicles: Configurazioni del traffico.
  • busstops: Configurazioni delle fermate dell'autobus.
  • entrypoints.txt: Configurazioni avanzate dei punti di ingresso.
  • entrypoints_list.txt: Lista semplice dei punti di ingresso.

IMPORTANTE: LE MOD NON SONO PROTETTE! TECNICAMENTE NESSUN GIOCO LO È. L'UNICO MODO PER NON AVERE LA TUA MOD MODIFICATA O TRAPELATA È NON RILASCIARLA.


Configurare i punti di ingresso

I punti di ingresso definiscono dove appare l'autobus all'avvio del gioco. Devono avere nomi unici (es: 351F-10 TP, Garagem Central).

IMPORTANTE: NON USARE MAI ACCENTI O CARATTERI SPECIALI IN QUESTI NOMI! NON USARE NEMMENO BARRE.

entrypoints_list.txt

Lista semplice, un nome per riga.

Lista Entrypoints

entrypoints.txt

Definisce la posizione e rotazione fisica sulla mappa.

Configurazione Entrypoints

Ricorda: In Blender Y è fronte/retro e Z è altezza. In Unity (gioco), Y è altezza e Z è fronte/retro. Inverti Y e Z quando copi le coordinate!

Per scoprire le coordinate, usa un oggetto Empty in Blender:

Empty in Blender

Insegne e Destinazioni

Nella cartella dest, crea cartelle con ESATTAMENTE lo stesso nome degli entrypoints definiti nel txt.

Cartella Dest

Dentro ogni cartella di destinazione si trovano le immagini:

Immagini Destinazione

IMPORTANTE: EVITA IMMAGINI PIÙ GRANDI DI 2048 PIXEL PER I CELLULARI!

Nomi di file suggeriti per le insegne:

  • 1.png, 2.png, 3.png (Insegne elettroniche 1024x128)
  • capelinhaDigital.png, capelinhaPVC.png (256x128)
  • lonaDestino.png, lonaLinha.png (Insegne a rullo)
  • placa1.png, placa2.png, placa3.png (Targhe laterali e frontali)

Configurare i passeggeri

Ogni fermata deve avere un nome unico nel 3D (es: zzPonto1).

In Blender (3D)

La fermata consiste in:

  1. Un cubo invisibile (trigger) chiamato nomefermata_trigger.
  2. Oggetti piccoli (piani/cubi) per la posizione dei passeggeri, chiamati nomefermata.000, nomefermata.001, ecc.

Fermata in Blender

CONSIGLIO: Usa piani semplici per i passeggeri per risparmiare poligoni.

Trigger corretto:

Trigger Corretto

Esempio di trigger ben posizionato:

Esempio Trigger

Esempio di trigger mal posizionato (non si può!):

Trigger Sbagliato

Sovrapposti (non si può!):

Trigger Sovrapposto

Corretto in fermate opposte:

Fermate Opposte

Visualizzazione nel Debug:

Modalità Debug

Nel file .txt (busstops)

Crea un txt nella cartella busstops con lo stesso nome della fermata.

Txt Busstop

[busstop]
name=Fermata della Piazza
isLeft=0
paxAmount=15

[from_3d]
readFrom3D=1
prefix=zzPonto1
maxPathsToCheck=30
defPaxRotY=90
  • prefix: Deve corrispondere esattamente al nome usato nel 3D (prima del .000).
  • defPaxRotY: Rotazione predefinita dei passeggeri (testa 0, 90, 180, -90).

Configurare i pedoni

Funziona in modo simile alle fermate: una sequenza di oggetti che definiscono un percorso (path). Esempio: xxCalcada1.000, xxCalcada1.001, ecc.

Percorso Pedoni Blender Pedoni

Crea un txt nella cartella aipeople:

Txt Pedoni

[automatic_setup]
enabled=1
loop=0
reverse=0

[defaults]
isSpawner=1
spawnInterval=5
allowBicycle=0
  • loop=1: L'ultimo punto si collega al primo (circolare).
  • loop=0: Il percorso termina nell'ultimo punto (lineare).

Configurare i veicoli del traffico

Semplicemente uguale ai pedoni! Cartella aivehicles.

Txt Traffico

  • isBusSpawner=1: Per far apparire autobus.
  • spawnInterval: Aumenta per ridurre il traffico.
  • speedMultiplier: Cambia la velocità (es: 0.5 metà, 2 doppio).

Configurare le livree degli autobus della mappa

Metti le skin (PNG) in skins/0/pbc. Il gioco sceglie casualmente. Base skin del PBC: http://omsi.viamep.com/proton/base-skins-pbc-protonbussimulator.zip


Configurare i treni

Stessa logica, cartella aitrains. Raccomandazione: isSpawner=0 in defaults, e definisci spawner manuali distanziati.

Txt Treni

  • randomTimeToWaitAtStart=1: Inizia in tempo casuale.
  • spawnTimeInterval: Intervallo tra i treni (es: 120 secondi).

IMPORTANTE: I TRENI NON SI FERMANO! INVESTONO TUTTO. NON FARE PASSAGGI A LIVELLO.


Comandi e nomi speciali nei modelli 3D

  • Trasparenza: Usa _transparent_ nel nome dell'oggetto (es: grade_transparent_).
  • Collider: Usa _gencol_ per generare collider automatico (strade, marciapiedi). Usa con moderazione!
  • Collider Invisibile: Usa _gencol_invisible_ (es: barreira_gencol_invisible_).
  • Emissive: Usa _emissive_ per oggetti sempre accesi.
  • Zona a Bassa Velocità: Oggetto _low_speed_zone_ per terminal (evita reclami).

Low Speed Zone

  • Forza Uscita: Oggetto _force_exit_ vicino alla fermata finale.

Force Exit

  • Dettagli Extra: Termina il file 3DS con _det1.3ds (es: arvores_det1.3ds). Carica solo se l'utente attiva "Dettagli Extra".

Configurazione delle texture luccicanti

Per evitare texture lampeggianti (z-fighting/flickering) sul pavimento, crea un file .config.txt accanto alla texture. Es: asfalto.png.config.txt.

Config Txt


Extra - Consigli di ottimizzazione

  • Texture Piccole: Usa 256x256 o 512x512 per texture ripetitive.
  • MAX 2048px: MAI usare texture più grandi di 2048px per cellulari!

Avviso Texture

  • Collider: Evita collider complessi. Usa _gencol_ solo sul pavimento e pareti principali.
  • Materiali: Evita molti materiali sullo stesso oggetto.
  • Combina Oggetti: Combina alberi vicini con lo stesso materiale per ridurre draw calls.

Questo è tutto per ora! Buon divertimento!