📚 Docs

Xəritə Modları: Mərhələ 2

v252 ilə yenilənib - Aprel 2020 Marcos Elias tərəfindən

Giriş

Proton Bus xəritə modlama sisteminin 2-ci Mərhələsi oyunda sərnişinlərə, nəqliyyat axınına və daha çox şeyə sahib olmağa imkan verir! Bu, oyunu başqa bir səviyyəyə qaldırır, demək olar ki, Proton-u bu xüsusiyyətdən əvvəl və sonra ayırmaq olar. Bu, demək olar ki, yeni bir oyundur!

Xəbərdarlıq: Vaxt məhdudiyyətləri səbəbindən konversiya və redaktə prosesində fərdi dəstək göstərmək mümkün deyil. Sizə özünüzsınamağı, digər xəritələrin necə hazırlandığını görməyi və fayl strukturlarını araşdırmağı tövsiyə edirik. Sualları və əlaqəli problemləri Facebook oyun qruplarında yerləşdirməyə üstünlük verin, beləliklə həllər hər kəsə kömək edir və digər mod istehsalçıları da sizə kömək edə bilər.

Hələ abunə deyilsinizsə, istehsalçının kanalına qoşulun: www.youtube.com/marquinhosxp. Bəzi videolar və dərsliklər orada yerləşdirilir.

Rəsmi PBSU Facebook Səhifəsi: https://www.facebook.com/protonbusoficial Və PBSR: https://www.facebook.com/protonbusrod.oficial/

Facebook Qrupları

Mod yaradıcıları üçün eksklüziv qrup: https://www.facebook.com/groups/pbsmods/ Sadəcə bir oyunçusunuzsa, mövzudan kənar yazılarla (silinəcək) yükləməmək üçün buna qoşulmaqdan çəkinin!

İstifadəçilər üçün qruplar: Bunlarda, oyunçuların baxış bucağından ekran görüntüləri, məsləhətlər, videolar, müxtəlif dərsliklər və s. sərbəst paylaşımlar:

Modlar üçün teksturalar əldə etmək üçün yaxşı bir sayt ipucu: http://www.textures.com


Mərhələ 1 ilə bağlı qeydlər

Mərhələ 2-də bir xəritəyə başlamazdan əvvəl, Mərhələ 1 üçün əsas səviyyə istehsalına yiyələnməlisiniz. Hələ tanış deyilsinizsə, narahat olmayın, bu təlimatı nümunə xəritə ilə birlikdə izləyə bilərsiniz. Ən böyük tələb, xəritələri ixrac etmək üçün istifadə edəcəyimiz üçün əsas Blender biliyinə sahib olmaqdır.

Mərhələ 1 ilə bağlı köhnə sənədlər burada, xəritələr üçün: http://blog.protonbus.com.br/2019/09/experimental-mods-de-mapas-no-pbs.html

Və avtobuslar üçün: http://blog.protonbus.com.br/2018/09/primeira-fase-do-sistema-de-mods-de.html

Oyunun ən son versiyasında olmaq həmişə yaxşıdır! Köhnələr artıq dəstəklənmir, beta daim inkişaf edir, buna görə də həmişə ən sonuncunu nəzərə alırıq. Şəhər üçün http://pbsu.busmods.com və yol üçün http://pbsr.busmods.com ünvanlarında ən son quruluşları tapa bilərsiniz.

Əsasən mənzərəni istehsal etmək, modeli 3ds formatında ixrac etmək və Proton Bus sistemi üçün qovluq və fayl strukturunu yaratmaq üçün Blender 2.79 istifadə edirik.

VACİB: BLENDER 2.79 İSTİFADƏ EDİN! İndiki oyun formatı üçün tələb olunan ixracatçı Blender 2.8 ilə işləmir, görünür dayandırılıb və bu günə qədər heç kim onu yeniləməyib. Kim bilir, bəlkə gələcəkdə yenidən işləyəcək, cəhd edən insanlar var.

Blender 2.79-u buradan yükləyə bilərsiniz: https://download.blender.org/release/Blender2.79/ Ən son versiya adətən adında "b" olan versiyadır. Platforma fərq etmir, sisteminizdən (Windows, Linux və ya Mac) və arxitekturadan (32 və ya 64 bit) asılı olacaq.

