📚 Docs

Mody Kart: Faza 2

Obnovleno s v252 - Aprel' 2020 Avtor: Marcos Elias

Vvedeniye

Faza 2 sistemy modifikatsii kart Proton Bus pozvolyayet imet' passazhirov, trafik i drugiye veshchi v igre! Eto podnimayet yeyo na drugoy uroven', bukval'no mozhno razdelit' Proton do i posle etoy funktsii. Eto pochti kak novaya igra!

Preduprezhdeniye: Iz-za ogranicheniy po vremeni individual'naya podderzhka v protsesse konvertatsii i redaktirovaniya nevozmozhna. My rekomenduyem poprobovat' samostoyatel'no, posmotret', kak byli sdelany drugiye karty, i izuchit' strukturu faylov. Predpochtiitel'neye publikovat' voprosy i svyazannyye s nimi problemy v gruppakh igry na Facebook, tak chto resheniya pomogayut vsem, i drugiye sozdatelei modov takzhe mogut pomoch' vam.

Yesli vy yeshche ne podpisany, prishoyedinyaytes' k kanalu prodyusera: www.youtube.com/marquinhosxp. Tam publikuyutsya nekotoryye video i urok.

Ofitsial'naya stranitsa PBSU na Facebook: https://www.facebook.com/protonbusoficial I PBSR: https://www.facebook.com/protonbusrod.oficial/

Gruppy na Facebook

Eksklyuzivnaya gruppa dlya sozdateley modov: https://www.facebook.com/groups/pbsmods/ Pozhaluysta, izbegayte prishoyedineniya k ney, yesli vy prosto igrok, chtoby ne zasoryat' yeyo postami ne po teme (kotoryye budut udaleny)!

Gruppy dlya pol'zovateley: V nikh svobodnyye publikatsii skrinshotov, sovetov, video, razlichnykh urokov i t.d., s tochki zreniya igrokov:

Sovet po khoroshemu saytu dlya polucheniya tekstur dlya modov: http://www.textures.com


Primechaniya kasatel'no Fazy 1

Pered nachalom karty v Faze 2 neobkhodimo usvoit' proizvodstvo bazovogo urovnya dlya Fazy 1. Yesli vy yeshche ne znakomy, ne volnuytes', mozhno sledovat' etomu rukovodstvu vmeste s kartoy-primerom. Samoye bol'shoye trebovaniye - imet' bazovyye znaniya Blender, tak kak my budem ispol'zovat' yego dlya eksporta kart.

Staraya dokumentatsiya kasatel'no Fazy 1 nakhoditsya zdes', dlya kart: http://blog.protonbus.com.br/2019/09/experimental-mods-de-mapas-no-pbs.html

I dlya avtobusov: http://blog.protonbus.com.br/2018/09/primeira-fase-do-sistema-de-mods-de.html

Vsegda khorosho imet' poslednyuyu versiyu igry! Staryye bol'she ne podderzhivayutsya, beta postoyanno razvivayetsya, poetomu my vsegda rassmatrivayem poslednyuyu. Vy mozhete nayti posledniye sborki na http://pbsu.busmods.com dlya gorodskogo i http://pbsr.busmods.com dlya mezhdougorodnego.

V osnovnom my ispol'zuyem Blender 2.79 dlya sozdaniya stsenariya, eksportiruyem model' v formate 3ds i sozdayem strukturu papok i faylov dlya sistemy Proton Bus.

VAZHNO: ISPOL'ZUYTE BLENDER 2.79! Eksportyor, neobkhodimyy dlya tekushchego formata igry, ne rabotayet s Blender 2.8, povidimomu, on byl prekrashchen, i nikto na segodnyashniy den' yego ne obnovil. Kto znayet, mozhet v budushchem on snova zarabotayet, lyudi pytayutsya.

Vy mozhete skachat' Blender 2.79 zdes': https://download.blender.org/release/Blender2.79/ Poslednyaya versiya obychno ta, chto imeyet "b" v nazvanii. Platforma ne imeyet znacheniya, eto zavisit ot vashey sistemy (Windows, Linux ili Mac) i arkhitektury (32 ili 64 bit).

