Actualizado con la v252 - Abril de 2020 Por Marcos Elias
¡La fase 2 del sistema de mods de mapas de Proton Bus permite tener pasajeros, tráfico y otras cosas más en el juego! Esto lo eleva a otro nivel, literalmente se puede separar el Proton antes y después de esta característica. ¡Es casi como un juego nuevo!
Aviso: Debido a cuestiones de tiempo, no es posible dar soporte individual en el proceso de conversión y edición. Recomendamos intentar por usted mismo, viendo cómo se hicieron los otros mapas y explorando las estructuras de los archivos. Prefiera publicar dudas y problemas relacionados en los grupos del juego en Facebook, así las soluciones atienden a todos, y también otros productores de mods pueden ayudarle.
Si aún no está suscrito, entre al canal del productor: www.youtube.com/marquinhosxp. Algunos videos y tutoriales se publican allí.
Página oficial de PBSU en Facebook: https://www.facebook.com/protonbusoficial Y de PBSR: https://www.facebook.com/protonbusrod.oficial/
Grupo exclusivo para creadores de mods: https://www.facebook.com/groups/pbsmods/ ¡Por favor, evite entrar en este si es solo jugador, para no saturar con publicaciones fuera del tema (que serán eliminadas)!
Grupos para usuarios: En estos sí, publicaciones libres de capturas de pantalla, consejos, videos, tutoriales diversos, etc., desde el punto de vista de los jugadores:
Consejo de un buen sitio de donde obtener texturas para los mods: http://www.textures.com
Antes de iniciar un mapa en la fase 2, es necesario haber dominado la producción del nivel básico para la fase 1. Si aún no tiene familiaridad, no se preocupe, es posible seguir con esta guía acompañando el mapa de ejemplo. El mayor requisito es tener conocimientos básicos de Blender, pues usaremos este para exportar los mapas.
La documentación antigua referente a la fase 1 está aquí, para mapas: http://blog.protonbus.com.br/2019/09/experimental-mods-de-mapas-no-pbs.html
Y para autobuses: http://blog.protonbus.com.br/2018/09/primeira-fase-do-sistema-de-mods-de.html
¡Siempre es bueno estar con la versión más reciente del juego! Las antiguas ya no son soportadas, la beta está en constante evolución, así que siempre consideramos la más reciente. Puede encontrar las compilaciones más recientes en http://pbsu.busmods.com para el urbano y http://pbsr.busmods.com para el de carretera.
Básicamente usamos Blender 2.79 para producir el escenario, exportamos el modelo en formato 3ds y creamos la estructura de carpetas y archivos para el sistema de Proton Bus.
IMPORTANTE: ¡USE BLENDER 2.79! El exportador necesario para el formato actual del juego no funciona con Blender 2.8, aparentemente fue descontinuado y nadie hasta hoy lo actualizó. Quién sabe si en el futuro vuelva a funcionar, hay gente intentándolo.
Puede descargar Blender 2.79 aquí: https://download.blender.org/release/Blender2.79/ La versión más reciente normalmente es la que lleva una “b” en el nombre. La plataforma es indiferente, dependerá de su sistema (Windows, Linux o Mac) y arquitectura (32 o 64 bits).
Si ya inició el mapa en el 2.8, la recomendación sería exportar a algún formato intermedio que el 2.79 pueda abrir y entonces exportar a partir de él para el juego.
IMPORTANTE: ¡MODIFIQUE EL EXPORTADOR DE 3DS PARA PROTON! El exportador estándar de 3ds de Blender trunca los nombres de los objetos y de las texturas en 12 caracteres. Normalmente necesitaremos más que eso para evitar errores en los nombres de algunas piezas y/o en las texturas.
Descarga del plugin de Blender alterado para exportar (archivo para Blender 2.79): http://proton.viamep.com/coisas/export_3ds_protonbus_blender279.zip
TUTORIAL DE CÓMO ALTERAR EL PLUGIN: https://youtu.be/0EokFmSjGdA
Si prefiere, en vez de descargar este, altere el archivo export_3ds.py de la carpeta scripts\addons\io_scene_3ds de su Blender. Busque [:12] y cambie el 12 por un número mucho mayor, como 999. Es el límite de caracteres. Sin esto la exportación para el juego puede fallar.
CONSEJO: AL DESCARGAR BLENDER PUEDE OPTAR POR LAS VERSIONES “PORTABLE” EN ZIP, PARA MANTENER VARIAS VERSIONES AL MISMO TIEMPO.
El mapa en Proton se compone de varios archivos txt (de texto puro), y algunas carpetas. La estructura primaria esencial es un txt de definición de mapa y una carpeta, ambos quedando dentro de la carpeta maps, que a su vez queda en la carpeta de mods del juego.
Ejemplo de estructura en PC:

El txt de definición del mapa debe terminar en .map.txt (ej: Estrada Longa.map.txt). ¡Debe ser un nombre único!
IMPORTANTE: ¡JAMÁS USE ACENTOS, CE-CEDILLA O CARACTERES ESPECIALES EN LOS NOMBRES DE ARCHIVOS DE LOS MODS!
Dentro de este txt tendremos la estructura básica:
[map]
baseDir=Estrada Longe
; La carpeta base del mapa, que queda en maps junto al .map.txt
modelsDir=Rota 1
; La carpeta de los modelos, que queda dentro de la carpeta tiles
textures=textures
; La carpeta de las texturas
mapModVersion=2
; ¡Utilice el número 2 en la Fase 2!
preview=preview.png
; Imagen de la pantalla de selección (16:9, ej: 640x360)
Dentro de la carpeta base del mapa deben existir otras carpetas:

