📚 Docs

Mods de Ônibus: Fase 2

Preparação da fase 2 dos mods de ônibus no Proton Bus Simulator

Este documento é um rascunho. Vai demorar um pouco para ficar mais abrangente. Por favor, tenha paciência, lembre-se de que este é um projeto indie feito no tempo livre. A melhor forma de entender como os mods são feitos é fuçando nos mods de exemplo. Boa parte dos nossos mods têm o 3D livre para edição e análise. Eles serão postados no site: www.busmods.com

A fase 2 do sistema de mods de ônibus traz várias animações, que anteriormente estavam disponíveis apenas nos ônibus nativos. A maioria das coisas exige apenas colocar novas peças com nomes específicos no 3D. Algumas outras propriedades e comandos foram adicionados. Os mais significantes são explicados neste documento, enquanto os mais simples podem ser explorados diretamente nos mods de exemplo.

Para prosseguir com este guia você já precisa saber converter os mods na fase 1, senão poderá ficar sem entender as coisas. Se estiver iniciando do zero, por favor, veja os tutoriais da fase 1: http://blog.protonbus.com.br/2018/09/primeira-fase-do-sistema-de-mods-de.html

Salvo onde indicado o contrário (portas, sons, luzes etc), a maioria das configurações são feitas no arquivo principal do ônibus.

Versão e Tela de Seleção do Mod

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

Altere o item busModVersion para 2. Isto será útil no futuro, quando a fase 3 suportar novas coisas… O jogo atual lerá isso para emitir um aviso para os jogadores de que o mod não é suportado (isso já ocorrerá se você testar com um 3 ou 5 ou qualquer número maior ali).

O item preview indica uma imagem para aparecer na tela de seleção. A imagem fica na pasta base do ônibus (a baseDir), não na textures. Se esse item for omitido, o jogo procurará automaticamente uma imagem chamada preview.png.

Prefira usar a proporção 16:9 na imagem, como por exemplo, 1280x720 ou metade, para não ficar um arquivo grande: 640x360.


Standard Shader

[config]
useStandardShader=1
  • 0 = desativado
  • 1 = ativado

Esta opção força o uso do shader atual da Unity, o Standard Shader. O interior do ônibus pode ficar um pouco mais bonito, porém talvez fique mais pesado nos celulares. É uma opção que poderá ser removida se ficar pesada. Deixando em 0, ou omitindo, fica o padrão anterior (o shader Legacy/Diffuse) com cores mais lavadas e nenhum brilho/specular.

Como é uma opção experimental, ainda não é possível alterar os parâmetros do metallic, specular etc, eles ficarão no padrão 0.5.


Câmera de Ré

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

Comando similar ao espelho, só que no caso é uma câmera virada para trás, posicionada em algum lugar na traseira do ônibus. Pode ser levemente rotacionada para baixo no x. Note a rotação em 180 graus no eixo vertical (Y na Unity, Z no Blender), para ficar virada para trás.

O monitor da câmera de ré é basicamente um plano, posicionado onde fica a tela. Ele ficará desativado no jogo, só aparecendo quando estiver na ré. Tem que ter um fundo embaixo dele, para não ficar um buraco enquanto não estiver na ré. O plano precisa ficar um pouco acima do fundo, para não ficar piscando (o tradicional Z-fighting nos games).

A peça da tela deve se chamar: _reverse_camera_screen_

Ela tem que estar mapeada na textura inteira no UV, mas não precisa ter material nem textura associada. Diferente dos espelhos, não use o mirror no x no mapeamento, visto que a câmera não gera imagem invertida.


Fumaça do Escapamento

