Préparation de la phase 2 des mods de bus dans Proton Bus Simulator
Ce document est une ébauche. Il faudra un peu de temps pour qu'il devienne plus complet. S'il vous plaît soyez patient, rappelez-vous que c'est un projet indépendant fait sur le temps libre. La meilleure façon de comprendre comment les mods sont faits est de fouiller dans les mods d'exemple. La plupart de nos mods ont le 3D libre pour édition et analyse. Ils seront postés sur le site : www.busmods.com
La phase 2 du système de mods de bus apporte plusieurs animations, qui étaient auparavant disponibles uniquement sur les bus natifs. La plupart des choses nécessitent seulement de placer de nouvelles pièces avec des noms spécifiques dans le 3D. D'autres propriétés et commandes ont été ajoutées. Les plus importantes sont expliquées dans ce document, tandis que les plus simples peuvent être explorées directement dans les mods d'exemple.
Pour poursuivre avec ce guide vous devez déjà savoir convertir les mods en phase 1, sinon vous pourriez finir par ne pas comprendre les choses. Si vous commencez de zéro, s'il vous plaît, voyez les tutoriels de la phase 1 : http://blog.protonbus.com.br/2018/09/primeira-fase-do-sistema-de-mods-de.html
Sauf indication contraire (portes, sons, lumières etc), la plupart des configurations sont faites dans le fichier principal du bus.
[mod]
name=MiBRTS
busModVersion=2
preview=preview.png
Changez l'élément busModVersion à 2. Cela sera utile à l'avenir, quand la phase 3 supportera de nouvelles choses... Le jeu actuel lira cela pour émettre un avertissement aux joueurs que le mod n'est pas supporté (cela se produira déjà si vous testez avec un 3 ou 5 ou tout autre nombre supérieur ici).
L'élément preview indique une image à apparaître sur l'écran de sélection. L'image se trouve dans le dossier de base du bus (le baseDir), pas dans textures. Si cet élément est omis, le jeu cherchera automatiquement une image appelée preview.png.
Préférez utiliser le ratio 16:9 dans l'image, comme par exemple, 1280x720 ou la moitié, pour ne pas avoir un gros fichier : 640x360.
[config]
useStandardShader=1
0 = désactivé1 = activéCette option force l'utilisation du shader actuel d'Unity, le Standard Shader. L'intérieur du bus peut être un peu plus joli, cependant il peut être plus lourd sur les portables. C'est une option qui pourra être retirée si elle devient lourde. En laissant à 0, ou en omettant, reste le standard précédent (le shader Legacy/Diffuse) avec des couleurs plus délavées et aucune brillance/specular.
Comme c'est une option expérimentale, il n'est pas encore possible de modifier les paramètres de metallic, specular etc, ils resteront au standard 0.5.
[reverseCamera]
posX=0
posY=3.22161
posZ=-6.11213
rotX=30
rotY=180
rotZ=0
Commande similaire au rétroviseur, sauf que dans ce cas c'est une caméra tournée vers l'arrière, positionnée quelque part à l'arrière du bus. Peut être légèrement tournée vers le bas sur l'axe x. Notez la rotation à 180 degrés sur l'axe vertical (Y dans Unity, Z dans Blender), pour être tournée vers l'arrière.
Le moniteur de la caméra de recul est essentiellement un plan, positionné là où se trouve l'écran. Il restera désactivé dans le jeu, n'apparaissant que quand on est en marche arrière. Il doit avoir un fond en dessous, pour ne pas avoir de trou tant qu'on n'est pas en marche arrière. Le plan doit être un peu au-dessus du fond, pour ne pas clignoter (le traditionnel Z-fighting dans les jeux).
La pièce de l'écran doit s'appeler : _reverse_camera_screen_
Elle doit être mappée sur la texture entière dans l'UV, mais n'a pas besoin d'avoir de matériau ni de texture associée. Différent des rétroviseurs, n'utilisez pas le mirror sur x dans le mapping, vu que la caméra ne génère pas d'image inversée.
[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

Le contrôle de l'échappement a gagné de nouveaux paramètres : le multiplier est un multiplicateur d'intensité, pour émettre plus ou moins de particules. N'exagérez pas sur la valeur vers le haut, car cela peut peser pour les joueurs. En mettant 0.5 émet la moitié de ce qu'il émettrait, en mettant 2 émet le double, 1.2 un peu plus, etc. Testez, mais n'utilisez pas de nombres très grands comme 5, 10 etc.
Là dans la section specialTextures vous pouvez définir la texture de la fumée qui sera utilisée dans le paramètre particleSystemSmoke1.
[specialTextures]
particleSystemSmoke1=ParticleCloudWhite.png
Certaines nouvelles commandes acceptent la personnalisation de la couleur. Le moteur utilise des couleurs au format RGBA avec des valeurs de 0 (nul) à 1 (couleur totale).
Exemples :
colorR=1
colorG=0
colorB=0
colorA=1
La couleur ci-dessus devient rouge. Si vous laissez le G à 1 et le R et B à 0, ça devient vert. Si vous laissez le B à 1 et le R et G à 0, ça devient bleu. À partir de là vous pouvez mélanger les valeurs pour arriver à la couleur désirée.
En appuyant sur C ou en cliquant sur l'icône des caméras de commande sur Android, le jeu change la vision focalisée sur des zones du tableau de bord où le joueur peut cliquer sur les boutons.
Ces positions de caméras sont identifiées par la commande command_camera_ suivie d'un nombre incrémental pour chaque position.
[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
Peuvent avoir un nombre illimité de ces caméras (utilisez command_camera_3, etc). C'est assez long à configurer, vous aurez besoin de beaucoup de patience. C'est une chose optionnelle mais souhaitable.
Le système de climatisation a des configurations éparpillées dans plusieurs fichiers. Le contrôle de la climatisation est positionné dans le fichier principal du bus.
[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
Souligné pour le enabled=1. Si on laisse à 0 il sera désactivé.
Les deux derniers définissent la couleur des points de l'écran. Différent de l'écran de la caméra de recul, celui-ci n'a pas besoin d'un plan, le système le génère dynamiquement.

Au-dessus des boutons de climatisation allumée et ventilateur forcé, prenez deux autres coordonnées pour de petites lumières qui resteront allumées quand ces boutons sont activés. Ces lumières seront définies dans le fichier des lumières (lights), ainsi :
[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 : Lumière du bouton de l'air allumé.air_conditioner_fan_1 : Lumière du bouton du ventilateur forcé.Dans le fichier des sons (sounds) :
[airConditioningSlow]
file=sounds/airConditioningSlow.wav
...
[airConditioningFast]
file=sounds/airConditioningFast.wav
...
_airconditioner_button1_ : bouton allumer/éteindre_airconditioner_button2_ : bouton ventilateur forcé_airconditioner_down_ : bouton pour diminuer la température_airconditioner_up_ : bouton pour augmenter la températureLes reflets dans Proton sont définis dans le fichier de configuration (.bus), où vous modifiez les paramètres metallic et glossiness.
//reflets du latéral
[ref001]
metallic=0.4
glossiness=0.8
//reflets du masque
[ref002]
metallic=1
glossiness=1

Les noms des pièces qui utiliseront lesdits reflets doivent avoir leur identifiant utilisant le _, par exemple, _ref001_. Ex : _ref001_skin001_carrosserie.
Si vous voulez utiliser les reflets sur les vitres, définissez les vitres de cette manière (il y a une limite de dix pour l'instant) :
[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

Ensuite nommez la pièce dans le 3D avec le nom _glass001_ etc.
Si vous laissez enabled=0 la vitre perd le reflet, revenant à utiliser l'ancien mode.
IMPORTANT : sur les pièces de vitre avec pluie, n'utilisez pas le reflet ! Il doit être utilisé seulement sur les vitres normales. Les vitres avec pluie doivent utiliser le _transparent_.
Certains bus modernes ont un panneau électronique avec des boutons doux (Multiplex).

Les textures sont définies là dans la section specialTextures :
[specialTextures]
multiplexOff=MultiTextura.png
multiplexOn=MultiTextura.png
multiplexActive=MultiTextura_ON.png
Pour faciliter, il est possible de placer les deux pièces des manuels et automatiques, et le jeu alternera l'affichage selon la sélection du joueur. Il suffit de nommer les pièces avec les noms appropriés.
Dans le cas de la boîte automatique, ne sont pas supportés ceux de Scania qui ont 123DNR, l'actif sera le 3.

Fouillez et explorez les mods d'exemple pour comprendre, s'il vous plaît.
_anim001_on, _click001_on..3ds pour éviter les bugs.