📚 Docs

Harita Modları: Aşama 2

v252 ile Güncellendi - Nisan 2020 Yazan Marcos Elias

Giriş

Proton Bus harita modlama sisteminin 2. Aşaması, oyunda yolculara, trafiğe ve daha fazlasına sahip olmanızı sağlar! Bu, onu başka bir seviyeye taşır, tam anlamıyla Proton'u bu özellikten önce ve sonra diye ayırabilirsiniz. Neredeyse yeni bir oyun gibi!

Uyarı: Zaman kısıtlamaları nedeniyle, dönüştürme ve düzenleme sürecinde bireysel destek sağlamak mümkün değildir. Kendiniz denemenizi, diğer haritaların nasıl yapıldığını görmenizi ve dosya yapılarını keşfetmenizi öneririz. İlgili soruları ve sorunları Facebook oyun gruplarında paylaşmayı tercih edin, böylece çözümler herkese yardımcı olur ve diğer mod yapımcıları da size yardımcı olabilir.

Henüz abone olmadıysanız, yapımcının kanalına katılın: www.youtube.com/marquinhosxp. Bazı videolar ve eğitimler orada yayınlanmaktadır.

Resmi PBSU Facebook Sayfası: https://www.facebook.com/protonbusoficial Ve PBSR: https://www.facebook.com/protonbusrod.oficial/

Facebook Grupları

Mod oluşturucular için özel grup: https://www.facebook.com/groups/pbsmods/ Sadece oyuncuysanız lütfen buna katılmaktan kaçının, konu dışı gönderilerle (silineceklerdir) kalabalık yaratmamak için!

Kullanıcılar için gruplar: Bunlarda, oyuncuların bakış açısından ekran görüntüleri, ipuçları, videolar, çeşitli eğitimler vb. serbest gönderiler:

Modlar için doku almak üzere iyi bir site ipucu: http://www.textures.com


Aşama 1 ile ilgili notlar

Aşama 2'de bir haritaya başlamadan önce, Aşama 1 için temel düzeyde üretime hakim olmalısınız. Henüz aşina değilseniz endişelenmeyin, bu kılavuzu örnek harita ile birlikte takip edebilirsiniz. En büyük gereksinim, haritaları dışa aktarmak için kullanacağımız temel Blender bilgisine sahip olmaktır.

Haritalar için Aşama 1 ile ilgili eski belgeler burada: http://blog.protonbus.com.br/2019/09/experimental-mods-de-mapas-no-pbs.html

Ve otobüsler için: http://blog.protonbus.com.br/2018/09/primeira-fase-do-sistema-de-mods-de.html

Oyunun en son sürümünde olmak her zaman iyidir! Eskiler artık desteklenmiyor, beta sürekli gelişiyor, bu yüzden her zaman en son sürümü dikkate alıyoruz. Şehir için http://pbsu.busmods.com ve yol için http://pbsr.busmods.com adreslerinde en son derlemeleri bulabilirsiniz.

Temel olarak sahneyi üretmek, modeli 3ds formatında dışa aktarmak ve Proton Bus sistemi için klasör ve dosya yapısını oluşturmak için Blender 2.79 kullanıyoruz.

ÖNEMLİ: BLENDER 2.79 KULLANIN! Mevcut oyun formatı için gereken dışa aktarıcı Blender 2.8 ile çalışmıyor, görünüşe göre durduruldu ve bugüne kadar kimse güncellemedi. Belki gelecekte tekrar çalışır, deneyen insanlar var.

Blender 2.79'u buradan indirebilirsiniz: https://download.blender.org/release/Blender2.79/ En son sürüm genellikle adında bir "b" olan sürümdür. Platform fark etmez, sisteminize (Windows, Linux veya Mac) ve mimarinize (32 veya 64 bit) bağlı olacaktır.

Haritaya 2.8'de başladıysanız, öneri, 2.79'un açabileceği bir ara formata dışa aktarmak ve ardından oradan oyun için dışa aktarmaktır.

ÖNEMLİ: PROTON İÇİN 3DS DIŞA AKTARICIYI DEĞİŞTİRİN! Blender'daki varsayılan 3ds dışa aktarıcı, nesne ve doku adlarını 12 karakterde keser. Bazı parçaların ve/veya dokuların adlarındaki hataları önlemek için normalde bundan fazlasına ihtiyacımız olacak.

Dışa aktarmak için değiştirilmiş Blender eklentisinin indirilmesi (Blender 2.79 için dosya): http://proton.viamep.com/coisas/export_3ds_protonbus_blender279.zip

EKLENTİNİN NASIL DEĞİŞTİRİLECEĞİNE DAİR EĞİTİM: https://youtu.be/0EokFmSjGdA

Bunu indirmek yerine tercih ederseniz, Blender'ınızın scripts\addons\io_scene_3ds klasöründeki export_3ds.py dosyasını değiştirin. [:12] ifadesini arayın ve 12yi 999 gibi çok daha büyük bir sayıyla değiştirin. Karakter sınırıdır. Bu olmadan oyuna dışa aktarma başarısız olabilir.