[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

Fumaça

O controle do escape ganhou novos parâmetros: o multiplier é um multiplicador de intensidade, para emitir mais ou menos partículas. Não exagere no valor para mais, pois pode pesar para os jogadores. Colocando 0.5 emite metade do que emitiria, colocando 2 emite o dobro, 1.2 um pouco mais, etc. Vá testando, mas não use números muito grandes como 5, 10 etc.

Lá na seção specialTextures você pode definir a textura da fumaça que será usada no parâmetro particleSystemSmoke1.

[specialTextures]
particleSystemSmoke1=ParticleCloudWhite.png

Cores em Várias Configurações

Alguns comandos novos aceitam a personalização da cor. A engine usa cores no formato RGBA com valores de 0 (nulo) a 1 (cor total).

Exemplos:

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

A cor acima fica vermelha. Se deixar o G em 1 e o R e B em 0, fica verde. Se deixar o B em 1 e o R e G em 0, fica azul. A partir daí você pode ir misturando valores para chegar na cor desejada.


Câmeras de Comandos

Ao apertar C ou clicar no ícone das câmeras de comando no Android, o jogo altera a visão focada em áreas do painel onde o jogador pode clicar nos botões.

Essas posições de câmeras são identificadas pelo comando command_camera_ seguido de um número incremental para cada posição.

[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

Podem ter ilimitadas dessas câmeras (use command_camera_3, etc). É bem demorado configurar elas, você precisará de bastante paciência. É uma coisa opcional porém desejável.


Ar Condicionado

O sistema de ar condicionado tem configurações espalhadas em vários arquivos. O controle do ar condicionado é posicionado no arquivo principal do ônibus.

[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

Destaque para o enabled=1. Se deixar em 0 ele ficará desativado. Os dois últimos definem a cor dos pontos da tela. Diferente da tela da câmera de ré, esta não precisa de um plano, o sistema gera ela dinamicamente.

Luz Ar

Acima dos botões de ar ligado e ventilador forçado, pegue mais duas coordenadas para pequenas luzinhas que ficarão acesas quando estes botões forem ativados. Estas luzes serão definidas no arquivo das luzes (lights), assim:

[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 Ar 2

  • air_conditioner_on_1: Luz do botão do ar ligado.
  • air_conditioner_fan_1: Luz do botão do ventilador forçado.

Som do Ar Condicionado

No arquivo de sons (sounds):

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

Peças no 3D

  • _airconditioner_button1_: botão de ligar/desligar
  • _airconditioner_button2_: botão do ventilador forçado
  • _airconditioner_down_: botão para diminuir temperatura
  • _airconditioner_up_: botão para aumentar temperatura

Reflexos

Os reflexos no Proton são definidos no arquivo de configuração (.bus), onde você altera os parâmetros metallic e glossiness.

//reflexos da lateral
[ref001]
metallic=0.4
glossiness=0.8

//reflexos da máscara
[ref002]
metallic=1
glossiness=1

Reflexo

Os nomes das peças que usarão os referidos reflexos devem ter o identificador deles usando o _, por exemplo, _ref001_. Ex: _ref001_skin001_carroceria.


Vidros com Reflexos

Se quiser usar os reflexos em vidros, defina os vidros desta forma (há um limite de dez por enquanto):

[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

Vidro

Depois nomeie a peça no 3D com o nome _glass001_ etc. Se deixar enabled=0 o vidro perde o reflexo, voltando a usar o modo antigo.

IMPORTANTE: nas peças de vidro com chuva, não utilize o reflexo! Ele deve ser usado somente nos vidros normais. Os vidros com chuva devem usar o _transparent_.


Multiplex

Alguns ônibus modernos têm um painel eletrônico com botões suaves (Multiplex).

Multiplex

As texturas ficam definidas lá na seção specialTextures:

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

Câmbio

Para facilitar, é possível colocar ambas as peças dos manuais e automáticos, e o jogo alternará a exibição conforme a seleção do jogador. Basta nomear as peças com os nomes adequados.

No caso do câmbio automático, não são suportados aqueles Scania que têm 123DNR, o ativo será o 3.


Luzes das Portas

Luz Porta

Fuce e explore os mods de exemplo para ir entendendo, por favor.


Outros Tópicos

  • Limpadores: Animações melhoradas.
  • Otimizadores: Peças escondidas.
  • Letreiros Deslizantes: Suporte básico.
  • Animações On/Off: _anim001_on, _click001_on.
  • Áudio: EVITAR ÁUDIO EM MP3! Use WAV.
  • Texturas: Evite texturas maiores que 2048px.
  • Passageiros: Mantenha todos os paths de passageiros no mesmo arquivo .3ds para evitar bugs.