Você está na página 1de 10

FASE 3.

1
Março de 2022

Definição da versão
A fase 3.1 precisa do parâmetro mapModVersion=3.1 na seção [map] do txt principal do mapa.
Sem isso os novos comandos serão ignorados para fins de otimização, já que não precisa buscar
pelos objetos das árvores se o mapa não for usar elas.
mapModVersion=3.1
Esta versão aceita este parâmetro useStandardShader com o valor 1 (ativado) ou 0 (desativado).
Com isso o gráfico fica mais bonito. Em alguma versão futura isso será o padrão para todos os
mapas e mods, mas vale a pena colocar caso queira testar desde já. A partir da v293 foi corrigido o
brilho excessivo que ficava nos objetos ao usar isso.
useStandardShader=1
De uns tempos pra cá o txt do mapa também aceita o parâmetro url, que pode indicar para o site do
autor. Ele será clicável na tela de seleção do mapa:
url=https://www.busmods.com
Árvores nativas
Para colocar as árvores nativas basta usar um objeto vazio para pegar a posição no 3D com o nome
_utree123_ trocando o 123 pelo número da ID da árvore desejada. Consulte a pasta com as fotos
das árvores no material de apoio para ver os números delas.
Sugerimos usar um triângulo para pegar as posições em vez de um cubo ou quadrado, pois fica
mais leve (apenas 3 vértices e um triângulo). Aparentemente funciona também com um vértice
sozinho, mas fica difícil de ver dentro do Blender.

Não tem problema deixar aqueles .0xx que o Blender adiciona ao duplicar. O que importa é ter o
_utree123_ no nome. Foi escolhido _utree em vez de _tree para evitar bugar algum mapa que
porventura possa usar objetos previamente nomeados assim.
As rotações das árvores serão aleatórias a cada carregamento: não é possível escolher uma
rotação individual pela complexidade de carregar os parâmetros para cada uma delas. Isso poderá
ser analisado futuramente (ou não). Então tanto faz a rotação dos objetos delas no 3D, não precisa
perder tempo rotacionando porque nessas versões não vai resolver.
Se lotar de árvores num mapa que já é pesado, vai pesar ainda mais! Prefira usar elas apenas
nas áreas próximas de onde o jogador passa. Não tente fazer uma floresta com todas elas (ou sim,
caso seu PC aguente e você goste do resultado… afinal não podemos limitar a criatividade de
ninguém haha).
Quanto menos variações de árvores usar, mais leve! Serão menos modelos e texturas carregados.
Se usar todas as árvores disponíveis talvez o mapa só seja carregado no PC e em celulares tops com
bastante RAM.
Estas árvores ficam mais leves do que se fossem feitas direto no 3D, pois são instanciadas dentro da
engine e não duplicadas. Naturalmente elas pesam mais do que as árvores com planos cruzados
simples que a maioria dos mapas leves usam.
Em versões futuras serão estudadas otimizações para as árvores, especialmente para desativar os
objetos mais distantes. Isso está sendo feito a partir de 500 metros da câmera atualmente. Se tiver
muitos milhares de árvores pode comprometer o desempenho devido as checagens de distância
constantes.
Não existe um valor máximo, vale testar e ver até que ponto os aparelhos atuais conseguem rodar.
Talvez deixar algumas nos detalhes extras possa ajudar.
Nessas primeiras versões não é possível alterar a escala delas. Será estudada uma forma para
resolver isso depois. Alguns modelos estão exageradamente grandes.
Materiais nativos
Ignore completamente o _asphalt1_, 2 e 3 exibido no teste anterior: a substituição do material será
feita de outra forma para melhorar a performance no carregamento. O modelo anterior faria
muitas verificações para cada um dos objetos. O atual fará uma só para cada textura, sendo muito
mais eficiente.
Para trocar uma textura pelo material nativo com alguns efeitos, crie um txt com o mesmo nome da
textura terminado em .config.txt na pasta das texturas, por exemplo:

Dentro desse arquivo a estrutura é a seguinte:


[config]
replaceMaterial=1
material=asphalt/asphalt011
keepTexture=1
replaceMaterial = 1 para ativar ou 0 para desativar, indicando que o jogo substituirá o material
desejado pelo material interno dele.
material = o nome interno do material. Para ver o nome do material desejado, consulte a pasta com
as fotos deles nos manuais de referência.
keepTexture = 1 para manter a textura original como definida no seu modelo 3D, ou 0 para usar a
textura original do material nativo. Caso queira usar as texturas nativas, deixe isso em 0. Pode ser
interessante usar 1 para trocar por suas próprias texturas com faixas, marcações, calçadas diferentes
etc.
Geralmente o nome do material será formado pela categoria (nome da pasta) + nome do material.
Por exemplo:
material=asphalt/asphalt011
material=sidewalks/paintedconcrete3
material=ground/coastal2
O nome do material precisa ser exatamente como definido internamente pelo jogo. Se não
funcionar, verifique se não incluiu alguma letra errada ou um espaço vazio antes ou depois. Versões
futuras poderão ter alguns novos materiais adicionados.
Ao usar keepTexture=1 a textura do seu modelo será mantida, mas ainda serão usadas as
propriedades internas dos materiais dentro da engine. Isso inclui o normal map e os efeitos de
iluminação. Então ela ficará com um efeito bem diferente caso fosse usada pura, sem o txt de
configuração.
Infelizmente por uma dificuldade técnica enorme, com resultados distorcidos em cada aparelho e
plataforma, o jogo não suporta o carregamento de normal maps customizados. Não se sabe se isso
um dia irá funcionar. Como brasileiro não desiste nunca… Ter incluído alguns materiais nativos
resolve isso parcialmente: dá para ter asfaltos e áreas de chão melhores mesmo com essa limitação,
usando os normal map embutidos que mais se assemelharem com as texturas desejadas.
É recomendável manter a textura existente na pasta para que isso funcione em todos os
modos: jogadores com equipamentos mais simples ou antigos poderão desativar esta função para
obter mais desempenho ou poupar RAM. Aí eles usam a textura do seu mapa mesmo, ignorando o
material mais elaborado.