İPUCU: BLENDER'I İNDİRİRKEN AYNI ANDA BİRDEN FAZLA SÜRÜMÜ TUTMAK İÇİN ZIP İÇİNDEKİ "PORTABLE" SÜRÜMLERİ TERCİH EDEBİLİRSİNİZ.


Harita modunun dosya yapısı

Proton'daki harita birkaç txt dosyasından (düz metin) ve bazı klasörlerden oluşur. Temel birincil yapı, bir harita tanım txt'si ve bir klasördür, her ikisi de oyunun mod klasöründe bulunan maps klasörünün içinde bulunur.

PC'de yapı örneği:

Klasör Yapısı

Harita tanım txt'si .map.txt ile bitmelidir (ör: Estrada Longa.map.txt). Benzersiz bir isim olmalı!

ÖNEMLİ: MOD DOSYA ADLARINDA ASLA AKSAN, ÇENGEL VEYA ÖZEL KARAKTERLER KULLANMAYIN!

Bu txt içinde temel yapıya sahip olacağız:

[map]
baseDir=Estrada Longe 
; Haritanın temel klasörü, .map.txt ile birlikte maps içindedir

modelsDir=Rota 1 
; Modeller klasörü, tiles klasörünün içindedir

textures=textures 
; Dokular klasörü

mapModVersion=2 
; Aşama 2'de 2 numarasını kullanın!

preview=preview.png 
; Seçim ekranı görüntüsü (16:9, ör: 640x360)

Haritanın temel klasörünün içinde başka klasörler olmalıdır:

Temel Klasörler

  • dest: Tabelaları ve plakaları saklar.
  • skins: Harita otobüsü kaplamalarını saklar (skins/0/pbc içinde).
  • textures: Dokuları saklar. JPG'den kaçının, PNG kullanın!
  • tiles: Zorunlu olarak bu isme sahip olmalıdır. İçinde modeller klasörü (modelsDir) bulunur.

ÖNEMLİ: PROTON BUS HARİTA MODLARI TAMAMEN YÜKLENİR! ÇOK AĞIR OLAMAZLAR. BİRDEN FAZLA UZUN HAT YAPACAKSANIZ, BUNLARI PARÇALARA BÖLÜN.

modelsDir içinde tanımlanan klasörün içinde dışa aktarılan .3ds dosyaları ve yapılandırmalar bulunur:

Tiles Klasörü

Modeller klasörünün iç yapısı:

Modeller Alt Klasörleri

  • aipeople: Yaya ayarları.
  • aitrains: Tren ayarları.
  • aivehicles: Trafik ayarları.
  • busstops: Otobüs durağı ayarları.
  • entrypoints.txt: Gelişmiş giriş noktası ayarları.
  • entrypoints_list.txt: Giriş noktalarının basit listesi.

ÖNEMLİ: MODLAR KORUNMAZ! TEKNİK OLARAK HİÇBİR OYUN KORUNMAZ. MODUNUZUN DÜZENLENMEMESİNİN VEYA SIZDIRILMAMASININ TEK YOLU ONU YAYINLAMAMAKTIR.


Giriş noktalarını yapılandırma

Giriş noktaları, oyuna başlarken otobüsün nerede görüneceğini tanımlar. Benzersiz adlara sahip olmalıdırlar (ör: 351F-10 TP, Garagem Central).

ÖNEMLİ: BU ADLARDA ASLA AKSAN VEYA ÖZEL KARAKTER KULLANMAYIN! EĞİK ÇİZGİ DE KULLANMAYIN.

entrypoints_list.txt

Basit liste, satır başına bir ad.

Entrypoints Listesi

entrypoints.txt

Haritadaki konumu ve fiziksel dönüşü tanımlar.

Entrypoints Yapılandırması

Unutmayın: Blender'da Y ön/arka ve Z yüksekliktir. Unity'de (oyun), Y yükseklik ve Z ön/arkadır. Koordinatları kopyalarken Y ve Z'yi ters çevirin!

Koordinatları bulmak için Blender'da bir Empty nesnesi kullanın:

Blender'da Empty

Tabelalar ve Hedefler

dest klasöründe, txt'de tanımlanan entrypoints ile TAMAMEN aynı ada sahip klasörler oluşturun.

Dest Klasörü

Her hedef klasörünün içinde görüntüler bulunur:

! Hedef Görüntüleri

ÖNEMLİ: MOBİL TELEFONLAR İÇİN 2048 PİKSELDEN BÜYÜK GÖRÜNTÜLERDEN KAÇININ!

Tabelalar için önerilen dosya adları:

  • 1.png, 2.png, 3.png (Elektronik tabelalar 1024x128)
  • capelinhaDigital.png, capelinhaPVC.png (256x128)
  • lonaDestino.png, lonaLinha.png (Rulo tabelalar)
  • placa1.png, placa2.png, placa3.png (Yan ve ön plakalar)

Yolcuları yapılandırma

