📚 Docs

Moduri de Hărți: Faza 2

Actualizat cu v252 - Aprilie 2020 De Marcos Elias

Introducere

Faza 2 a sistemului de moduri de hărți Proton Bus permite să ai pasageri, trafic și alte lucruri în joc! Acest lucru îl ridică la un alt nivel, la propriu se poate separa Proton înainte și după această caracteristică. Este aproape ca un joc nou!

Avertisment: Din cauza lipsei de timp, nu este posibil să oferim suport individual în procesul de conversie și editare. Vă recomandăm să încercați singuri, văzând cum au fost făcute celelalte hărți și explorând structurile fișierelor. Preferați să postați întrebări și probleme conexe în grupurile jocului de pe Facebook, astfel soluțiile ajută pe toată lumea, și alți producători de moduri vă pot ajuta.

Dacă nu ești încă abonat, alătură-te canalului producătorului: www.youtube.com/marquinhosxp. Acolo sunt postate câteva videoclipuri și tutoriale.

Pagina oficială PBSU pe Facebook: https://www.facebook.com/protonbusoficial Și PBSR: https://www.facebook.com/protonbusrod.oficial/

Grupuri pe Facebook

Grup exclusiv pentru creatorii de moduri: https://www.facebook.com/groups/pbsmods/ Vă rugăm să evitați să intrați în acesta dacă sunteți doar jucător, pentru a nu aglomera cu postări în afara subiectului (care vor fi șterse)!

Grupuri pentru utilizatori: În acestea da, postări libere cu capturi de ecran, sfaturi, videoclipuri, diverse tutoriale, etc., din punctul de vedere al jucătorilor:

Sfat pentru un site bun de unde să obțineți texturi pentru moduri: http://www.textures.com


Observații referitoare la Faza 1

Înainte de a începe o hartă în Faza 2, este necesar să fi stăpânit producția de nivel de bază pentru Faza 1. Dacă nu sunteți încă familiarizat, nu vă faceți griji, este posibil să urmați acest ghid însoțind harta de exemplu. Cea mai mare cerință este să aveți cunoștințe de bază de Blender, deoarece îl vom folosi pentru a exporta hărțile.

Găsiți documentația veche referitoare la Faza 1 aici, pentru hărți: http://blog.protonbus.com.br/2019/09/experimental-mods-de-mapas-no-pbs.html

Și pentru autobuze: http://blog.protonbus.com.br/2018/09/primeira-fase-do-sistema-de-mods-de.html

Este întotdeauna bine să fiți cu cea mai recentă versiune a jocului! Cele vechi nu mai sunt acceptate, beta este în continuă evoluție, deci luăm întotdeauna în considerare cea mai recentă. Puteți găsi cele mai recente compilări la http://pbsu.busmods.com pentru urban și http://pbsr.busmods.com pentru rutier.

Practic folosim Blender 2.79 pentru a produce scenariul, exportăm modelul în format 3ds și creăm structura de foldere și fișiere pentru sistemul Proton Bus.

IMPORTANT: FOLOSIȚI BLENDER 2.79! Exportatorul necesar pentru formatul actual al jocului nu funcționează cu Blender 2.8, se pare că a fost întrerupt și nimeni nu l-a actualizat până în prezent. Cine știe, poate în viitor va funcționa din nou, sunt oameni care încearcă.

Puteți descărca Blender 2.79 aici: https://download.blender.org/release/Blender2.79/ Cea mai recentă versiune este de obicei cea care are un „b” în nume. Platforma este indiferentă, va depinde de sistemul dvs. (Windows, Linux sau Mac) și arhitectură (32 sau 64 de biți).

Dacă ați început deja harta în 2.8, recomandarea ar fi să exportați într-un format intermediar pe care 2.79 îl poate deschide și apoi să exportați din el pentru joc.

IMPORTANT: MODIFICAȚI EXPORTATORUL 3DS PENTRU PROTON! Exportatorul implicit 3ds din Blender trunchiază numele obiectelor și texturilor la 12 caractere. În mod normal, vom avea nevoie de mai mult decât atât pentru a evita erorile în numele unor piese și/sau texturi.

Descărcarea plugin-ului Blender modificat pentru export (fișier pentru Blender 2.79): http://proton.viamep.com/coisas/export_3ds_protonbus_blender279.zip

TUTORIAL DESPRE CUM SĂ SCHIMBAȚI PLUGIN-UL: https://youtu.be/0EokFmSjGdA

Dacă preferați, în loc să descărcați pe acesta, modificați fișierul export_3ds.py din folderul scripts\addons\io_scene_3ds al Blender-ului dumneavoastră. Căutați [:12] și schimbați 12 cu un număr mult mai mare, cum ar fi 999. Aceasta este limita de caractere. Fără aceasta, exportul către joc poate eșua.

