Proton Bus Simulator'da otobüs modlarının 2. aşamasına hazırlık
Bu belge bir taslaktır. Daha kapsamlı hale gelmesi biraz zaman alacaktır. Lütfen sabırlı olun, bunun boş zamanlarda yapılan bağımsız bir proje olduğunu unutmayın. Modların nasıl yapıldığını anlamanın en iyi yolu örnek modları incelemektir. Modlarımızın çoğu düzenleme ve analiz için 3D'ye açıktır. Sitede yayınlanacaklar: www.busmods.com
Otobüs mod sisteminin 2. aşaması, daha önce yalnızca yerel otobüslerde bulunan çeşitli animasyonları getiriyor. Çoğu şey sadece 3D'de belirli isimlerle yeni parçalar yerleştirmeyi gerektirir. Bazı diğer özellikler ve komutlar eklendi. En önemlileri bu belgede açıklanırken, daha basit olanları doğrudan örnek modlarda keşfedilebilir.
Bu kılavuza devam etmek için 1. aşamadaki modları nasıl dönüştüreceğinizi zaten bilmeniz gerekir, aksi takdirde işleri anlamadan bitirebilirsiniz. Sıfırdan başlıyorsanız, lütfen 1. aşama için eğitimlere bakın: http://blog.protonbus.com.br/2018/09/primeira-fase-do-sistema-de-mods-de.html
Aksi belirtilmedikçe (kapılar, sesler, ışıklar vb.), çoğu ayar ana otobüs dosyasında yapılır.
[mod]
name=MiBRTS
busModVersion=2
preview=preview.png
busModVersion öğesini 2 olarak değiştirin. Bu gelecekte, 3. aşama yeni şeyleri desteklediğinde yararlı olacaktır... Mevcut oyun, oyunculara modun desteklenmediğine dair bir uyarı vermek için bunu okuyacaktır (orada 3 veya 5 veya daha yüksek bir sayıyla test ederseniz bu zaten gerçekleşecektir).
preview öğesi, seçim ekranında görünecek bir resmi belirtir. Resim otobüsün temel klasöründe (baseDir) bulunur, textures içinde değil. Bu öğe atlanırsa, oyun otomatik olarak preview.png adlı bir resim arayacaktır.
Resimde 1280x720 gibi 16:9 en boy oranını veya yarısını kullanmayı tercih edin, böylece büyük bir dosya olmaz: 640x360.
[config]
useStandardShader=1
0 = devre dışı1 = etkinBu seçenek, Unity'nin mevcut gölgelendiricisi olan Standard Shader'ın kullanımını zorlar. Otobüsün içi biraz daha güzel görünebilir, ancak cep telefonlarında daha ağır olabilir. Ağırlaşırsa kaldırılabilecek bir seçenektir. 0'da bırakarak veya atlayarak, daha soluk renkler ve parlaklık/speküler olmayan önceki standart (Legacy/Diffuse gölgelendirici) kalır.
Deneysel bir seçenek olduğu için metallic, specular vb. parametreleri değiştirmek henüz mümkün değildir, bunlar varsayılan 0.5'te kalacaktır.
[reverseCamera]
posX=0
posY=3.22161
posZ=-6.11213
rotX=30
rotY=180
rotZ=0
Aynaya benzer komut, ancak bu durumda otobüsün arkasında bir yere konumlandırılmış arkaya bakan bir kameradır. x ekseninde hafifçe aşağı döndürülebilir. Arkaya bakmak için dikey eksende (Unity'de Y, Blender'da Z) 180 derece dönüşe dikkat edin.
Geri görüş kamerası monitörü temel olarak ekranın oturduğu yere konumlandırılmış bir düzlemdir. Oyunda devre dışı kalacak, sadece geri vitesteyken görünecektir. Altında bir arka plan olmalıdır, böylece geri viteste değilken bir delik olmaz. Düzlemin arka planın biraz üzerinde olması gerekir, titremeyi önlemek için (oyunlardaki geleneksel Z-fighting).
Ekran parçası şu şekilde adlandırılmalıdır: _reverse_camera_screen_
UV'de tüm dokuya eşlenmiş olmalıdır, ancak ilişkili malzemeye veya dokuya sahip olması gerekmez. Aynaların aksine, haritalamada x üzerinde ayna kullanmayın, çünkü kamera ters çevrilmiş bir görüntü oluşturmaz.
[posSmoke1]
enabled=1
posX=-1.0966
posY=3.08716
posZ=-6.1505
rotX=0
rotY=0
rotZ=0
multiplier=0.5
colorR=0.2
colorG=0.2
colorB=0.2
colorA=0.1