Her durağın 3D'de benzersiz bir adı olmalıdır (ör: zzPonto1).

Blender'da (3D)

Durak şunlardan oluşur:

  1. durakadı_trigger adlı görünmez bir küp (tetikleyici).
  2. Yolcu konumu için durakadı.000, durakadı.001 vb. adlı küçük nesneler (düzlemler/küpler).

Blender'da Durak

İPUCU: Çokgen tasarrufu yapmak için yolcular için basit düzlemler kullanın.

Doğru Tetikleyici:

Doğru Trigger

İyi konumlandırılmış tetikleyici örneği:

Örnek Trigger

Kötü konumlandırılmış tetikleyici örneği (olamaz!):

Yanlış Trigger

Örtüşen (olamaz!):

Örtüşen Trigger

Karşı duraklarda doğru:

Karşı Duraklar

Hata Ayıklama Modunda Görselleştirme:

Debug Modu

.txt dosyasında (busstops)

busstops klasöründe durakla aynı ada sahip bir txt oluşturun.

Txt Busstop

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

[from_3d]
readFrom3D=1
prefix=zzPonto1
maxPathsToCheck=30
defPaxRotY=90
  • prefix: 3D'de kullanılan adla tam olarak eşleşmelidir (.000'dan önce).
  • defPaxRotY: Varsayılan yolcu dönüşü (0, 90, 180, -90 test edin).

Yayaları yapılandırma

Duraklara benzer şekilde çalışır: bir yolu (path) tanımlayan bir nesne dizisi. Örnek: xxCalcada1.000, xxCalcada1.001, vb.

Yaya Yolu Blender Yayalar

aipeople klasöründe bir txt oluşturun:

Txt Yayalar

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

[defaults]
isSpawner=1
spawnInterval=5
allowBicycle=0
  • loop=1: Son nokta ilk noktaya bağlanır (dairesel).
  • loop=0: Yol son noktada biter (doğrusal).

Trafik araçlarını yapılandırma

Yayalarla tamamen aynı! aivehicles klasörü.

Trafik Txt

  • isBusSpawner=1: Otobüslerin görünmesini sağlamak için.
  • spawnInterval: Trafiği azaltmak için artırın.
  • speedMultiplier: Hızı değiştirin (ör: 0.5 yarım, 2 çift).

Harita otobüsü kaplamalarını yapılandırma

Kaplamaları (PNG) skins/0/pbc içine yerleştirin. Oyun rastgele seçer. PBC kaplama tabanı: http://omsi.viamep.com/proton/base-skins-pbc-protonbussimulator.zip


Trenleri yapılandırma

Aynı mantık, aitrains klasörü. Öneri: defaults içinde isSpawner=0 ve aralıklı manuel spawner'lar tanımlayın.

Tren Txt

  • randomTimeToWaitAtStart=1: Rastgele zamanda başlar.
  • spawnTimeInterval: Trenler arası aralık (ör: 120 saniye).

ÖNEMLİ: TRENLER DURMAZ! HER ŞEYİ EZERLER. HEMZEMİN GEÇİT YAPMAYIN.


3D modellerde özel komutlar ve adlar

  • Şeffaflık: Nesne adında _transparent_ kullanın (ör: grade_transparent_).
  • Çarpıştırıcılar: Otomatik çarpıştırıcı oluşturmak için _gencol_ kullanın (sokaklar, kaldırımlar). İdareli kullanın!
  • Görünmez Çarpıştırıcı: _gencol_invisible_ kullanın (ör: barreira_gencol_invisible_).
  • Emissive: Her zaman açık nesneler için _emissive_ kullanın.
  • Düşük Hız Bölgesi: Terminaller için _low_speed_zone_ nesnesi (şikayetleri önler).

Low Speed Zone

  • Çıkışı Zorla: Son durak yakınında _force_exit_ nesnesi.

Force Exit

  • Ekstra Detaylar: 3DS dosyasını _det1.3ds ile bitirin (ör: arvores_det1.3ds). Yalnızca kullanıcı "Ekstra Detaylar"ı etkinleştirirse yüklenir.

Işıltılı doku yapılandırması

Yerde titreyen dokuları (z-fighting/flickering) önlemek için dokunun yanında bir .config.txt dosyası oluşturun. Ör: asfalt.png.config.txt.

Config Txt


Ekstralar - Optimizasyon ipuçları

  • Küçük Dokular: Tekrarlayan dokular için 256x256 veya 512x512 kullanın.
  • MAX 2048px: Cep telefonları için ASLA 2048px'den büyük dokular kullanmayın!

Doku Uyarısı

  • Çarpıştırıcılar: Karmaşık çarpıştırıcılardan kaçının. _gencol_'ü yalnızca yerde ve ana duvarlarda kullanın.
  • Malzemeler: Aynı nesnede çok fazla malzemeden kaçının.
  • Nesneleri Birleştirin: Çizim çağrılarını azaltmak için yakın ağaçları aynı malzeme ile birleştirin.

Şimdilik bu kadar! İyi eğlenceler!