Estes materiais dão uma aparência muito bonita no gráfico mais top de PC, alcançando um visual
interessante com a iluminação. Apesar da extrema dificuldade de criar interfaces para modificar isso
nos mods de mapas, aos poucos dá pra atingir coisas bem interessantes:
Nota sobre a disponibilidade do recurso
Versões futuras do jogo poderão apresentar algumas diferenças visuais nos materiais, especialmente
em brilhos ou reflexos que possam estar exagerados. O resultado visual também é diferente em cada
plataforma e GPU (PC ou celular). Tentaremos não introduzir nenhuma mudança que quebre o
visual, mas não dá pra garantir isso por depender das mudanças futuras feitas na engine. Como as
plataformas nos obrigam a atualizar a engine de tempos em tempos, não é possível garantir que
nada mudará nos próximos cinco ou dez anos.

Nota sobre a performance


Usar muitos materiais nativos pode fazer o mapa usar mais RAM e consequentemente ficar
mais pesado nos celulares. Geralmente as texturas internas para eles são de 2048 ou 1024 pixels de
largura e altura, com os normal maps sendo 1024 e as demais texturas auxiliares um pouco
menores.
Eles são recomendáveis para asfaltos e pisos em geral, visto que é um simulador de veículos… É
onde a pessoa vai passar a maior parte do tempo!
Se o seu alvo for um celular de 2 ou 3 GB de RAM, prefira usar poucos materiais. Se for PC ou
celulares tops aí dá pra usar vários deles sem problemas, considerando o peso de todo o resto, é
claro. Reutilizar o mesmo material para várias texturas mesmo fazendo uso do keepTexture também
economiza memória, já que as texturas normal map e outras de apoio serão carregadas apenas uma
vez.
Asfalto molhado pela chuva
Para tornar um asfalto molhado pela chuva do jogo, use o comando _wetsurface_ ou uma das
variações: _wetsurface_ até _wetsurface4_. A disposição das poças vai depender de como a
textura original foi mapeada. Não é possível controlar individualmente elas.
Dentro do jogo o objeto da rua terá o material aplicado, mantendo a textura original dele (o albedo).
É complexo e difícil preparar um cenário que funcione para todas as ocasiões. Isso vai funcionar
melhor com asfaltos calçadas. Pode não funcionar bem com outros modelos.
O _wetsurface0_ é um mais liso, sem as marcas de poças específicas:

Este comando poderá mudar em futuras versões do jogo, tanto por conta de melhorias como por
mudanças na engine ou no sistema de clima. Se usar, esteja ciente que o visual no futuro poderá ser
diferente do atual, embora tentamos não introduzir nada que quebre a compatibilidade com os
mapas atuais isso é impossível de garantir.
Caso queira deixar uma rua ou calçada sempre com o aspecto de molhado independente de estar
chovendo ou não, você pode usar os materiais asphalt/wet0 até asphalt/wet4 no txt de
configuração da textura. Com o keepTexture=1 é possível usar eles para molhar calçadas ou outros
tipos de pisos.
Água para lagos, rios...
Este comando não está oficializado, caso use saiba que ele poderá ser removido do jogo no futuro
dependendo do peso, das atualizações da engine ou de outros problemas. Mas fica bem bonito!
Isso será liberado exclusivamente para computador. Em GPUs antigas ou simples pode reduzir
bastante a performance. Futuramente terá uma melhor opção para o jogador ativar ou desativar.
Use um plano com uma textura sua na pasta textures para garantir que ele apareça no celular
também, onde a água interna será ignorada. Nomeie ele como _water1_ e deixe um pouco
abaixo da superfície, para não ficar piscando com o chão:

A escala da água é um pouco complicada de explicar, ela será uma escala aplicada na água interna
da engine, o que pode ter variações em futuras versões. Dentro da engine ela aparenta ter um raio de
1m, sendo um objeto circular:
Para os parâmetros de escala da água não são aceitos todos os números, eles precisaram ser
predefinidos manualmente. Use o parâmetro _scale123_ no nome do objeto, trocando 123 por um
destes valores:
_scale5_
_scale10_
_scale25_
_scale50_
_scale100_
_scale250_
_scale500_
_scale1000_

É recomendável usar o menor número possível de acordo com cada área, senão ela será renderizada
por baixo do chão de qualquer forma, desperdiçando recursos da GPU.
Dica: você pode “pintar” o fundo usando alguma textura de pedra ou outros elementos, visto que no
gráfico Ultra de PC a água é um pouco transparente. Assim dá para ter locais com fundos diferentes.
Ela é ideal para lagos ou mares, não sendo tão adequada para rios com formatos diferentes ou
lineares.

Você também pode gostar