📚 Docs

Mods de Cartes : Phase 2

Mis à jour avec la v252 - Avril 2020 Par Marcos Elias

Introduction

La phase 2 du système de mods de cartes de Proton Bus permet d'avoir des passagers, du trafic et d'autres choses en plus dans le jeu ! Cela l'élève à un autre niveau, on peut littéralement séparer Proton avant et après cette fonctionnalité. C'est presque comme un nouveau jeu !

Avertissement : En raison de contraintes de temps, il n'est pas possible de fournir un support individuel dans le processus de conversion et d'édition. Nous vous recommandons d'essayer par vous-même, de voir comment les autres cartes ont été faites et d'explorer les structures des fichiers. Préférez poster vos questions et problèmes liés dans les groupes du jeu sur Facebook, ainsi les solutions profitent à tous, et d'autres producteurs de mods peuvent aussi vous aider.

Si vous n'êtes pas encore abonné, rejoignez la chaîne du producteur : www.youtube.com/marquinhosxp. Quelques vidéos et tutoriels y sont postés.

Page officielle PBSU sur Facebook : https://www.facebook.com/protonbusoficial Et PBSR : https://www.facebook.com/protonbusrod.oficial/

Groupes sur Facebook

Groupe exclusif pour les créateurs de mods : https://www.facebook.com/groups/pbsmods/ Veuillez éviter de rejoindre celui-ci si vous êtes juste un joueur, pour ne pas encombrer avec des publications hors sujet (qui seront supprimées) !

Groupes pour les utilisateurs : Dans ceux-ci, publications libres de captures d'écran, astuces, vidéos, tutoriels divers, etc., du point de vue des joueurs :

Astuce pour un bon site où obtenir des textures pour les mods : http://www.textures.com


Remarques concernant la phase 1

Avant de commencer une carte dans la phase 2, il est nécessaire d'avoir maîtrisé la production du niveau de base pour la phase 1. Si vous n'êtes pas encore familier, ne vous inquiétez pas, il est possible de suivre ce guide en accompagnant la carte d'exemple. La plus grande exigence est d'avoir des connaissances de base en Blender, car nous l'utiliserons pour exporter les cartes.

L'ancienne documentation concernant la phase 1 est ici, pour les cartes : http://blog.protonbus.com.br/2019/09/experimental-mods-de-mapas-no-pbs.html

Et pour les bus : http://blog.protonbus.com.br/2018/09/primeira-fase-do-sistema-de-mods-de.html

Il est toujours bon d'être sur la version la plus récente du jeu ! Les anciennes ne sont plus supportées, la bêta est en constante évolution, donc nous considérons toujours la plus récente. Vous pouvez trouver les compilations les plus récentes sur http://pbsu.busmods.com pour l'urbain et http://pbsr.busmods.com pour le routier.

Fondamentalement, nous utilisons Blender 2.79 pour produire le décor, exporter le modèle au format 3ds et créer la structure des dossiers et fichiers pour le système de Proton Bus.

IMPORTANT : UTILISEZ BLENDER 2.79 ! L'exportateur nécessaire pour le format actuel du jeu ne fonctionne pas avec Blender 2.8, apparemment il a été interrompu et personne ne l'a mis à jour à ce jour. Peut-être qu'à l'avenir il fonctionnera à nouveau, des gens essaient.

Vous pouvez télécharger Blender 2.79 ici : https://download.blender.org/release/Blender2.79/ La version la plus récente est généralement celle qui porte un « b » dans le nom. La plateforme est indifférente, cela dépendra de votre système (Windows, Linux ou Mac) et architecture (32 ou 64 bits).

Si vous avez déjà commencé la carte dans la 2.8, la recommandation serait d'exporter vers un format intermédiaire que la 2.79 peut ouvrir et ensuite exporter à partir de celui-ci pour le jeu.

IMPORTANT : MODIFIEZ L'EXPORTATEUR DE 3DS POUR PROTON ! L'exportateur 3ds par défaut de Blender tronque les noms des objets et des textures à 12 caractères. Nous aurons normalement besoin de plus que cela pour éviter les erreurs dans les noms de certaines pièces et/ou textures.

Téléchargement du plugin Blender modifié pour l'exportation (fichier pour Blender 2.79) : http://proton.viamep.com/coisas/export_3ds_protonbus_blender279.zip

TUTORIEL SUR COMMENT CHANGER LE PLUGIN : https://youtu.be/0EokFmSjGdA

Si vous préférez, au lieu de télécharger celui-ci, modifiez le fichier export_3ds.py du dossier scripts\addons\io_scene_3ds de votre Blender. Cherchez [:12] et changez le 12 par un nombre beaucoup plus grand, comme 999. C'est la limite de caractères. Sans cela, l'exportation vers le jeu peut échouer.

