Pt-br/L4D Level Design/Nav Meshes

Agora nós vamos criar o Navigation Mesh, ou "Nav Mesh", para nosso level. O Nav Mesh representa a "área andavel" do mapa. Isto permite que os bots Sobrviventes e Infectados saber como se mover no ambiente.
== Criando tutorial04.vmf e compilando ==
No Hammer, abra o arquivo do mapa tutorial03.vmf que você criou no tutorial anterior (Caso ainda não esteja aberto). Isto deve estar localizado na pasta mapsrc, por definição: 
 C:\Program Files\Steam\steamapps\common\left 4 dead\sdk_content\mapsrc\
Agora nós faremos uma nova versão para trabalhar e compilar:
* Vá para o menu File e escolha Save As...
* Mude o nome para tutorial04.vmf.
* Aperte para abrir a janela Run Map e clique no botão OK para compilar.
== Iniciando ==
Quando o level carrega:
# Assim como antes, vai aparecer a mensagem "Map is unplayable" porque ainda não criamos o Nav Mesh. Aperte Continue para fechar a janela.
# Abra a janela do console de programador (developer console) apertando a tecla 
# Digite "director_stop" e pressione a tecla .
#: Isto faz com que o AI Director não crie mais Infectados.
# Digite o comando "nb_delete_all" e pressione .
#: isto removerá todos os bots Infectados e Sobreviventes do jogo atual.
# Digite o comando "nav_edit 1" e pressione .
#: Isto trocará o jogo pelo modo de edição de Nav Mesh.
# Feche o console apertando novamente a tecla .
== Gerando um novo Nav Mesh ==
Com o console fechado, Olhe para o chão no meio do corredor entre os dois quartos.
Abra o console e digite "nav_mark_walkable" e aperte .
Feche o console e você deve ver uma pirâmide no chão onde você está mirando.
Você acaba de adicionar um marcador de geração de nav chamado "nav_mark_walkable".
Abra seu console novamente e digite "nav_generate_incremental" e aperte .
Isto irá gerar um conjunto de nav areas ao redor do marcador nav_mark_walkable . Áreas de nav meshes aparecem como uma série de quadrados conectados. Devem ser gerados ao longo dos dois quartos. 
== Seleção de Nav Area ==
Após o comando nav_generate_incremental é rodado, todas as areas criadas são selecionadas. Isto ajuda quando você comete algum erro e quer cria-los novamente. Para deletar o nav selecionado, entre com o comando "nav_delete" no console e toda as áreas selecionadas serão apagadas. Se você tentar isto, você pode recriar as nav areas simplesmente pondo outro marcador nav_mark_walkable e digitando nav_generate_incremental de novo.
* Para desclicar um nav, digite "nav_clear_selected_set".
* Para selecionar uma nav area, Olhe para a área com seu cursor e digite "nav_toggle_in_selected_set". Isto irá selecionar a nav area para qual está olhando.
== Arquivos de configuração (Nav Config) ==
Como você pode ver, editar o Nav Mesh usa muito comandos do console. O modo mais efetivo de se editar, ao invés de se digitar o comando toda vez, é atribuir (bind) teclas para esses comandos como atalho.
Um arquivo de configuração (cfg) foi incluso para tornar as coisas mais fáceis.
Abra o console e digite:
 bind PGDN "exec nav_mode"
e pressione .
Agora pressionando a tecla você trocará entre os modos "Nav Edit" e "Game".
=== Atribuindo seus próprios comandos (avançado) ===
para configurar suas próprias teclas usando o comando bind, abra o console e digite:
 bind <key> "comando do console"
Por exemplo, se você quer atribuir a tecla o comando "nav_toggle_in_selected_set", digite no seu console:
 bind z "nav_toggle_in_selected_set"
