Nav Meshes

From Valve Developer Community
Jump to navigation Jump to search
English (en)Português do Brasil (pt-br)Русский (ru)中文 (zh)Translate (Translate)


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:

  1. Assim como antes, vai aparecer a mensagem "Map is unplayable" porque ainda não criamos o Nav Mesh. Aperte Continue para fechar a janela.
  2. Abra a janela do console de programador (developer console) apertando a tecla `
  3. Digite "director_stop" e pressione a tecla Enter.
    Isto faz com que o AI Director não crie mais Infectados.
  4. Digite o comando "nb_delete_all" e pressione Enter.
    isto removerá todos os bots Infectados e Sobreviventes do jogo atual.
  5. Digite o comando "nav_edit 1" e pressione Enter.
    Isto trocará o jogo pelo modo de edição de Nav Mesh.
  6. Feche o console apertando novamente a tecla `.

Gerando um novo Nav Mesh

Posicionando um novo nav_mark_walkable.

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

As áreas nav são automaticamente geradas.

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.

Note.pngNota: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.
Tip.png 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".

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 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(en).
Note.pngNota: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.

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

A linha branca mostra a divisão que você pode fazer.

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.

Performing a nav_split.

Pressione Insert para fazer a divisão.

Dividindo a nav area em outra direçã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".

Selecionando a nav area com nav_toggle_in_selected_set.

Agora abra o console, digite "mark PLAYER_START" e pressione Enter.

marcando uma nav area com o atributo PLAYER_START.

isto tornara a área selecionada em uma posição Player Start para os sobreviventes. Deve ficar na cor roxa.

Tip.png 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_START

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

Selecionando nav area no segundo quarto.

Abra o console e digite "mark FINALE", depois pressione Enter.

Marcando a nav area com o atributo FINALE.

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.

Selecionando as nav areas no primeiro quarto exceto a área PLAYER_START.

Abra o console e digite "mark EMPTY" e pressione Enter.

Marcando as áreas selecionadas com o atributo EMPTY.

Isto irá prevenir que infectados comuns apareçam nessas áres quando o mapa começa.

Note.pngNota: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".

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

Analizando o Nav

Seu primeiro nav mesh no jogo.

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.

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.

Criando nav em uma escada.

Para criar nav em uma func_ladder, posicione seu cursor sobre ela no modo nav_edit e use "nav_build_ladder".

Note.pngNota:O cursor ficará verde se for posicionado sobre a func_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.

Conectando nav areas.

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.

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.

Desenhando uma nav area.

Clique no botão direito do mouse para ativar nav_end_area e veja o resultado.

Note.pngNota: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.
Tip.png 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.

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.

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


← [[pt-br/
L4D Level Design/Visibility/pt-br|:L4D Level Design/Visibility/pt-br]](en)
Merge-arrows.png
It has been suggested that this article or section be merged with Nav Mesh Editing. (Discuss)