📚 Docs

Mods de Autobuses: Fase 2

Preparación de la fase 2 de los mods de autobuses en Proton Bus Simulator

Este documento es un borrador. Tardará un poco en ser más completo. Por favor, tenga paciencia, recuerde que este es un proyecto indie hecho en tiempo libre. La mejor forma de entender cómo se hacen los mods es husmeando en los mods de ejemplo. Buena parte de nuestros mods tienen el 3D libre para edición y análisis. Serán publicados en el sitio: www.busmods.com

La fase 2 del sistema de mods de autobuses trae varias animaciones, que anteriormente estaban disponibles solo en los autobuses nativos. La mayoría de las cosas exige solo colocar nuevas piezas con nombres específicos en el 3D. Algunas otras propiedades y comandos fueron añadidos. Los más significantes se explican en este documento, mientras que los más simples pueden ser explorados directamente en los mods de ejemplo.

Para continuar con esta guía usted ya necesita saber convertir los mods en la fase 1, si no podría terminar sin entender las cosas. Si está iniciando desde cero, por favor, vea los tutoriales de la fase 1: http://blog.protonbus.com.br/2018/09/primeira-fase-do-sistema-de-mods-de.html

Salvo donde se indique lo contrario (puertas, sonidos, luces etc), la mayoría de las configuraciones se hacen en el archivo principal del autobús.

Versión y Pantalla de Selección del Mod

[mod]
name=MiBRTS
busModVersion=2
preview=preview.png

Altere el ítem busModVersion a 2. Esto será útil en el futuro, cuando la fase 3 soporte nuevas cosas... El juego actual leerá esto para emitir un aviso a los jugadores de que el mod no es soportado (esto ya ocurrirá si usted prueba con un 3 o 5 o cualquier número mayor allí).

El ítem preview indica una imagen para aparecer en la pantalla de selección. La imagen queda en la carpeta base del autobús (la baseDir), no en textures. Si ese ítem es omitido, el juego buscará automáticamente una imagen llamada preview.png.

Prefiera usar la proporción 16:9 en la imagen, como por ejemplo, 1280x720 o la mitad, para no quedar un archivo grande: 640x360.


Standard Shader

[config]
useStandardShader=1
  • 0 = desactivado
  • 1 = activado

Esta opción fuerza el uso del shader actual de Unity, el Standard Shader. El interior del autobús puede quedar un poco más bonito, aunque tal vez quede más pesado en los celulares. Es una opción que podrá ser removida si queda pesada. Dejando en 0, u omitiendo, queda el estándar anterior (el shader Legacy/Diffuse) con colores más lavados y ningún brillo/especular.

Como es una opción experimental, todavía no es posible alterar los parámetros de metallic, specular etc, quedarán en el estándar 0.5.


Cámara de Reversa

[reverseCamera]
posX=0
posY=3.22161
posZ=-6.11213
rotX=30
rotY=180
rotZ=0

Comando similar al espejo, solo que en este caso es una cámara mirando hacia atrás, posicionada en algún lugar en la trasera del autobús. Puede ser levemente rotada hacia abajo en el x. Note la rotación en 180 grados en el eje vertical (Y en Unity, Z en Blender), para quedar mirando hacia atrás.

El monitor de la cámara de reversa es básicamente un plano, posicionado donde queda la pantalla. Quedará desactivado en el juego, solo apareciendo cuando esté en reversa. Tiene que tener un fondo debajo de él, para no quedar un agujero mientras no esté en reversa. El plano necesita quedar un poco encima del fondo, para no quedar parpadeando (el tradicional Z-fighting en los juegos).

La pieza de la pantalla debe llamarse: _reverse_camera_screen_

Tiene que estar mapeada en la textura entera en el UV, pero no necesita tener material ni textura asociada. Diferente de los espejos, no use el mirror en el x en el mapeo, visto que la cámara no genera imagen invertida.


Humo del Escape