Yesli vy uzhe nachali kartu v 2.8, rekomendatsiya - eksportirovat' v kakoy-libo promezhutochnyy format, kotoryy mozhet otkryt' 2.79, a zatem eksportirovat' iz nego dlya igry.

VAZHNO: MODIFITSIRUYTE EKSPORTYOR 3DS DLYA PROTON! Standartnyy eksportyor 3ds v Blender obrezayet imena ob"yektov i tekstur do 12 simvolov. Obychno nam ponadobitsya bol'she, chtoby izbezhat' oshibok v imenakh nekotorykh detaley i/ili tekstur.

Skachat' modifitsirovannyy plagin Blender dlya eksporta (fayl dlya Blender 2.79): http://proton.viamep.com/coisas/export_3ds_protonbus_blender279.zip

UROK PO TOMU, KAK IZMENIT' PLAGIN: https://youtu.be/0EokFmSjGdA

Yesli predpochitayete, vmesto skachivaniya etogo, izmenite fayl export_3ds.py v papke scripts\addons\io_scene_3ds vashego Blender. Ishchite [:12] i zamenite 12 na gorazdo bol'sheye chislo, naprimer 999. Eto limit simvolov. Bez etogo eksport v igru mozhet neudat'.

SOVET: PRI SKACHIVANII BLENDER VY MOZHETE VYBRAT' "PORTABLE" ZIP-VERSII, CHTOBY KHRANIT' NESKOL'KO VERSIY ODNOVREMENNO.


Struktura faylov moda karty

Karta v Proton sostoit iz neskol'kikh txt faylov (chistyy tekst) i neskol'kikh papok. Osnovnaya pervichnaya struktura - eto txt opredeleniya karty i papka, oba nakhodyatsya v papke maps, kotoraya v svoyu ochered' nakhoditsya v papke modov igry.

Primer struktury na PK:

Struktura Papok

Txt opredeleniya karty dolzhen zakanchivat'sya na .map.txt (napr.: Estrada Longa.map.txt). Eto dolzhno byt' unikal'noye imya!

VAZHNO: NIKOGDA NE ISPOL'ZUYTE AKSENTY, SEDILI ILI SPETSIAL'NYYE SIMVOLY V IMENAKH FAYLOV MODOV!

Vnutri etogo txt u nas budet bazovaya struktura:

[map]
baseDir=Estrada Longe 
; Bazovaya papka karty, kotoraya nakhoditsya v maps vmeste s .map.txt

modelsDir=Rota 1 
; Papka modeley, kotoraya nakhoditsya vnutri papki tiles

textures=textures 
; Papka tekstur

mapModVersion=2 
; Ispol'zuyte nomer 2 v Faze 2!

preview=preview.png 
; Izobrazheniye ekrana vybora (16:9, napr.: 640x360)

Vnutri bazovoy papki karty dolzhny sushchestvovat' drugiye papki:

Bazovyye Papki

  • dest: Khranit tablo i nomera.
  • skins: Khranit skiny avtobusov karty (v skins/0/pbc).
  • textures: Khranit tekstury. Izbegayte JPG, ispol'zuyte PNG!
  • tiles: Obyazatel'no dolzhna imet' eto imya. Vnutri neyo nakhoditsya papka modeley (modelsDir).

VAZHNO: MODY KART PROTON BUS ZAGRUZHAYUTSYA POLNOST'YU! ONI NE MOGUT BYT' SLISHKOM TYAZHELYMI. YESLI VY SOBIRAYETES' SDELAT' NESKOL'KO DLINNYKH LINIY, RAZDELITE IKH NA CHASTI.

Vnutri papki, opredelennoy v modelsDir, nakhodyatsya eksportirovannyye fayly .3ds i konfiguratsii:

Papka Tiles

Vnutrennyaya struktura papki modeley:

Assorti Modeley

  • aipeople: Nastroyki peshekhodov.
  • aitrains: Nastroyki poyezdov.
  • aivehicles: Nastroyki trafika.
  • busstops: Nastroyki avtobusnykh ostanovok.
  • entrypoints.txt: Rasshirennyye nastroyki tochek vkhoda.
  • entrypoints_list.txt: Prostoy spisok tochek vkhoda.

