Your First Left 4 Dead Map
Este tutorial irá cobrir o básico para a criação de um mapa para Left 4 Dead . Irá explicar as entidades(entities) requeridas, como "director", armas, e "spawns". Também responderá algumas questões que mappers de Left 4 Dead tenham. Este tutorial não é destinado a novos mappers: O tutorial Design básico de level para L4D cobre este tópico para novatos.
Para este tutorial nós faremos uma simples campanha de 2 mapas sem fim. Divertido, não? Bem, o objetivo não é criar uma campanha completa, mas explicar o básico da construção de um level para l4d.
Primeiro, vamos ver o que nossa campanha do l4d vai precisar para funcionar:
- O director
- Um ponto de partida
- 2 portas de safe room
- Armas, munição e vida
- Um closet de resgate
- Um change-level
- Um fog controller (para o particle effects)
A imagem à direita será usada como layout para o nosso mapa neste tutorial.
O spawn room
Começaremos pelo quarto a esquerda (área 1), adicionando a entidade info_player_start
nele. Depois, Vamos adicionar o info_director
e um env_fog_controller
, tenha certeza que a propriedade "Fog Enable" do fog_controller esteja marcada com "Yes".
Para os suprimentos crie um brush que agirá como uma mesa e sobre ele coloque as seguintes entidades:
- Medkits, 4 entidades
weapon_first_aid_kit_spawn
- 2 armas;
weapon_smg_spawn
eweapon_pumpshotgun_spawn
. - Munição,
weapon_ammo_spawn
, ponhamodels/props/terror/ammo_stack.mdl
como modelo da entidade (world model)
Para a saída adicione a entidade "prop_door_rotating_checkpoint
". Em suas propriedades, nomeie-a "checkpoint_exit", ponha a propriedade "body" para "1", o "Spawn Position" para "Closed" (spawnpos keyvalue 0), o "world model" para "models/props_doors/checkpoint_door_01.mdl", e certifique-se de que a marca "Starts Open" está desmarcada.
Verifique se o lado da porta com o sinal EXIT está voltado para dentro do quarto.
Isto termina o saferoom, mas antes de proseguir, adicione um info_landmark
no mapa também, nomeie-o como "landmark_a". Entraremos em detalhes mais tarde.
Closets de resgate
Agora faremos 2 quartos pequenos perto do número 2 onde jogadores mortos podem ser salvos (rescue closets). Closets de resgate consistem em 4 entidades, 3 entidades info_survivor_rescue
e uma prop_door_rotating
. Adicione 3 entidades info_survivor_rescue
dentro de cada quarto. Para a porta, faça um espaço de 56 de largura e 104 de altura, adicione a prop_door_rotating
e escolha para world model "models/props_doors/doormain01.mdl".
O safe house e o change-level
Agora vamos conectar este mapa a outro dentro da campanha. Para começar, crie outra entidade "prop_door_rotating_checkpoint
" para a entrada da área 3 como porta da safe house. este é um pouco diferente do anterior. Abra suas propriedades e nomeie-o "checkpoint_entrance", a propriedade "body" para "0", o "Spawn Position" para "Open Forward" (spawnpos keyvalue 1), o "world model" para "models/props_doors/checkpoint_door_02.mdl", e certifique-se de que a marca "Starts Open" está marcada. O lado da porta com um desenho de casa deve ficar do lado de fora do quarto.
Para terminar a transição de uma mapa para outro falta adicionar um info_landmark
e um trigger_changelevel
. Primeiro coloque o info_landmark
no centro do mapa perto do teto, depois abra suas propriedades e nomeie-o "landmark_b". Agora crie um grande brush que cubra o espaço do chão dentro da safehouse e torne-o a entidade trigger_changelevel
(ctrl+t), certifique-se de que o brush entre em contato com o chão (não precisa sobrepor, mas pelo menos deve tocá-lo). abra as propriedades do changelevel e marque o landmark name com o que já criamos, "landmark_b" e para a propriedade "next map", escreva "lst_l4dmap_b".
Para os bots sobreviventes e infectados serem capazes de se mover, você deve construir um navigation mesh ( arquivo "nomedomapa.nav") para o seu mapa. Para construir um nav básico você precisa ter seu mapa compilado e carregado. Uma vez que o mapa estiver rodando, mire no chão, abra o console do jogo, e escreva o seguinte:
sv_cheats 1
nav_edit 1
nav_mark_walkable
nav_generate
O mapa será recarregado após digitar nav_generate, e se tudo der certo ( o que não é comum), não teremos mais as mensagens "NAV ERRORS - Map is unplayable!" exibida na tela quando o mapa inicia. Isto devido ao nav_generate assinalar certos atributos no nav mesh pelo processo conhecido "nav marking".
Você pode ver as diferenças usando o comando "select_with_attribute A". O que este comando de console faz é selecionar toda a área do nav "marcada" com o atributo "A". Por exemplo, usando "select_with_attribute CHECKPOINT", todas as áreas de nav que foram marcadas com o atributo "CHECKPOINT" seriam destacadas.
Por exemplo, com "nav_edit 1" acionado, você deve abrir o console e digitar:
- select_with_attribute DOOR
- 4 quadrados de nav devem ser destacados contando a IA dos bots que há uma porta nesses locais.
- select_with_attribute CHECKPOINT
- As áreas de nav no saferoom do final serão destacadas.
- select_with_attribute RESCUE_CLOSET
- Os dois closets devem ter suas áreas de nav destacadas.
- select_with_attribute ESCAPE_ROUTE
- Agora vários quadrados serão destacados formando um caminho do ínicio até as áreas marcadas "checkpoint" no fim do mapa.
Marcando o NAV (NAV Marking
Neste caso, o nav_generate fez um trabalho razoável localizando e assinalando o checkpoint final, closets de resgate, e outros atributos no nav mesh, Mas nem sempre você terá sorte. Para assinalar manualmente atributos no nav, você vai precisar usar o comando MARK através de 'mark A', onde A é o atributo que você quer marcar na área desejada.
Por exemplo, antes de fazer o mapa funcionar corretamente, Nós precisamos "marcar" manualmente um lugar no nav mesh que o nav_generate esqueceu, um checkpoint de partida. Para isso, nós precisamos estar no modo de edição de nav:
sv_cheats 1 nav_edit 1
Agora dentro do safe room inicial nós demarcaremos um quadrado nav por vez apontando neles e digitando no console:
mark CHECKPOINT
Ou, para agilizar o processo,você pode usar o nav gui abrindo o console novamente e digitando:
nav_gui
Com o nav gui acionado, você pode selecionar múltiplos meshes, e usar o comando de console mark CHECKPOINT
.
Marque o atributo para todas as áreas selecionadas.
Se você cometer algum erro, Você pode remover um único atributo da área selecionada usando:
nav_clear_attribute A
- onde A é o atributo que você deseja remover (eg:
nav_clear_attribute CHECKPOINT
)
- onde A é o atributo que você deseja remover (eg:
Ou, se você quer remover todos os atributos da área selecionada, você deve usar:
wipe_attributes
Ao terminar de marcar o nav, certifique-se de salvar as mudanças com nav_save
, depois reanalize-o com nav_analyze
Fazendo os infectados aparecerem
Agora com o nav mesh contruído, você deve ser capaz de fazer com que os infectados apareçam através dos comandos de console:
director_stop
director_start
Você deve fazer isto apenas uma vez dentro do mapa, depois toda vez que o mapa for carregado o director inciará por si mesmo.
Fazendo o segundo capítulo
Com o primeiro mapa encaminhado, o segundo pode ser feito facilmente. De volta ao Hammer, com o mapa que nós acabamos de compilar ainda carregado, vá para file menu e escolha "Save As". Agora digite "lst_l4dmap_b" para salvar o mapa atual com um novo nome. Vá para edit no menu e escolha "select all", aperte CTRL+M para abrir a translation tool e digite 180 dentro do campo Z e aperte "ok".
Mude o nome da entidade info_landmark
para que a do começo se torne "landmark_b" e a que está no checkpoint final se torne "landmark_a". Lembra do "landmark_a" criado no primeiro mapa? Nós vamos ligá-lo com o changelevel deste novo mapa, abra as propriedades do trigger_changelevel e troque "landmark_b" por "landmark_a" e "lst_l4dmap_b" por"lst_l4dmap_a". Isto fará com que você vá de um mapa para outro.
Após as trocas de nome, para finalizar compile o mapa e repita o processo de criação do nav igual no mapa anterior, não se esqueça de marcar o safe room de partida com o atributo CHECKPOINT, se tudo correr bem, você tem agora uma campanha de 2 capítulos.
Adição opcional
Para áreas de spawn em capítulos posteriores, você não precisa continuar usando weapon_smg_spawn
e weapon_pumpshotgun_spawn
igual no primeiro mapa já que a maioria dos jogadores vão querer trocar essas por armas mais poderosas encontradas ao longo do jogo. Estas armas mais poderosas que você pode usar para serem encontradas nos próximos mapas consistem em:
- a
weapon_rifle_spawn
,weapon_autoshotgun_spawn
, eweapon_hunting_rifle_spawn
.