Xəritəyə 2.8-də başlamısınızsa, tövsiyə 2.79-un aça biləcəyi hər hansı bir aralıq formata ixrac etmək və sonra oradan oyun üçün ixrac etmək olardı.

VACİB: PROTON ÜÇÜN 3DS İXRACATÇISINI DƏYİŞDİRİN! Blender-dəki standart 3ds ixracatçısı obyekt və tekstura adlarını 12 simvolda kəsir. Bəzi hissələrin və/və ya teksturaların adlarında səhvlərin qarşısını almaq üçün adətən bundan daha çoxuna ehtiyacımız olacaq.

İxrac etmək üçün dəyişdirilmiş Blender plaqini yükləmək (Blender 2.79 üçün fayl): http://proton.viamep.com/coisas/export_3ds_protonbus_blender279.zip

PLAQİNİ NECƏ DƏYİŞDİRMƏK HAQQINDA TƏLİMAT: https://youtu.be/0EokFmSjGdA

Bunu yükləmək əvəzinə istəsəniz, Blender-inizin scripts\addons\io_scene_3ds qovluğundakı export_3ds.py faylını dəyişdirin. [:12] axtarın və 12-ni 999 kimi daha böyük bir rəqəmlə dəyişdirin. Bu simvol limitidir. Bu olmadan oyuna ixrac uğursuz ola bilər.

İPUCU: BLENDER-İ YÜKLƏYƏRKƏN EYNİ ANDA BİR NEÇƏ VERSİYA SAXLAMAQ ÜÇÜN ZIP İÇİNDƏKİ "PORTABLE" VERSİYALARI SEÇƏ BİLƏRSİNİZ.


Xəritə modunun fayl strukturu

Proton-dakı xəritə bir neçə txt faylından (sadə mətn) və bəzi qovluqlardan ibarətdir. Əsas ilkin struktur xəritə tərifi txt-si və qovluqdur, hər ikisi oyunun mod qovluğunda yerləşən maps qovluğunun içərisindədir.

PC-də struktur nümunəsi:

Qovluq Strukturu

Xəritə tərifi txt-si .map.txt ilə bitməlidir (məs: Estrada Longa.map.txt). Unikal bir ad olmalıdır!

VACİB: MOD FAYL ADLARINDA HEÇ VAXT AKSENT, ÇƏNGƏL VƏ YA XÜSUSİ SİMVOLLAR İSTİFADƏ ETMƏYİN!

Bu txt daxilində əsas struktura sahib olacağıq:

[map]
baseDir=Estrada Longe 
; Xəritənin əsas qovluğu, .map.txt ilə birlikdə maps içərisindədir

modelsDir=Rota 1 
; Modellər qovluğu, tiles qovluğunun içərisindədir

textures=textures 
; Tekstura qovluğu

mapModVersion=2 
; Mərhələ 2-də 2 nömrəsini istifadə edin!

preview=preview.png 
; Seçim ekranı şəkli (16:9, məs: 640x360)

Xəritənin əsas qovluğunun içərisində digər qovluqlar olmalıdır:

Əsas Qovluqlar

  • dest: Lövhələri və nişanları saxlayır.
  • skins: Xəritə avtobus dərilərini saxlayır (skins/0/pbc daxilində).
  • textures: Teksturaları saxlayır. JPG-dən çəkinin, PNG istifadə edin!
  • tiles: Məcburi olaraq bu ada sahib olmalıdır. İçərisində modellər qovluğu (modelsDir) var.

VACİB: PROTON BUS XƏRİTƏ MODLARI TAM YÜKLƏNİR! ÇOX AĞIR OLA BİLMƏZLƏR. BİR NEÇƏ UZUN XƏTT EDƏCƏKSİNİZSƏ, ONLARI HİSSƏLƏRƏ BÖLÜN.

modelsDir-də təyin olunan qovluğun içərisində ixrac edilən .3ds faylları və konfiqurasiyalar var:

Tiles Qovluğu

Modellər qovluğunun daxili strukturu:

Modellər Alt Qovluqları

  • aipeople: Piyada parametrləri.
  • aitrains: Qatar parametrləri.
  • aivehicles: Yol hərəkəti parametrləri.
  • busstops: Avtobus dayanacağı parametrləri.
  • entrypoints.txt: Qabaqcıl giriş nöqtəsi parametrləri.
  • entrypoints_list.txt: Giriş nöqtələrinin sadə siyahısı.

VACİB: MODLAR QORUNMUR! TEXNİKİ OLARAQ HEÇ BİR OYUN QORUNMUR. MODUNUZUN REDAKTƏ EDİLMƏMƏSİ VƏ YA SIZDIRILMAMASININ YEGANƏ YOLU ONU BURAXMAMAQDIR.


Giriş nöqtələrini konfiqurasiya etmək

Giriş nöqtələri oyuna başlayarkən avtobusun harada görünəcəyini müəyyənləşdirir. Unikal adlara sahib olmalıdırlar (məs: 351F-10 TP, Garagem Central).

VACİB: BU ADLARDA HEÇ VAXT AKSENT VƏ YA XÜSUSİ SİMVOL İSTİFADƏ ETMƏYİN! SLASH DƏ İSTİFADƏ ETMƏYİN.

entrypoints_list.txt

Sadə siyahı, sətir başına bir ad.

Entrypoints Siyahısı

entrypoints.txt

Xəritədəki mövqeyi və fiziki fırlanmanı müəyyənləşdirir.

Entrypoints Konfiqurasiyası

Unutmayın: Blender-də Y ön/arxa və Z hündürlükdür. Unity-də (oyun), Y hündürlük və Z ön/arxadır. Koordinatları kopyalayarkən Y və Z-i tərsinə çevirin!

Koordinatları tapmaq üçün Blender-də bir Empty obyekti istifadə edin:

Blender-də Empty

Lövhələr və İstiqamətlər

dest qovluğunda, txt-də təyin olunan entrypoints ilə TAMAMİLƏ eyni ada sahib qovluqlar yaradın.

Dest Qovluğu

Hər istiqamət qovluğunun içərisində şəkillər var:

İstiqamət Şəkilləri

VACİB: MOBİL TELEFONLAR ÜÇÜN 2048 PİKSELDƏN BÖYÜK ŞƏKİLLƏRDƏN ÇƏKİNİN!

Lövhələr üçün tövsiyə olunan fayl adları:

  • 1.png, 2.png, 3.png (Elektron lövhələr 1024x128)
  • capelinhaDigital.png, capelinhaPVC.png (256x128)
  • lonaDestino.png, lonaLinha.png (Rulon lövhələr)
  • placa1.png, placa2.png, placa3.png (Yan və ön nişanlar)

Sərnişinləri konfiqurasiya etmək

Hər dayanacağın 3D-də unikal bir adı olmalıdır (məs: zzPonto1).

Blender-də (3D)

Dayanacaq bunlardan ibarətdir:

  1. dayanacaqadı_trigger adlı görünməz bir kub (trigger).
  2. Sərnişin mövqeyi üçün dayanacaqadı.000, dayanacaqadı.001 və s. adlı kiçik obyektlər (müstəvilər/kublar).

Blender-də Dayanacaq

İPUCU: Çoxbucaqlıya qənaət etmək üçün sərnişinlər üçün sadə müstəvilər istifadə edin.

Düzgün Trigger:

Düzgün Trigger

Yaxşı yerləşdirilmiş trigger nümunəsi:

Nümunə Trigger

Pis yerləşdirilmiş trigger nümunəsi (olmaz!):

Səhv Trigger

Üst-üstə düşən (olmaz!):

Üst-üstə Düşən Trigger

Qarşı dayanacaqlarda düzgün:

Qarşı Dayanacaqlar

Debug Rejimində Vizualizasiya:

Debug Rejimi

.txt faylında (busstops)

busstops qovluğunda dayanacaqla eyni ada sahib bir txt yaradın.

Txt Busstop

[busstop]
name=Meydan Dayanacağı
isLeft=0
paxAmount=15

[from_3d]
readFrom3D=1
prefix=zzPonto1
maxPathsToCheck=30
defPaxRotY=90
  • prefix: 3D-də istifadə olunan adla tam uyğun gəlməlidir (.000-dan əvvəl).
  • defPaxRotY: Varsayılan sərnişin fırlanması (0, 90, 180, -90 test edin).