Egzoz kontrolü yeni parametreler kazandı: multiplier, daha fazla veya daha az parçacık yaymak için bir yoğunluk çarpanıdır. Değeri yukarı doğru abartmayın, çünkü oyuncular için ağır olabilir. 0.5 koymak, yayacağının yarısını yayar, 2 koymak iki katını yayar, 1.2 biraz daha fazla, vb. Test etmeye devam edin, ancak 5, 10 gibi çok büyük sayılar kullanmayın.
Orada specialTextures bölümünde, particleSystemSmoke1 parametresinde kullanılacak duman dokusunu tanımlayabilirsiniz.
[specialTextures]
particleSystemSmoke1=ParticleCloudWhite.png
Bazı yeni komutlar renk özelleştirmesini kabul eder. Motor, 0 (yok) ile 1 (tam renk) arasında değerlere sahip RGBA formatındaki renkleri kullanır.
Örnekler:
colorR=1
colorG=0
colorB=0
colorA=1
Yukarıdaki renk kırmızı olur. G'yi 1'de ve R ve B'yi 0'da bırakırsanız, yeşil olur. B'yi 1'de ve R ve G'yi 0'da bırakırsanız, mavi olur. Oradan istediğiniz renge ulaşmak için değerleri karıştırabilirsiniz.
C tuşuna bastığınızda veya Android'de komut kamerası simgesine tıkladığınızda, oyun, oyuncunun düğmelere tıklayabileceği gösterge paneli alanlarına odaklanan görünümü değiştirir.
Bu kamera konumları, her konum için artan bir sayı izleyen command_camera_ komutuyla tanımlanır.
[command_camera_1]
posX=-0.174367
posY=1.76852
posZ=5.27041
rotX=-62.1665d
rotY=-13.3138
rotZ=-0.000039
[command_camera_2]
posX=-0.344243
posY=1.85677
posZ=5.22591
rotX=-66.1773
rotY=-15.7203
rotZ=-0.00003
Bu türden sınırsız kamera olabilir (command_camera_3, vb. kullanın). Bunları yapılandırmak oldukça zaman alır, çok fazla sabra ihtiyacınız olacaktır. İsteğe bağlı ancak arzu edilen bir şeydir.
Klima sistemi, çeşitli dosyalara dağılmış ayarlara sahiptir. Klima kontrolü ana otobüs dosyasında konumlandırılmıştır.
[air_conditioner]
enabled=1
posX=-0.761969
posY=2.74968
posZ=5.72929
rotX=-18
rotY=0
rotZ=0
scaleX=0.0025
scaleY=0.0025
scaleZ=1
[air_conditioner_screen_on]
colorR=0
colorG=1
colorB=0
colorA=1
[air_conditioner_screen_off]
colorR=0
colorG=0.25
colorB=0
colorA=0.75
Vurgulanan enabled=1'dir. 0'da bırakılırsa devre dışı kalır.
Son ikisi ekran noktalarının rengini tanımlar. Geri görüş kamerası ekranının aksine, bunun bir düzleme ihtiyacı yoktur, sistem bunu dinamik olarak oluşturur.

Klima açık ve zorlamalı fan düğmelerinin üzerinde, bu düğmeler etkinleştirildiğinde yanacak küçük ışıklar için iki koordinat daha alın. Bu ışıklar ışıklar dosyasında (lights) şu şekilde tanımlanacaktır:
[air_conditioner_on_1]
posX=-0.683482
posY=2.77392
posZ=5.72009
rotX=-18.6
scaleX=0.01
scaleY=0.01
scaleZ=0.01
picture=Z_LuzAr.png
[air_conditioner_fan_1]
posX=-0.651946
posY=2.77392
posZ=5.72009
rotX=-18.6
scaleX=0.01
scaleY=0.01
scaleZ=0.01
picture=Z_LuzAr.png

air_conditioner_on_1: Klima açık düğmesi için ışık.air_conditioner_fan_1: Zorlamalı fan düğmesi için ışık.Sesler dosyasında (sounds):
[airConditioningSlow]
file=sounds/airConditioningSlow.wav
...
[airConditioningFast]
file=sounds/airConditioningFast.wav
...
_airconditioner_button1_: açma/kapama düğmesi_airconditioner_button2_: zorlamalı fan düğmesi_airconditioner_down_: sıcaklığı düşürme düğmesi_airconditioner_up_: sıcaklığı artırma düğmesiProton'daki yansımalar, metallic ve glossiness parametrelerini değiştirdiğiniz yapılandırma dosyasında (.bus) tanımlanır.
//yan yansımalar
[ref001]
metallic=0.4
glossiness=0.8
//maske yansımaları
[ref002]
metallic=1
glossiness=1

Söz konusu yansımaları kullanacak parçaların adlarının _ kullanılarak tanımlayıcısına sahip olması gerekir, örneğin, _ref001_. Ör: _ref001_skin001_govde.
Camlarda yansıma kullanmak istiyorsanız, camları şu şekilde tanımlayın (şimdilik on sınırı vardır):
[glass001]
enabled=1
shininess=0.9
specColorR=0.3
specColorG=0.3
specColorB=0.3
specColorA=0
refColorR=0.2
refColorG=0.2
refColorB=0.2
refColorA=0

Ardından 3D'deki parçayı _glass001_ vb. adıyla adlandırın.
enabled=0 bırakırsanız cam yansımayı kaybeder ve eski modu kullanmaya geri döner.
ÖNEMLİ: yağmurlu cam parçalarında yansıma kullanmayın! Sadece normal camlarda kullanılmalıdır. Yağmurlu camlar _transparent_ kullanmalıdır.
Bazı modern otobüslerde yazılım düğmeli elektronik bir panel (Multiplex) bulunur.

Dokular orada specialTextures bölümünde tanımlanır:
[specialTextures]
multiplexOff=MultiTextura.png
multiplexOn=MultiTextura.png
multiplexActive=MultiTextura_ON.png
Kolaylaştırmak için, hem manuel hem de otomatik için her iki parçayı da yerleştirmek mümkündür ve oyun, oyuncunun seçimine göre ekranı değiştirecektir. Parçaları uygun isimlerle adlandırmanız yeterlidir.
Otomatik şanzıman durumunda, 123DNR'ye sahip Scania'lar desteklenmez, aktif olan 3 olacaktır.

Lütfen anlamak için örnek modları inceleyin ve keşfedin.
_anim001_on, _click001_on..3ds dosyasında tutun.