ASTUCE : EN TÉLÉCHARGEANT BLENDER VOUS POUVEZ OPTER POUR LES VERSIONS « PORTABLE » EN ZIP, POUR GARDER PLUSIEURS VERSIONS EN MÊME TEMPS.


La structure des fichiers du mod de carte

La carte dans Proton est composée de plusieurs fichiers txt (texte brut), et quelques dossiers. La structure primaire essentielle est un txt de définition de carte et un dossier, les deux résidant dans le dossier maps, qui à son tour réside dans le dossier des mods du jeu.

Exemple de structure sur PC :

Structure des Dossiers

Le txt de définition de la carte doit se terminer par .map.txt (ex : Estrada Longa.map.txt). Ce doit être un nom unique !

IMPORTANT : N'UTILISEZ JAMAIS D'ACCENTS, CÉDILLES OU CARACTÈRES SPÉCIAUX DANS LES NOMS DE FICHIERS DES MODS !

À l'intérieur de ce txt, nous aurons la structure de base :

[map]
baseDir=Estrada Longe 
; Le dossier de base de la carte, qui se trouve dans maps avec le .map.txt

modelsDir=Rota 1 
; Le dossier des modèles, qui se trouve à l'intérieur du dossier tiles

textures=textures 
; Le dossier des textures

mapModVersion=2 
; Utilisez le numéro 2 dans la Phase 2 !

preview=preview.png 
; Image de l'écran de sélection (16:9, ex : 640x360)

À l'intérieur du dossier de base de la carte, il doit y avoir d'autres dossiers :

Dossiers de Base

  • dest : Stocke les girouettes et plaques.
  • skins : Stocke les livrées des bus de la carte (dans skins/0/pbc).
  • textures : Stocke les textures. Évitez JPG, utilisez PNG !
  • tiles : Doit obligatoirement avoir ce nom. À l'intérieur se trouve le dossier des modèles (modelsDir).

IMPORTANT : LES MODS DE CARTES DE PROTON BUS SONT CHARGÉS EN ENTIER ! ILS NE PEUVENT PAS ÊTRE TROP LOURDS. SI VOUS ALLEZ FAIRE PLUSIEURS LONGUES LIGNES, DIVISEZ-LES EN PARTIES.

À l'intérieur du dossier défini dans modelsDir, se trouvent les fichiers exportés .3ds et les configurations :

Dossier Tiles

Structure interne du dossier des modèles :

Sous-dossiers Modèles

  • aipeople : Configurations des piétons.
  • aitrains : Configurations des trains.
  • aivehicles : Configurations du trafic.
  • busstops : Configurations des arrêts de bus.
  • entrypoints.txt : Configurations avancées des points d'entrée.
  • entrypoints_list.txt : Liste simple des points d'entrée.

IMPORTANT : LES MODS NE SONT PAS PROTÉGÉS ! TECHNIQUEMENT AUCUN JEU NE L'EST. LA SEULE FAÇON DE NE PAS AVOIR SON MOD ÉDITÉ OU FUITE EST DE NE PAS LE PUBLIER.


Configurer les points d'entrée

Les points d'entrée définissent où le bus apparaît au démarrage du jeu. Ils doivent avoir des noms uniques (ex : 351F-10 TP, Garage Central).

IMPORTANT : N'UTILISEZ JAMAIS D'ACCENTS OU CARACTÈRES SPÉCIAUX DANS CES NOMS ! N'UTILISEZ PAS DE BARRES NON PLUS.

entrypoints_list.txt

Liste simple, un nom par ligne.

Liste Entrypoints

entrypoints.txt

Définit la position et rotation physique sur la carte.

Configuration Entrypoints

Rappelez-vous : Dans Blender Y est avant/arrière et Z est hauteur. Dans Unity (jeu), Y est hauteur et Z est avant/arrière. Inversez Y et Z lors de la copie des coordonnées !

Pour découvrir les coordonnées, utilisez un objet Empty dans Blender :

Empty dans Blender

Girouettes et Destinations

Dans le dossier dest, créez des dossiers avec EXACTEMENT le même nom que les entrypoints définis dans le txt.

Dossier Dest

À l'intérieur de chaque dossier de destination se trouvent les images :

Images Destination

IMPORTANT : ÉVITEZ LES IMAGES DE PLUS DE 2048 PIXELS POUR MOBILES !

Noms de fichiers suggérés pour les girouettes :

  • 1.png, 2.png, 3.png (Girouettes électroniques 1024x128)
  • capelinhaDigital.png, capelinhaPVC.png (256x128)
  • lonaDestino.png, lonaLinha.png (Girouettes à rouleau)
  • placa1.png, placa2.png, placa3.png (Plaques latérales et frontales)

