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.
[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.
[config]
useStandardShader=1
0 = desactivado1 = activadoEsta 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.
[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.
[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

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

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

air_conditioner_on_1: Luz del botón del aire encendido.air_conditioner_fan_1: Luz del botón del ventilador forzado.En el archivo de sonidos (sounds):
[airConditioningSlow]
file=sounds/airConditioningSlow.wav
...
[airConditioningFast]
file=sounds/airConditioningFast.wav
...
_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 temperaturaLos 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

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

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_.
Algunos autobuses modernos tienen un panel electrónico con botones suaves (Multiplex).

Las texturas quedan definidas allá en la sección specialTextures:
[specialTextures]
multiplexOff=MultiTextura.png
multiplexOn=MultiTextura.png
multiplexActive=MultiTextura_ON.png
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.

Husmee y explore los mods de ejemplo para ir entendiendo, por favor.
_anim001_on, _click001_on..3ds para evitar bugs.