SFAT: LA DESCĂRCAREA BLENDER PUTEȚI OPTA PENTRU VERSIUNILE „PORTABLE” ÎN ZIP, PENTRU A PĂSTRA MAI MULTE VERSIUNI ÎN ACELAȘI TIMP.


Structura fișierelor modului de hartă

Harta în Proton este compusă din mai multe fișiere txt (text pur) și câteva foldere. Structura primară esențială este un txt de definire a hărții și un folder, ambele aflându-se în folderul maps, care la rândul său se află în folderul de moduri al jocului.

Exemplu de structură pe PC:

Structură Foldere

Txt-ul de definire a hărții trebuie să se termine în .map.txt (ex: Estrada Longa.map.txt). Trebuie să fie un nume unic!

IMPORTANT: NU FOLOSIȚI NICIODATĂ ACCENTE, SEDILE SAU CARACTERE SPECIALE ÎN NUMELE FIȘIERELOR MODURILOR!

În interiorul acestui txt vom avea structura de bază:

[map]
baseDir=Estrada Longe 
; Folderul de bază al hărții, care se află în maps împreună cu .map.txt

modelsDir=Rota 1 
; Folderul modelelor, care se află în folderul tiles

textures=textures 
; Folderul texturilor

mapModVersion=2 
; Folosiți numărul 2 în Faza 2!

preview=preview.png 
; Imaginea ecranului de selecție (16:9, ex: 640x360)

În interiorul folderului de bază al hărții trebuie să existe alte foldere:

Foldere Bază

  • dest: Stochează firmele și plăcuțele.
  • skins: Stochează skin-urile autobuzelor hărții (în skins/0/pbc).
  • textures: Stochează texturile. Evitați JPG, folosiți PNG!
  • tiles: Trebuie să aibă obligatoriu acest nume. În interiorul său se află folderul modelelor (modelsDir).

IMPORTANT: MODURILE DE HĂRȚI PROTON BUS SUNT ÎNCĂRCATE ÎN ÎNTREGIME! NU POT FI PREA GRELE. DACĂ AVEȚI DE GÂND SĂ FACEȚI MAI MULTE LINII LUNGI, ÎMPĂRȚIȚI-LE ÎN PĂRȚI.

În interiorul folderului definit în modelsDir, se află fișierele exportate .3ds și configurațiile:

Folder Tiles

Structura internă a folderului modelelor:

Subfoldere Modele

  • aipeople: Setări pietoni.
  • aitrains: Setări trenuri.
  • aivehicles: Setări trafic.
  • busstops: Setări stații de autobuz.
  • entrypoints.txt: Setări avansate puncte de intrare.
  • entrypoints_list.txt: Listă simplă a punctelor de intrare.

IMPORTANT: MODURILE NU SUNT PROTEJATE! TEHNIC VORBIND NICIUN JOC NU ESTE. SINGURA MODALITATE CA MODUL SĂ NU FIE EDITAT SAU SĂ AJUNGĂ PE INTERNET ESTE SĂ NU ÎL LANSAȚI.


Configurarea punctelor de intrare

Punctele de intrare definesc unde apare autobuzul la începerea jocului. Trebuie să aibă nume unice (ex: 351F-10 TP, Garagem Central).

IMPORTANT: NU FOLOSIȚI NICIODATĂ ACCENTE SAU CARACTERE SPECIALE ÎN ACESTE NUME! NU FOLOSIȚI NICI BARE (SLASH-URI).

entrypoints_list.txt

Listă simplă, un nume pe linie.

Listă Entrypoints

entrypoints.txt

Definește poziția și rotația fizică pe hartă.

Configurare Entrypoints

Amintiți-vă: În Blender Y este față/spate și Z este înălțime. În Unity (joc), Y este înălțime și Z este față/spate. Inversați Y și Z când copiați coordonatele!

Pentru a afla coordonatele, folosiți un obiect Empty în Blender:

Empty în Blender

Firme și Destinații

În folderul dest, creați foldere cu EXACT același nume ca entrypoint-urile definite în txt.

Folder Dest

În interiorul fiecărui folder de destinație se află imaginile:

Imagini Destinație

IMPORTANT: EVITAȚI IMAGINILE MAI MARI DE 2048 PIXELI PENTRU TELEFOANE MOBILE!

Nume de fișiere sugerate pentru firme:

  • 1.png, 2.png, 3.png (Firme electronice 1024x128)
  • capelinhaDigital.png, capelinhaPVC.png (256x128)
  • lonaDestino.png, lonaLinha.png (Firme rollband)
  • placa1.png, placa2.png, placa3.png (Plăcuțe laterale și frontale)