[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

Humo

El control del escape ganó nuevos parámetros: el multiplier es un multiplicador de intensidad, para emitir más o menos partículas. No exagere en el valor hacia arriba, pues puede pesar para los jugadores. Colocando 0.5 emite la mitad de lo que emitiría, colocando 2 emite el doble, 1.2 un poco más, etc. Vaya probando, pero no use números muy grandes como 5, 10 etc.

Allá en la sección specialTextures usted puede definir la textura del humo que será usada en el parámetro particleSystemSmoke1.

[specialTextures]
particleSystemSmoke1=ParticleCloudWhite.png

Colores en Varias Configuraciones

Algunos comandos nuevos aceptan la personalización del color. La engine usa colores en el formato RGBA con valores de 0 (nulo) a 1 (color total).

Ejemplos:

colorR=1
colorG=0
colorB=0
colorA=1

El color arriba queda rojo. Si deja el G en 1 y el R y B en 0, queda verde. Si deja el B en 1 y el R y G en 0, queda azul. A partir de ahí usted puede ir mezclando valores para llegar al color deseado.


Cámaras de Comandos

Al presionar C o hacer clic en el icono de las cámaras de comando en Android, el juego altera la visión enfocada en áreas del panel donde el jugador puede hacer clic en los botones.

Esas posiciones de cámaras son identificadas por el comando command_camera_ seguido de un número incremental para cada posición.

[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

Pueden tener ilimitadas de esas cámaras (use command_camera_3, etc). Es bastante demorado configurarlas, necesitará bastante paciencia. Es una cosa opcional pero deseable.


Aire Acondicionado

El sistema de aire acondicionado tiene configuraciones esparcidas en varios archivos. El control del aire acondicionado es posicionado en el archivo principal del autobús.

[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

Destacado para el enabled=1. Si deja en 0 quedará desactivado. Los dos últimos definen el color de los puntos de la pantalla. Diferente de la pantalla de la cámara de reversa, esta no necesita de un plano, el sistema la genera dinámicamente.

Luz Aire

Encima de los botones de aire encendido y ventilador forzado, tome más dos coordenadas para pequeñas lucecitas que quedarán encendidas cuando estos botones sean activados. Estas luces serán definidas en el archivo de las luces (lights), así:

[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

Luz Aire 2

  • air_conditioner_on_1: Luz del botón del aire encendido.
  • air_conditioner_fan_1: Luz del botón del ventilador forzado.

Sonido del Aire Acondicionado

En el archivo de sonidos (sounds):

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

Piezas en el 3D

  • _airconditioner_button1_: botón de encender/apagar
  • _airconditioner_button2_: botón del ventilador forzado
  • _airconditioner_down_: botón para disminuir temperatura
  • _airconditioner_up_: botón para aumentar temperatura

Reflejos

Los reflejos en Proton son definidos en el archivo de configuración (.bus), donde usted altera los parámetros metallic y glossiness.

//reflejos del lateral
[ref001]
metallic=0.4
glossiness=0.8

//reflejos de la máscara
[ref002]
metallic=1
glossiness=1

Reflejo

Los nombres de las piezas que usarán los referidos reflejos deben tener el identificador de ellos usando el _, por ejemplo, _ref001_. Ej: _ref001_skin001_carroceria.


Vidrios con Reflejos

Si quiere usar los reflejos en vidrios, defina los vidrios de esta forma (hay un límite de diez por ahora):

[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

Vidrio

Después nombre la pieza en el 3D con el nombre _glass001_ etc. Si deja enabled=0 el vidrio pierde el reflejo, volviendo a usar el modo antiguo.

IMPORTANTE: ¡en las piezas de vidrio con lluvia, no utilice el reflejo! Debe ser usado solamente en los vidrios normales. Los vidrios con lluvia deben usar el _transparent_.


Multiplex

Algunos autobuses modernos tienen un panel electrónico con botones suaves (Multiplex).

Multiplex

Las texturas quedan definidas allá en la sección specialTextures:

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

Cambio

Para facilitar, es posible colocar ambas piezas de los manuales y automáticos, y el juego alternará la exhibición conforme la selección del jugador. Basta nombrar las piezas con los nombres adecuados.

En el caso del cambio automático, no son soportados aquellos Scania que tienen 123DNR, el activo será el 3.


Luces de las Puertas

Luz Puerta

Husmee y explore los mods de ejemplo para ir entendiendo, por favor.


Otros Tópicos

  • Limpiadores: Animaciones mejoradas.
  • Optimizadores: Piezas escondidas.
  • Letreros Deslizantes: Soporte básico.
  • Animaciones On/Off: _anim001_on, _click001_on.
  • Audio: ¡EVITAR AUDIO EN MP3! Use WAV.
  • Texturas: Evite texturas mayores que 2048px.
  • Pasajeros: Mantenga todos los paths de pasajeros en el mismo archivo .3ds para evitar bugs.