Preparazione della fase 2 delle mod autobus in Proton Bus Simulator
Questo documento è una bozza. Ci vorrà un po' per diventare più completo. Per favore, abbi pazienza, ricorda che questo è un progetto indie fatto nel tempo libero. Il modo migliore per capire come sono fatte le mod è curiosare nelle mod di esempio. La maggior parte delle nostre mod ha il 3D aperto per l'editing e l'analisi. Saranno pubblicate sul sito: www.busmods.com
La fase 2 del sistema di mod autobus porta diverse animazioni, che in precedenza erano disponibili solo sugli autobus nativi. La maggior parte delle cose richiede solo di posizionare nuove parti con nomi specifici nel 3D. Sono state aggiunte alcune altre proprietà e comandi. Le più significative sono spiegate in questo documento, mentre le più semplici possono essere esplorate direttamente nelle mod di esempio.
Per procedere con questa guida devi già sapere come convertire le mod nella fase 1, altrimenti potresti finire per non capire le cose. Se stai partendo da zero, per favore, vedi i tutorial della fase 1: http://blog.protonbus.com.br/2018/09/primeira-fase-do-sistema-de-mods-de.html
Salvo dove indicato diversamente (porte, suoni, luci ecc), la maggior parte delle configurazioni vengono fatte nel file principale dell'autobus.
[mod]
name=MiBRTS
busModVersion=2
preview=preview.png
Cambia l'elemento busModVersion a 2. Questo sarà utile in futuro, quando la fase 3 supporterà nuove cose... Il gioco attuale leggerà questo per emettere un avviso ai giocatori che la mod non è supportata (questo accadrà già se provi con un 3 o 5 o qualsiasi numero superiore lì).
L'elemento preview indica un'immagine da apparire nella schermata di selezione. L'immagine si trova nella cartella base dell'autobus (la baseDir), non in textures. Se questo elemento viene omesso, il gioco cercherà automaticamente un'immagine chiamata preview.png.
Preferisci usare il rapporto 16:9 nell'immagine, come per esempio, 1280x720 o la metà, per non avere un file grande: 640x360.
[config]
useStandardShader=1
0 = disattivato1 = attivatoQuesta opzione forza l'uso dello shader attuale di Unity, lo Standard Shader. L'interno dell'autobus potrebbe sembrare un po' più carino, tuttavia potrebbe essere più pesante sui cellulari. È un'opzione che potrà essere rimossa se diventa pesante. Lasciandola a 0, o omettendola, rimane lo standard precedente (lo shader Legacy/Diffuse) con colori più slavati e nessuna lucentezza/speculare.
Essendo un'opzione sperimentale, non è ancora possibile modificare i parametri di metallic, specular ecc, rimarranno allo standard 0.5.
[reverseCamera]
posX=0
posY=3.22161
posZ=-6.11213
rotX=30
rotY=180
rotZ=0
Comando simile allo specchietto, solo che in questo caso è una telecamera rivolta all'indietro, posizionata da qualche parte nella parte posteriore dell'autobus. Può essere leggermente ruotata verso il basso sulla x. Nota la rotazione di 180 gradi sull'asse verticale (Y in Unity, Z in Blender), per essere rivolta all'indietro.
Il monitor della telecamera di retromarcia è fondamentalmente un piano, posizionato dove si trova lo schermo. Rimarrà disattivato nel gioco, apparendo solo quando si è in retromarcia. Deve avere uno sfondo sotto di esso, per non avere un buco mentre non si è in retromarcia. Il piano deve essere un po' sopra lo sfondo, per non sfarfallare (il tradizionale Z-fighting nei giochi).
Il pezzo dello schermo deve chiamarsi: _reverse_camera_screen_
Deve essere mappato sull'intera texture nell'UV, ma non ha bisogno di avere materiale né texture associata. Diversamente dagli specchietti, non usare il mirror sulla x nella mappatura, visto che la telecamera non genera un'immagine invertita.
[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

Il controllo dello scarico ha guadagnato nuovi parametri: il multiplier è un moltiplicatore di intensità, per emettere più o meno particelle. Non esagerare con il valore verso l'alto, poiché può pesare per i giocatori. Mettendo 0.5 emette la metà di quello che emetterebbe, mettendo 2 emette il doppio, 1.2 un po' di più, ecc. Continua a testare, ma non usare numeri molto grandi come 5, 10 ecc.
Là nella sezione specialTextures puoi definire la texture del fumo che verrà usata nel parametro particleSystemSmoke1.
[specialTextures]
particleSystemSmoke1=ParticleCloudWhite.png
Alcuni nuovi comandi accettano la personalizzazione del colore. Il motore usa colori nel formato RGBA con valori da 0 (nullo) a 1 (colore totale).
Esempi:
colorR=1
colorG=0
colorB=0
colorA=1
Il colore sopra diventa rosso. Se lasci G a 1 e R e B a 0, diventa verde. Se lasci B a 1 e R e G a 0, diventa blu. Da lì puoi mescolare i valori per arrivare al colore desiderato.
Premendo C o cliccando sull'icona delle telecamere di comando su Android, il gioco cambia la visione focalizzata su aree del cruscotto dove il giocatore può cliccare sui pulsanti.
Queste posizioni di telecamere sono identificate dal comando command_camera_ seguito da un numero incrementale per ogni posizione.
[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
Possono esserci illimitate di queste telecamere (usa command_camera_3, ecc). Ci vuole un bel po' per configurarle, avrai bisogno di molta pazienza. È una cosa facoltativa ma desiderabile.
Il sistema di aria condizionata ha configurazioni sparse in vari file. Il controllo dell'aria condizionata è posizionato nel file principale dell'autobus.
[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
In evidenza c'è enabled=1. Se lasciato a 0 sarà disattivato.
Gli ultimi due definiscono il colore dei punti dello schermo. Diversamente dallo schermo della telecamera di retromarcia, questo non ha bisogno di un piano, il sistema lo genera dinamicamente.

Sopra i pulsanti di aria accesa e ventilatore forzato, prendi altre due coordinate per piccole luci che rimarranno accese quando questi pulsanti sono attivati. Queste luci saranno definite nel file delle luci (lights), così:
[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: Luce del pulsante dell'aria accesa.air_conditioner_fan_1: Luce del pulsante del ventilatore forzato.Nel file dei suoni (sounds):
[airConditioningSlow]
file=sounds/airConditioningSlow.wav
...
[airConditioningFast]
file=sounds/airConditioningFast.wav
...
_airconditioner_button1_: pulsante accendi/spegni_airconditioner_button2_: pulsante ventilatore forzato_airconditioner_down_: pulsante per diminuire la temperatura_airconditioner_up_: pulsante per aumentare la temperaturaI riflessi in Proton sono definiti nel file di configurazione (.bus), dove alteri i parametri metallic e glossiness.
//riflessi laterali
[ref001]
metallic=0.4
glossiness=0.8
//riflessi della maschera
[ref002]
metallic=1
glossiness=1

I nomi delle parti che useranno i suddetti riflessi devono avere il loro identificatore usando _, per esempio, _ref001_. Es: _ref001_skin001_carrozzeria.
Se vuoi usare i riflessi sui vetri, definisci i vetri in questo modo (c'è un limite di dieci per ora):
[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

Poi metti il nome alla parte nel 3D con il nome _glass001_ ecc.
Se lasci enabled=0 il vetro perde il riflesso, tornando a usare la vecchia modalità.
IMPORTANTE: sulle parti di vetro con pioggia, non utilizzare il riflesso! Deve essere usato solo sui vetri normali. I vetri con pioggia devono usare _transparent_.
Alcuni autobus moderni hanno un pannello elettronico con pulsanti morbidi (Multiplex).

Le texture sono definite là nella sezione specialTextures:
[specialTextures]
multiplexOff=MultiTextura.png
multiplexOn=MultiTextura.png
multiplexActive=MultiTextura_ON.png
Per facilitare, è possibile mettere entrambe le parti dei manuali e automatici, e il gioco alternerà la visualizzazione secondo la selezione del giocatore. Basta nominare le parti con i nomi appropriati.
Nel caso del cambio automatico, non sono supportati quegli Scania che hanno 123DNR, l'attivo sarà il 3.

Curiosa ed esplora le mod di esempio per capire, per favore.
_anim001_on, _click001_on..3ds per evitare bug.