VAZHNO: MODY NE ZASHCHISHCHENY! TEKHNICHESKI NI ODNA IGRA NE ZASHCHISHCHENA. YEDINSTVENNYY SPOSOB NE IMET' VASH MOD OTREDAKTIROVANNYM ILI SLITÝM - ETO NE VYPUSKAT' YEGO.


Nastroyka tochek vkhoda

Tochki vkhoda opredelyayut, gde poyavlyayetsya avtobus pri zapuske igry. Oni dolzhny imet' unikal'nyye imena (napr.: 351F-10 TP, Garagem Central).

VAZHNO: NIKOGDA NE ISPOL'ZUYTE AKSENTY ILI SPETSIAL'NYYE SIMVOLY V ETID IMENAKH! TAKZHE NE ISPOL'ZUYTE SLESHI.

entrypoints_list.txt

Prostoy spisok, odno imya na stroku.

Spisok Entrypoints

entrypoints.txt

Opredelyayet pozitsiyu i fizicheskoye vrashcheniye na karte.

Konfiguratsiya Entrypoints

Pomnite: V Blender Y - eto pered/zad, a Z - vysota. V Unity (igra), Y - eto vysota, a Z - pered/zad. Invertiruyte Y i Z pri kopirovanii koordinat!

Chtoby uznat' koordinaty, ispol'zuyte ob"yekt Empty v Blender:

Empty v Blender

Tablo i Naznacheniya

V papke dest sozdavayte papki s TOCHNO takim zhe imenem, kak entrypoints, opredelennyye v txt.

Papka Dest

Vnutri kazhdoy papki naznacheniya nakhodyatsya izobrazheniya:

Izobrazheniya Naznacheniya

VAZHNO: IZBEGAYTE IZOBRAZHENIY BOL'SHE 2048 PIKSELEY DLYA MOBIL'NYKH TELEFONOV!

Predlagayemyye imena faylov dlya tablo:

  • 1.png, 2.png, 3.png (Elektronnyye tablo 1024x128)
  • capelinhaDigital.png, capelinhaPVC.png (256x128)
  • lonaDestino.png, lonaLinha.png (Rulonnyye tablo)
  • placa1.png, placa2.png, placa3.png (Bokovyye i peredniye nomera)

Nastroyka passazhirov

Kazhdaya ostanovka dolzhna imet' unikal'noye imya v 3D (napr.: zzPonto1).

V Blender (3D)

Ostanovka sostoit iz:

  1. Nevidimogo kuba (trigger) pod nazvaniyem imyaostanovki_trigger.
  2. Malen'kikh ob"yektov (ploskostey/kubov) dlya pozitsii passazhirov, nazyvayemykh imyaostanovki.000, imyaostanovki.001 i t.d.

Ostanovka v Blender

SOVET: Ispol'zuyte prostyye ploskosti dlya passazhirov, chtoby sekonomit' poligony.

Pravil'nyy Trigger:

Pravil'nyy Trigger

Primer khorosho raspolozhennogo triggera:

Primer Triggera