Você pode abrir o arquivo left4dead/cfg/nav_mode.cfg em um editor de texto para adicionar ou mudar comandos atribuídos.
* Para mais informações sobre atribuir comandos para teclas, veja .
== Dividindo Nav Areas ==
Você irá notar também que o Nav Mesh no seu level atual possui largas áreas que cobrem o quarto todo. As vezes, é necessário dividir essas áreas largas em menores. Por exemplo, se você quer adicionar um atributo como onde os sobrevivente começam e que seja em frente da mesa com armas.
Você pode dividir nav areas usando o comando "nav_split".
No arquivo incluso nav_mode.cfg, nav_split está vinculada a tecla .
Assim que você mira para as nav areas, você verá uma linha branca que move tanto para Norte/Sul como Leste/Oeste com seu mouse. Posicione seu cursor de modo que a linha apareceça a direita da mesa de armas no primeiro quarto.
Esta linha mostra onde a divisão acontecerá se você usar nav_split.
Pressione para fazer a divisão.
Agora, posicione o cursor de modo que a new area que acabou de dividir em frente a mesa seja dividida pela metade na outra direção.
Pressione para fazer a divisão e veja o resultado.
== Adicionando Atributos (Attributes) ==
Nav areas podem conter atributos (attributes) que são designidados para fins específicos. Por exemplo, uma nav area marcada com o atributo "EMPTY" significa que um infectado comum não pode nascer ali. Digamos que você tenha uma cozinha com um balcão nela, e não quer que infectados fiquem em cima do balcão quando os jogadores passarem porque pareceria estranho. Você pode marcar esta área como "EMPTY".
Primeiro, digite o comando "z_debug 1" para permitir que os atributos sejam vistos.
No nosso primeiro nav mesh que estamos criando, nós precisamos designar onde os sobreviventes vão começar quando eles aparecem no mapa. Vamos marcar a area em frente a mesa de armas que nós acamos de dividir como "PLAYER_START".
Mire seu cursor na área em frente a mesa e pressione a tecla para usar o comando "nav_toggle_in_selected_set".
Agora abra o console, digite "mark PLAYER_START" e pressione .
isto tornara a área selecionada em uma posição Player Start para os sobreviventes. Deve ficar na cor roxa.
Left 4 Dead rquer certas nav areas em seu level para que o Director funcione adequadamente. Para este simples level teste, nós usaremos outro atributo chamado "FINALE".
Vá para o segundo quarto no level e selecione a area o ocupa olhando para ela e pressionando a tecla .
Abra o console e digite "mark FINALE", depois pressione .
isto irá tornar o quarto em uma finale area e ficará azul.
Agora, o level tem tudo que o Director precisa para funcionar corretamente. O Director pode criar um "flow" (fluxo) do ponto de partida ao ponto de destino.
Para fazer o level um pouco mais jogável, vamos marcar as áreasem torno do Player Start como "EMPTY" (vazio) para que o jogador não fique cercado de zumbis logo quando o mapa carrega.
Selecione todas as áreas ao redor do Player Start com a telca .
Abra o console e digite "mark EMPTY" e pressione .
Isto irá prevenir que infectados comuns apareçam nessas áres quando o mapa começa.
Salve o nav mesh usando o comando "nav_save".
=== Deletando nav areas ===
Se você cometer um erro ou ver que a geração automática do nav mesh tem erros, você pode deletar nav areas com o comando "nav_delete". Por exemplo, a mesa de armas não precisa de uma nav area sobre ela. Pode causar os sobreviventes survivors subindo nela, o que pode não ser desejável.
No arquivo config fornecido, este comandojá foi atribuído para a tecla .
Para deletar a nav area, aponte nela, selecione com a tecla . Certifique-se de que tenha selecionado apenas as áreas que você quer apagar, então pressione .
== Analizando o Nav ==
Agora que nós temos um nav mesh básico, nós precisamos que ele seja analizado para que o director saiba onde pode nascer infectados.
Abra o console e digite "nav_analyze" e pressione .
Isto pode levar um tempo e depois o level irá recarregar.
Para testar a geração de infectados, use "director_start" no console e recarregue o level com "map tutorial04".
Seu cenário deve ficar algo parecido com este.
== Adicionando Nav com Escada ==
Se você abrir o tutorial03 no jogo, e trocar para nav_edit 1, você verá como uma escada se parece com nav colocada nela.
Para criar nav em uma func_ladder, posicione seu cursor sobre ela no modo nav_edit e use "nav_build_ladder".
== Conectando Nav Areas ==
Enquanto muitas nav areas serão conectadas corretamente quando usado nav_generate_incremental, há algumas que você irá querer ajustar ou alterar. Por exemplo, a passarela que criamos no tutorial03 pode não ter sido conectado corretamente com as áreas abaixo.
Para conectar 2 nav areas, selecione-as e use "nav_connect" no console. A tecla está atribuída para isto no arquivo nav_mode.cfg.
isto irá conectar as áreas em ambas direções e formará uma linha azul-claro como visto na imagem. Infectados podem escalar-lá (eles podem escalar qualquer área menor ou igual à 180 unidades) e podem pular delas. Bots sobreviventes também podem pula delas.
para conectar 2 áreas em um sentido, você precisa selecionar a que você quer que seja capaz de conectar com a outra e depois com o cursor aponte para a segunda mas não selecione-a. Então, pressione para usar "nav_connect".
Certifique-se que em ambos caso em que há duas áreas que você quer conectar não são sobrepostas uma na outra. Isto fará com que infectados travem suas cabeças quando tentarem escala-las.
== Desenhando suas próprias Nav areas ==
As vezes nav_generate_incremental deixa de fora áreas que você quer que o nav tenha. Neste caso, você precisará desenhar sua própria nav area.
Desenhando nav areas é feito com duas 2 teclas. Uma é atribuida com "nav_begin_area" e outra com "nav_end_area". O arquivo nav.cfg tem nav_begin_area atribuida ao botão esquerdo do mouse e "nav_end_area" atribuida ao botão esquerdo do mouse.
Mire para onde você quer criar a área e clique com o botão esquerdo do mouse. Assim que você move o mouse, você pode ver onde a nav area será desenhada até que pressione o botão direito do mouse para finalizar a criação da área.
Clique no botão direito do mouse para ativar nav_end_area e veja o resultado.
=== Alinhamento de grade ao criar nav ===
Você notará que o cursor não se alinha a grade quando está nesse modo. VOcê pode ativar a propriedades de alinhamento usando "nav_snap_to_grid" no console.
Também é possível desenhar uma escada usando nav_begin_area e nav_end area. Apenas aponte para uma ponta da escada e mova o cursor verticalmente para o canto oposto.