📚 Docs

Mods de Bus : Phase 2

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.

Version et Écran de Sélection du Mod

[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.


Standard Shader

[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.


Caméra de Recul

[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.


Fumée d'Échappement

[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

Fumée

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

Couleurs dans Diverses Configurations

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.


Caméras de Commandes

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.


Climatisation

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.

Lumière Air

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

Lumière Air 2

  • air_conditioner_on_1 : Lumière du bouton de l'air allumé.
  • air_conditioner_fan_1 : Lumière du bouton du ventilateur forcé.

Son de la Climatisation

Dans le fichier des sons (sounds) :

[airConditioningSlow]
file=sounds/airConditioningSlow.wav
...
[airConditioningFast]
file=sounds/airConditioningFast.wav
...

Pièces dans le 3D

  • _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érature

Reflets

Les 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

Reflet

Les noms des pièces qui utiliseront lesdits reflets doivent avoir leur identifiant utilisant le _, par exemple, _ref001_. Ex : _ref001_skin001_carrosserie.


Vitres avec Reflets

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

Vitre

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_.


Multiplex

Certains bus modernes ont un panneau électronique avec des boutons doux (Multiplex).

Multiplex

Les textures sont définies là dans la section specialTextures :

[specialTextures]
multiplexOff=MultiTextura.png
multiplexOn=MultiTextura.png
multiplexActive=MultiTextura_ON.png

Boîte de Vitesses

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.


Lumières des Portes

Lumière Porte

Fouillez et explorez les mods d'exemple pour comprendre, s'il vous plaît.


Autres Sujets

  • Essuie-glaces : Animations améliorées.
  • Optimiseurs : Pièces cachées.
  • Panneaux Défilants : Support basique.
  • Animations On/Off : _anim001_on, _click001_on.
  • Audio : ÉVITER L'AUDIO EN MP3 ! Utilisez WAV.
  • Textures : Évitez les textures plus grandes que 2048px.
  • Passagers : Gardez tous les chemins de passagers dans le même fichier .3ds pour éviter les bugs.