Primer plokho raspolozhennogo triggera (nel'zya!):

Oshibochnyy Trigger

Nakladyvayushchiyesya (nel'zya!):

Nakladyvayushchiysya Trigger

Pravil'no na protivopolozhnykh ostanovkakh:

Protivopolozhnyye Ostanovki

Vizualizatsiya v Otladke (Debug):

Rezhim Debug

V fayle .txt (busstops)

Sozdayte txt v papke busstops s tem zhe imenem, chto i ostanovka.

Txt Busstop

[busstop]
name=Ostanovka Ploshchadi
isLeft=0
paxAmount=15

[from_3d]
readFrom3D=1
prefix=zzPonto1
maxPathsToCheck=30
defPaxRotY=90
  • prefix: Dolzhno v tochnosti sovpadat' s imenem, ispol'zuyemym v 3D (pered .000).
  • defPaxRotY: Standartnoye vrashcheniye passazhirov (testiruyte 0, 90, 180, -90).

Nastroyka peshekhodov

Rabotayet analogichno ostanovkam: posledovatel'nost' ob"yektov, opredelyayushchikh put' (path). Primer: xxCalcada1.000, xxCalcada1.001 i t.d.

Put' Peshekhodov Blender Peshekhody

Sozdayte txt v papke aipeople:

Txt Peshekhody

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

[defaults]
isSpawner=1
spawnInterval=5
allowBicycle=0
  • loop=1: Poslednyaya tochka soyedinyayetsya s pervoy (krugovoy).
  • loop=0: Put' zakanchivayetsya v posledney tochke (lineynyy).

Nastroyka transportnykh sredstv trafika

Prosto tak zhe, kak i peshekhody! Papka aivehicles.

Txt Trafik

  • isBusSpawner=1: Chtoby poyavlyalis' avtobusy.
  • spawnInterval: Uvelich'te dlya umen'sheniya trafika.
  • speedMultiplier: Izmenite skorost' (napr.: 0.5 polovina, 2 dvoynaya).

Nastroyka skinov avtobusov karty

Pomestite skiny (PNG) v skins/0/pbc. Igra vybidayet sluchaynym obrazom. Baza skina PBC: http://omsi.viamep.com/proton/base-skins-pbc-protonbussimulator.zip


Nastroyka poyezdov

Ta zhe logika, papka aitrains. Rekomendatsiya: isSpawner=0 v defaults, i opredelite ruchnyye spawnery s intervalom.

Txt Poyezda

  • randomTimeToWaitAtStart=1: Nachinayet v sluchaynoye vremya.
  • spawnTimeInterval: Interval mezhdu poyezdami (napr.: 120 sekund).

VAZHNO: POYEZDA NE OSTANAVLIVAYUTSYA! ONI DAVYAT VSYO. NE DELAYTE ZHELEZNODOROZHNYYE PERE YEZDY.


Spetsial'nyye komandy i imena v 3D modelyakh

  • Prozrachnost': Ispol'zuyte _transparent_ v imeni ob"yekta (napr.: grade_transparent_).
  • Kollaydery: Ispol'zuyte _gencol_ dlya sozdaniya avtomaticheskogo kollaydera (ulitsy, trotuary). Ispol'zuyte umerenno!
  • Nevidimyy Kollayder: Ispol'zuyte _gencol_invisible_ (napr.: barreira_gencol_invisible_).
  • Emissive: Ispol'zuyte _emissive_ dlya vsegda vklyuchennykh ob"yektov.
  • Zona Nizkoy Skorosti: Ob"yekt _low_speed_zone_ dlya terminalov (izbegayet zhalob).

Low Speed Zone

  • Pritutil'nyy Vykhod: Ob"yekt _force_exit_ ryadom s konechnoy ostanovkoy.

Force Exit

  • Dopolnitel'nyye Detali: Zakanchivayte 3DS fayl na _det1.3ds (napr.: arvores_det1.3ds). Zagruzhayetsya tol'ko yesli pol'zovatel' aktiviruyet "Dopolnitel'nyye Detali".

Nastroyka mertsayushchikh tekstur

Chtoby izbezhat' mertsaniya tekstur (z-fighting/flickering) na polu, sozdavayte fayl .config.txt ryadom s teksturoy. Napr.: asfalto.png.config.txt.

Config Txt


Dopolnitel'no - Sovety po optimizatsii

  • Malen'kiye Tekstury: Ispol'zuyte 256x256 ili 512x512 dlya povtoryayushchikhsya tekstur.
  • MAX 2048px: NIKOGDA ne ispol'zuyte tekstury bol'she 2048px dlya mobil'nykh telefonov!

Preduprezhdeniye Tekstura

  • Kollaydery: Izbegayte slozhnykh kollayderov. Ispol'zuyte _gencol_ tol'ko na polu i glavnykh stenakh.
  • Materialy: Izbegayte mnozhestva materialov na odnom objekte.
  • Kombiniruyte Ob"yekty: Kombiniruyte blizlezhashchiye derev'ya s odnim i tem zhe materialom, chtoby umen'shit' draw calls.

Eto vsyo na dannyy moment! Khoroshego razvlecheniya!