dest: Almacena letreros y placas.skins: Almacena las pinturas de los autobuses del mapa (dentro de skins/0/pbc).textures: Almacena las texturas. ¡Evite JPG, use PNG!tiles: Debe tener este nombre obligatoriamente. Dentro de ella queda la carpeta de modelos (modelsDir).IMPORTANTE: ¡LOS MODS DE MAPAS DE PROTON BUS SE CARGAN POR COMPLETO! NO PUEDEN SER MUY PESADOS. CASO VAYA A HACER VARIAS LÍNEAS LARGAS, DIVÍDALAS EN PARTES.
Dentro de la carpeta definida en modelsDir, quedan los archivos exportados .3ds y configuraciones:

Estructura interna de la carpeta de modelos:

aipeople: Configuraciones de los peatones.aitrains: Configuraciones de los trenes.aivehicles: Configuraciones del tráfico.busstops: Configuraciones de las paradas de autobús.entrypoints.txt: Configuraciones avanzadas de los puntos de entrada.entrypoints_list.txt: Lista simple de los puntos de entrada.IMPORTANTE: ¡LOS MODS NO ESTÁN PROTEGIDOS! TÉCNICAMENTE NINGÚN JUEGO LO ESTÁ. LA ÚNICA FORMA DE NO TENER SU MOD EDITADO O FILTRADO ES NO LANZÁNDOLO.
Los puntos de entrada definen dónde aparece el autobús al iniciar el juego. Deben tener nombres únicos (ej: 351F-10 TP, Garagem Central).
IMPORTANTE: ¡JAMÁS USE ACENTOS O CARACTERES ESPECIALES EN ESTOS NOMBRES! NO USE BARRAS TAMPOCO.
Lista simple, un nombre por línea.

Define la posición y rotación física en el mapa.

Recuerde: En Blender Y es frente/atrás y Z es altura. En Unity (juego), Y es altura y Z es frente/atrás. ¡Invierta Y y Z al copiar coordenadas!
Para descubrir las coordenadas, use un objeto Empty en Blender:

En la carpeta dest, cree carpetas con EXACTAMENTE el mismo nombre de los entrypoints definidos en el txt.

Dentro de cada carpeta de destino quedan las imágenes:

IMPORTANTE: ¡EVITE IMÁGENES MAYORES QUE 2048 PÍXELES PARA CELULARES!
Nombres de archivos sugeridos para letreros:
1.png, 2.png, 3.png (Letreros electrónicos 1024x128)capelinhaDigital.png, capelinhaPVC.png (256x128)lonaDestino.png, lonaLinha.png (Letreros de lona)placa1.png, placa2.png, placa3.png (Placas laterales y frontales)Cada parada debe tener un nombre único en el 3D (ej: zzPonto1).
La parada consiste en:
nombredelaparada_trigger.nombredelaparada.000, nombredelaparada.001, etc.
CONSEJO: Use planos simples para los pasajeros para ahorrar polígonos.
Trigger correcto:

Ejemplo de trigger bien posicionado:

Ejemplo de trigger mal posicionado (¡no puede!):

Superpuestos (¡no puede!):

Correcto en paradas opuestas:

Visualización en el Debug:

Cree un txt en la carpeta busstops con el mismo nombre de la parada.

[busstop]
name=Parada de la Plaza
isLeft=0
paxAmount=15
[from_3d]
readFrom3D=1
prefix=zzPonto1
maxPathsToCheck=30
defPaxRotY=90
prefix: Debe coincidir exactamente con el nombre usado en el 3D (antes del .000).defPaxRotY: Rotación estándar de los pasajeros (pruebe 0, 90, 180, -90).Funciona similar a las paradas: una secuencia de objetos definiendo un camino (path).
Ejemplo: xxCalcada1.000, xxCalcada1.001, etc.

Cree un txt en la carpeta aipeople:

[automatic_setup]
enabled=1
loop=0
reverse=0
[defaults]
isSpawner=1
spawnInterval=5
allowBicycle=0
loop=1: El último punto conecta al primero (circular).loop=0: El camino termina en el último punto (lineal).¡Simplemente igual a los peatones! Carpeta aivehicles.

isBusSpawner=1: Para hacer aparecer autobuses.spawnInterval: Aumente para reducir el tráfico.speedMultiplier: Altere la velocidad (ej: 0.5 mitad, 2 doble).Coloque las skins (PNG) en skins/0/pbc. El juego elige aleatoriamente.
Base de skin del PBC: http://omsi.viamep.com/proton/base-skins-pbc-protonbussimulator.zip
Misma lógica, carpeta aitrains.
Recomendación: isSpawner=0 en defaults, y defina spawners manuales espaciados.

randomTimeToWaitAtStart=1: Comienza en tiempo aleatorio.spawnTimeInterval: Intervalo entre trenes (ej: 120 segundos).IMPORTANTE: ¡TRENES NO PARAN! ELLOS ATROPELLAN TODO. NO HAGA PASOS A NIVEL.
_transparent_ en el nombre del objeto (ej: grade_transparent_)._gencol_ para generar colisionador automático (calles, aceras). ¡Úselo con moderación!_gencol_invisible_ (ej: barreira_gencol_invisible_)._emissive_ para objetos siempre encendidos._low_speed_zone_ para terminales (evita quejas).
_force_exit_ cerca de la parada final.
_det1.3ds (ej: arvores_det1.3ds). Solo carga si el usuario activa "Detalles Extras".Para evitar texturas parpadeando (z-fighting/flickering) en el suelo, cree un archivo .config.txt junto a la textura.
Ej: asfalto.png.config.txt.


_gencol_ solo en el suelo y paredes principales.¡Eso es todo por ahora! ¡Buena diversión!