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 F9 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 ↵ Enter.- Isto faz com que o AI Director não crie mais Infectados.
 
- Digite o comando "nb_delete_all"e pressione ↵ Enter.- isto removerá todos os bots Infectados e Sobreviventes do jogo atual.
 
- Digite o comando "nav_edit 1"e pressione ↵ Enter.- Isto trocará o jogo pelo modo de edição de Nav Mesh.
 
- Feche o console apertando novamente a tecla `.
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 ↵ Enter.
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 ↵ Enter.
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. 
 Notar:Se você tiver um mapa maior, você precisrá colocar mais marcadores
Notar:Se você tiver um mapa maior, você precisrá colocar mais marcadores nav_mark_walkable ao longo de seu level. Cada nav_mark_walkable tem uma área máxima. Em geral, construa nav areas para cada sessão por vez para manter o nav mesh limpo. Dica: O comando
 Dica: O comando nav_generate_incremental automaticamente salva o Nav Mesh no seu mapa quando é rodado. Se você quiser salvar seu progresso manualmente, você pode usar o comando "nav_save".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.
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 ↵ Enter.
Agora pressionando a tecla Page Down 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 Z 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 Bind.
 Notar:A partir de agora, este tutorial assumirá que você está usando o arquivo
Notar:A partir de agora, este tutorial assumirá que você está usando o arquivo nav_mode.cfg. Se você estiver usando suas próprias atribuições, você terá que substituir suas teclas de atalhos pelas citadas.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 Insert.
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 Insert 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 Insert 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 Z para usar o comando "nav_toggle_in_selected_set".
Agora abra o console, digite "mark PLAYER_START" e pressione ↵ Enter.
isto tornara a área selecionada em uma posição Player Start para os sobreviventes. Deve ficar na cor roxa.
 Dica: Se você marca uma área com um atributo e quiser remover depois, selecione a área e use "
 Dica: Se você marca uma área com um atributo e quiser remover depois, selecione a área e use "clear_attribute <attribute name>" no console para remove-lô. Por exemplo: clear_attribute PLAYER_STARTLeft 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 Z.
Abra o console e digite "mark FINALE", depois pressione ↵ Enter.
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 Z.
Abra o console e digite "mark EMPTY" e pressione ↵ Enter.
Isto irá prevenir que infectados comuns apareçam nessas áres quando o mapa começa.
 Notar:Isto não impede hordas de nascerem nestas áreas posteriormente. Você precisará adicionar o atributo "NO_MOBS" para isso.
Notar:Isto não impede hordas de nascerem nestas áreas posteriormente. Você precisará adicionar o atributo "NO_MOBS" para isso.Salve o nav mesh usando o comando "nav_save".
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 Delete.
Para deletar a nav area, aponte nela, selecione com a tecla Z. Certifique-se de que tenha selecionado apenas as áreas que você quer apagar, então pressione Delete.
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 ↵ Enter.
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.
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".
 Notar:O cursor ficará verde se for posicionado sobre a func_ladder.
Notar:O cursor ficará verde se for posicionado sobre a func_ladder.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 End 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 End 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.
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.
 Notar:Criar suas próprias nav areas não irá conecta-las automaticamente com o resto do nav mesh. Use nav_connect para conecta-las com as áreas adjacentes.
Notar:Criar suas próprias nav areas não irá conecta-las automaticamente com o resto do nav mesh. Use nav_connect para conecta-las com as áreas adjacentes. Dica: Se você acidentalmente apertar o botão esquero do mouse quando não quiser desenhar uma nav area, apenas pressione botão esquerdo do mouse novamente para cancelar a criação do nav.
 Dica: Se você acidentalmente apertar o botão esquero do mouse quando não quiser desenhar uma nav area, apenas pressione botão esquerdo do mouse novamente para cancelar a criação do 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.
 Dica: No arquivo
 Dica: No arquivo nav.cfg, a tecla F9 é atribuída para "incrementvar nav_snap_to_grid 0 2 1". Isto mudará o tamanho da grade quando você pressionar a tecla e continuará a alterar o tamanho cada vez que pressionada a tecla F9.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.
- L4D Level Design/Visibility/pt-br|:L4D Level Design/Visibility/pt-br]]









