Configurarea pasagerilor

Fiecare stație trebuie să aibă un nume unic în 3D (ex: zzPonto1).

În Blender (3D)

Stația constă în:

  1. Un cub invizibil (trigger) numit numelepolului_trigger.
  2. Obiecte mici (planuri/cuburi) pentru poziția pasagerilor, numite numelepolului.000, numelepolului.001, etc.

Stație în Blender

SFAT: Folosiți planuri simple pentru pasageri pentru a economisi poligoane.

Trigger corect:

Trigger Corect

Exemplu de trigger bine poziționat:

Trigger Exemplu

Exemplu de trigger prost poziționat (nu se poate!):

Trigger Greșit

Suprapuse (nu se poate!):

Trigger Suprapus

Corect în stații opuse:

Stații Opuse

Vizualizare în Debug:

Mod Debug

În fișierul .txt (busstops)

Creați un txt în folderul busstops cu același nume ca stația.

Txt Busstop

[busstop]
name=Stația Pieței
isLeft=0
paxAmount=15

[from_3d]
readFrom3D=1
prefix=zzPonto1
maxPathsToCheck=30
defPaxRotY=90
  • prefix: Trebuie să se potrivească exact cu numele folosit în 3D (înainte de .000).
  • defPaxRotY: Rotația implicită a pasagerilor (testați 0, 90, 180, -90).

Configurarea pietonilor

Funcționează similar cu stațiile: o secvență de obiecte care definesc o cale (path). Exemplu: xxCalcada1.000, xxCalcada1.001, etc.

Cale Pietoni Blender Pietoni

Creați un txt în folderul aipeople:

Txt Pietoni

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

[defaults]
isSpawner=1
spawnInterval=5
allowBicycle=0
  • loop=1: Ultimul punct se conectează la primul (circular).
  • loop=0: Calea se termină la ultimul punct (liniar).

Configurarea vehiculelor din trafic

Pur și simplu la fel ca pietonii! Folderul aivehicles.

Txt Trafic

  • isBusSpawner=1: Pentru a face să apară autobuze.
  • spawnInterval: Măriți pentru a reduce traficul.
  • speedMultiplier: Modificați viteza (ex: 0.5 jumătate, 2 dublu).

Configurarea skin-urilor autobuzelor hărții

Puneți skin-urile (PNG) în skins/0/pbc. Jocul alege aleatoriu. Bază de skin PBC: http://omsi.viamep.com/proton/base-skins-pbc-protonbussimulator.zip


Configurarea trenurilor

Aceeași logică, folder aitrains. Recomandare: isSpawner=0 în defaults, și definiți spawner-e manuale distanțate.

Txt Trenuri

  • randomTimeToWaitAtStart=1: Începe la timp aleatoriu.
  • spawnTimeInterval: Interval între trenuri (ex: 120 secunde).

IMPORTANT: TRENURILE NU OPRESC! ELE CALCĂ TOT. NU FACEȚI TRECERI LA NIVEL.


Comenzi și nume speciale în modelele 3D

  • Transparență: Folosiți _transparent_ în numele obiectului (ex: grade_transparent_).
  • Colidere: Folosiți _gencol_ pentru a genera colider automat (străzi, trotuare). Folosiți cu moderație!
  • Colider Invizibil: Folosiți _gencol_invisible_ (ex: barreira_gencol_invisible_).
  • Emissive: Folosiți _emissive_ pentru obiecte mereu aprinse.
  • Zonă de Viteză Redusă: Obiect _low_speed_zone_ pentru terminale (evită reclamațiile).

Low Speed Zone

  • Forțare Ieșire: Obiect _force_exit_ lângă stația finală.

Force Exit

  • Detalii Extra: Terminați fișierul 3DS cu _det1.3ds (ex: arvores_det1.3ds). Se încarcă doar dacă utilizatorul activează "Detalii Extra".

Configurarea texturilor sclipitoare

Pentru a evita texturile care clipesc (z-fighting/flickering) pe podea, creați un fișier .config.txt lângă textură. Ex: asfalt.png.config.txt.

Config Txt


Extras - Sfaturi de optimizare

  • Texturi Mici: Folosiți 256x256 sau 512x512 pentru texturi repetitive.
  • MAX 2048px: Nu folosiți NICIODATĂ texturi mai mari de 2048px pentru mobil!

Avertisment Textură

  • Colidere: Evitați colidere complexe. Folosiți _gencol_ doar pe podea și pe pereții principali.
  • Materiale: Evitați multe materiale pe același obiect.
  • Combinați Obiecte: Combinați copacii apropiați cu același material pentru a reduce draw calls.

Asta e tot pentru acum! Distracție plăcută!