Configurer les passagers

Chaque arrêt doit avoir un nom unique en 3D (ex : zzPonto1).

Dans Blender (3D)

L'arrêt consiste en :

  1. Un cube invisible (trigger) appelé nomdelarret_trigger.
  2. De petits objets (plans/cubes) pour la position des passagers, appelés nomdelarret.000, nomdelarret.001, etc.

Arrêt dans Blender

ASTUCE : Utilisez des plans simples pour les passagers pour économiser des polygones.

Trigger correct :

Trigger Correct

Exemple de trigger bien positionné :

Trigger Exemple

Exemple de trigger mal positionné (interdit !) :

Trigger Faux

Superposés (interdit !) :

Trigger Superposé

Correct aux arrêts opposés :

Arrêts Opposés

Visualisation dans le Debug :

Mode Debug

Dans le fichier .txt (busstops)

Créez un txt dans le dossier busstops avec le même nom que l'arrêt.

Txt Busstop

[busstop]
name=Arrêt de la Place
isLeft=0
paxAmount=15

[from_3d]
readFrom3D=1
prefix=zzPonto1
maxPathsToCheck=30
defPaxRotY=90
  • prefix : Doit correspondre exactement au nom utilisé en 3D (avant le .000).
  • defPaxRotY : Rotation par défaut des passagers (testez 0, 90, 180, -90).

Configurer les piétons

Fonctionne de manière similaire aux arrêts : une séquence d'objets définissant un chemin (path). Exemple : xxCalcada1.000, xxCalcada1.001, etc.

Chemin Piétons Blender Piétons

Créez un txt dans le dossier aipeople :

Txt Piétons

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

[defaults]
isSpawner=1
spawnInterval=5
allowBicycle=0
  • loop=1 : Le dernier point se connecte au premier (circulaire).
  • loop=0 : Le chemin se termine au dernier point (linéaire).

Configurer les véhicules du trafic

Tout simplement comme les piétons ! Dossier aivehicles.

Txt Trafic

  • isBusSpawner=1 : Pour faire apparaître des bus.
  • spawnInterval : Augmentez pour réduire le trafic.
  • speedMultiplier : Modifiez la vitesse (ex : 0.5 moitié, 2 double).

Configurer les livrées des bus de la carte

Placez les skins (PNG) dans skins/0/pbc. Le jeu choisit aléatoirement. Base de skin du PBC : http://omsi.viamep.com/proton/base-skins-pbc-protonbussimulator.zip


Configurer les trains

Même logique, dossier aitrains. Recommandation : isSpawner=0 dans defaults, et définissez des spawners manuels espacés.

Txt Trains

  • randomTimeToWaitAtStart=1 : Démarre à un temps aléatoire.
  • spawnTimeInterval : Intervalle entre les trains (ex : 120 secondes).

IMPORTANT : LES TRAINS NE S'ARRÊTENT PAS ! ILS ÉCRASENT TOUT. NE FAITES PAS DE PASSAGES À NIVEAU.


Commandes et noms spéciaux dans les modèles 3D

  • Transparence : Utilisez _transparent_ dans le nom de l'objet (ex : grade_transparent_).
  • Collisionneurs : Utilisez _gencol_ pour générer un collisionneur automatique (rues, trottoirs). Utilisez avec modération !
  • Collisionneur Invisible : Utilisez _gencol_invisible_ (ex : barreira_gencol_invisible_).
  • Emissive : Utilisez _emissive_ pour les objets toujours allumés.
  • Zone de Basse Vitesse : Objet _low_speed_zone_ pour les terminaux (évite les plaintes).

Low Speed Zone

  • Forcer Sortie : Objet _force_exit_ près de l'arrêt final.

Force Exit

  • Détails Supplémentaires : Terminez le fichier 3DS avec _det1.3ds (ex : arvores_det1.3ds). Se charge seulement si l'utilisateur active "Détails Supplémentaires".

Configuration des textures scintillantes

Pour éviter les textures clignotantes (z-fighting/flickering) au sol, créez un fichier .config.txt à côté de la texture. Ex : asphalte.png.config.txt.

Config Txt


Extras - Conseils d'optimisation

  • Petites Textures : Utilisez 256x256 ou 512x512 pour les textures répétitives.
  • MAX 2048px : N'utilisez JAMAIS de textures supérieures à 2048px pour mobiles !

Avertissement Texture

  • Collisionneurs : Évitez les collisionneurs complexes. Utilisez _gencol_ uniquement sur le sol et les murs principaux.
  • Matériaux : Évitez beaucoup de matériaux sur le même objet.
  • Combinez les Objets : Combinez les arbres proches avec le même matériau pour réduire les draw calls.

C'est tout pour l'instant ! Amusez-vous bien !