Piyadaları konfiqurasiya etmək

Dayanacaqlara bənzər işləyir: bir yolu (path) təyin edən obyektlər ardıcıllığı. Nümunə: xxCalcada1.000, xxCalcada1.001, və s.

Piyada Yolu Blender Piyadalar

aipeople qovluğunda bir txt yaradın:

Txt Piyadalar

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

[defaults]
isSpawner=1
spawnInterval=5
allowBicycle=0
  • loop=1: Son nöqtə birinci nöqtəyə birləşir (dairəvi).
  • loop=0: Yol son nöqtədə bitir (xətti).

Yol hərəkəti nəqliyyat vasitələrini konfiqurasiya etmək

Sadəcə piyadalar kimi! aivehicles qovluğu.

Txt Trafik

  • isBusSpawner=1: Avtobusların görünməsini təmin etmək üçün.
  • spawnInterval: Trafiyi azaltmaq üçün artırın.
  • speedMultiplier: Sürəti dəyişdirin (məs: 0.5 yarısı, 2 iki qat).

Xəritə avtobus dərilərini konfiqurasiya etmək

Dəriləri (PNG) skins/0/pbc içinə yerləşdirin. Oyun təsadüfi seçir. PBC dəri bazası: http://omsi.viamep.com/proton/base-skins-pbc-protonbussimulator.zip


Qatarları konfiqurasiya etmək

Eyni məntiq, aitrains qovluğu. Tövsiyə: defaults-da isSpawner=0 və aralıqlı manual spawner-lər təyin edin.

Txt Qatarlar

  • randomTimeToWaitAtStart=1: Təsadüfi vaxtda başlayır.
  • spawnTimeInterval: Qatarlar arası interval (məs: 120 saniyə).

VACİB: QATARLAR DAYANMIR! HƏR ŞEYİ ƏZİRLƏR. DƏMİR YOLU KEÇİDİ ETMƏYİN.


3D modellərdə xüsusi əmrlər və adlar

  • Şəffaflıq: Obyekt adında _transparent_ istifadə edin (məs: grade_transparent_).
  • Kollayderlər: Avtomatik kollayder yaratmaq üçün _gencol_ istifadə edin (küçələr, səkilər). Qənaətlə istifadə edin!
  • Görünməz Kollayder: _gencol_invisible_ istifadə edin (məs: barreira_gencol_invisible_).
  • Emissive: Həmişə yanan obyektlər üçün _emissive_ istifadə edin.
  • Aşağı Sürət Zonası: Terminallar üçün _low_speed_zone_ obyekti (şikayətlərin qarşısını alır).

Low Speed Zone

  • Çıxışı Məcbur Et: Son dayanacaq yaxınlığında _force_exit_ obyekti.

Force Exit

  • Əlavə Təfərrüatlar: 3DS faylını _det1.3ds ilə bitirin (məs: arvores_det1.3ds). Yalnız istifadəçi "Əlavə Təfərrüatlar"ı aktivləşdirsə yüklənir.

Parıltılı tekstura konfiqurasiyası

Yerdəki teksturaların titrəməsinin (z-fighting/flickering) qarşısını almaq üçün, teksturanın yanında bir .config.txt faylı yaradın. Məs: asfalto.png.config.txt.

Config Txt


Ekstralar - Optimizasiya məsləhətləri

  • Kiçik Teksturalar: Təkrarlanan teksturalar üçün 256x256 və ya 512x512 istifadə edin.
  • MAX 2048px: Mobil telefonlar üçün HEÇ VAXT 2048px-dən böyük teksturalar istifadə etməyin!

Tekstura Xəbərdarlığı

  • Kollayderlər: Mürəkkəb kollayderlərdən çəkinin. _gencol_-u yalnız yerdə və əsas divarlarda istifadə edin.
  • Materiallar: Eyni obyektdə çoxlu materialdan çəkinin.
  • Obyektləri Birləşdirin: Draw calls-u azaltmaq üçün eyni materiala sahib yaxın ağacları birləşdirin.

Hələlik bu qədər! Əylənin!