Valve Hammer Editor - um tutorial por kalibu

é de relembrar que deve ter lido o 1º tutorial para compreender este segundo

Lição nº : 2

Muito bem pessoal, este é o segundo tutorial que vos ensina a fazer mapas para o cs. Hoje vamos aprender a fazer uma casa, interiores e exteriores. Na lição de hoje constam as seguintes coisas:

Fazer Portas - func_door e func_door_rotating
Fazer Vidros Quebraveis - func_breakable e func_breakable_surf
Colocar Models - prop_static, prop_physics_multiplayer e prop_detail
Criar brushes complexos utilizando a displacement tool, tais como montes rochedos e chão
Criar uma skybox


6- Criar as divisões

 

Muito, vamos começar pela casa por dentro... primeiro vamos criar uma cozinha... criem um chão de azulejo, uma parte da parede em ajulejo, o resto em plaster... um tecto... como por exemplo na imagem:

Vamos já agora criar na parede o espaço para uma janela... façam um buraco de 64x64 ( 4 quadrados por 4 quadrados)

Agora vamos também fazer o espaço para uma porta... façam abram um espaço de 48 x 112 ( 3 x 8 ) numa das paredes

vamos agora criar a porta

procurem uma textura de porta e criem um bush com 2px de espessura e que sirva perfeitamente no espaço destinado à porta.

Agora aí vem o mais complicado.

Existem dois tipos de portas... as portas que deslizam e as que rodam....

Para criar as portas que deslizam utilizamos a func_door

Para criarmos as portas que rodam utilizamos as func_door_rotating.

Vamos para isso parar por aqui o nosso novo mapa, e vamos abrir o crash test ( relembro que devem ter que ler o 1º tutorial para obterem o mapa crashtest, ou fazerem o download aqui )

abrindo o crash test, vamos criar duas paredes e duas portas.


Agora selecionamos uma das portas.

Tornamo-la entidade (ctrl-t) e selecionamos a func_door. Vamos analisar as opções:



Speed. a velocidade que a porta tem quando se move... Star e Stop Sound são os barulhos que a porta faz quando se começa a mexer e quando para, o delay, é o tempo que a porta demora a voltar-se a fechar. o lip é a distancia extra que a porta vai andar. Por exemplo se voces querem que a porta vá completamente para dentro da parede, utilizem um lip negativo, por exemplo -4... se voces querem que parte da porta nao entre para dentro da parede, usem um lip positivo.
Blocking Damage é o dano que a porta causa se for bloqueada, healt é a saude que a porta tem, ou seja se for infligido dano acima do valor establecido a porta abre-se, Locked Sound é o barulho que a porta faz se estiver trancada e o unlocked é se estiver destrancada... essas partes lineares vocês com um minimo de inteligencia chegam lá. Move Direction é o que interessa mesmo:

Como podem observar, existe uma bola preta com um risco nessa janela.esse risco parte do centro e acaba na ponta... esse é o sentido que a porta vai tomar. Para sabermos o verdadeiro sentido do movimento da porta olhamos para a vista do top e para a risca. Na imagem a porta ira mover-se para a frente. Mas como prentendemos mover a porta para o lado puxariamos o risco ou para cima ou para baixo na bola preta ou escreviamos 90 ou 270. mas se o que voces querem mesmo é uma porta que suba ou desca, em vez de 0 90 180 270 ou 360 escolheriamos as opções up ou down.

escolham os parametros que quiserem para a porta.

Já temos uma porta criada.

Vamos agora criar a porta mais complicada: A func_door_rotating.

para essa porta teremos que criar um outro brush especial.

Esse brush chama-se origin.

Uma rápida explicação, um porta rotativa tem as suas dobradiças, e estas não são excepção. A entidade vai precisar de um eixo por onde rodar. Para isso vamos criar um pequeno brush com a textura origin no local por onde a porta vai rodar:


Agora que já temos o brush criado, vamos selecionar os dois, a porta e a origin e transforma-la numa func_door_rotating.

Assim temos a porta criada. Vamos compilar e testar:



Voltando à cozinha, vamos criar a porta.

Não se esqueçam de ir gravando.

Agora vamos mobilar a cozinha:

Entity tool selecionada e procurem por prop_static.

Agora coloquem uma na parede junto da janela:


alt+enter e vamos às propriedades do prop. Em World Model façam browse:

vamos procurar lava-loiças.. procurem por sink

agora que já o temos basta fazerem ok. Já temos o nosso primeiro prop feito. Atenção, prop_static servem apenas para props que sejam estáticas isto é, que não tenham qualquer tipo de movimento nem que sejam quebraveis. Não se esqueçam de ajustar o lavatorio a parede. Insiram tb um forno, stove e um armário,cupboard ( ATENÇÃO UTILIZEM O CUPBOARD DO INFERNO, O DO HALFLIFE 2 PARTE-SE )


vamos agora colocar uma janela.

De volta ao mapa crashtest mais uma vez....

Criamos umas paredes com uns brushes de textura de vidro ( glass )

 

Agora num dos vidros vamos torna-lo func_breakable.

Vamos agora modificar a sua prop_data, como podem ver, há vários tipos de materiais que se podem partir... se voces quiserem criar uma tabua que se parta criam uma func_breakable e na prop data escolhe wood, ou se quiserem criar uma rocha que se parta selecionam stone.. por aí adiante. Agora em Strength escolhem quanto dano deve ser infligido ao vidro antes que ele se parta.
Agora em Material expecificamos o tipo de material que é, ou seja glass.

Já temos a primeira janela criada.

Passemos à segunda.

Primeiro que tudo, texturem-na com a textura nowdraw.



Agora, numa das faces E ATENÇÃO, APENAS NUMA DAS FACES!, vamos dar-lhe a textura do vidro, todas as outras continuaram com a textura nodraw:

agora vamos transforma-lo numa func_breakable_surf

quanto às suas propriedades é exactamente igual à da func_breakable.

Vamos agora compilar e ver as diferenças dos dois vidros:

 

Vamos então criar uma janela na cozinha.

Agora vamos criar mobilia que se parta ou que tenha fisica. Para isso vamos utilizar a prop_physics_multiplayer. E multiplayer porquê, porque vai ser um prop menos dispendioso na fisica o que torna o mapa menos laggado.

Vamos então adicionar umas tables umas chairs uns pots umas plants. Não se esqueçam de meter no tecto uma lamp ou uma light

 

Cria agora umas salas, uma casa de banho e um quarto...

Vamos aprender a criar escadas basicas:

para começar vamos criar um brush da altura do ultimo degrau.

agora vamos fazer copy/paste sempre baixando 16px na altura( 1 quadrado). Uma maneira mais facil de fazer o copy/paste é selecionar o brush, meter primido o shif e com o rato arrastar o brush, e assim temos uma instancia nova criada.

Esta é a maneira mais basica de se fazerem escadas. Brevemente irei fazer um tutorial só dedicado a escadas.

Agora que temos as escadas feitas, vamos criar o telhado.

vamos fazer um brush rectangular como o que vemos na imagem:

Agora vamos utilizar o vertex tool para puxar os vertices para baixo:

Como é que vamos puxar os vertices?
simples, cuidadosamente selecionamos um os vertices que são para baixar. Com a vertex tool arrastamos um pequeno quadrado na vista lateral para selecionarmos os 4 vertices que são para baixar:

carregamos no enter para selecionar os vertices e puxamos para baixo:

agora saímos do modo vertex e temos o telhado feito. Basta apenas textura-lo correctamente.

 

Para fazermos agora os cantos vamos utilizar um bloco, e com a clipping tool cortar as partes que estão a mais de modo a fazer um prisma triangular. Outra maneira de criares telhados, é criares apenas o prisma e texturares os seus lados com uma textura de telhado.

Não se esqueçam de adicionar luzes ( a entidade light ) a todas as divisões. Na cozinha adicionei uma ligh_spot. Brevemente também farei um tutorial a explicar as luzes.

agora que já temos a casa feita, passemos ao exterior e às displacements. Vamos fazer o mar de um lado e a cidade de outro.

Antes de começarmos a utilizar os displacements, devemos sempre utilizar uma textura que seja de displacement, para isso utilizamos uma textura blend, procurem nas texturas uma textura blendrockgrass, ou seja um textura que contenha a textura de rocha e a textura de erva e já vamos perceber porquê. agora a volta da casa criei blocos de 256x256 em que os vertices coincidam:

 

agora vamos apenas selecionar as faces desses brushes que estao para cima e um contacto com a agua:


agora mudemos na janela, de material para displacement, e fazemos Create - Power 3 :

ficamos com algo deste género:

mas nós não queremos um chão de rocha, e por isso vamos fazer invert alpha. Ficamos com um chão de relva. , agora vamos arredondar as arestas vivas. Clicamos em subdivide e vejamos o que aconteceu ( atenção, é uma opção que pode demorar algum tempo):

Como podemos ver as arestas foram polidas... já está a ficar com bom aspecto... mas não o melhor de todos.... por isso vamos utlizar a vertez tool para criar uma encosta mais recortada. Da mesma maneira que a utilizamos para o telhado, vamos selecionar os vertices dos cubos, só que desta vez não é através da janela lateral mas sim da de topo. Façamos algo do género:

Voltemos agora a selecionar todos estes brushes com displacement. Agora, vamos a janela de displacement e adicionemos noise - solanvancos - adicionem por exemplo no min -4 e no max 4 :

Vamos agora adicionar uns montes manualmente e fazer uns ajustes que apenas manualmente coseguiremos fazer. Mas antes disso voltemos a parte que está em contacto com a àgua. Nós não queremos aquilo com erva. Queremos com rocha. Para isso vamos utilizar o paint alpha. Selecionem as rochas que querem pintar. Agora com o paint alpha pintem as rochas com a outra textura. Utilizem o botão esquerdo do rato para adicionar a relva e o direito para adicionar a rocha. Como todo o brush tem relva, utilizamos só o direito para pintar o brush.

já está com melhor aspecto, agora vamos utilizar o paint geometry para adicionar/remover alguma altura no resto dos brushes:

explorem livremente a opção. Apenas de realçar as várias direcções em que se podem utilizar as geometry paint ( x axis, y axis, z axis = face normal ).


Já temos o rochedo criado. Vamos agora criar um pequeno pedaço de água:

 


uma coisa que eu tenho que dizer aqui, é que os displacements não bloqueis a visibilidade ou seja, é extremamente necessário que se crie uma textura nodraw por baixo

agora vamos criar os brushes da skybox:

Já temos o mapa quase pronto... basta adicionarem os spawns, a light_environment, e uns prop_statics para as arvores. agora vamos converter e experimentar.

como podem ter reparado... fica um bocado inestetico a àgua e a terra abarem ali... por isso vamos fazer uma skybox:

 

1º passo. na lista da entities procurem a entidade sky_camera

2- coloquem-na no centro do mapa ( coordenadas 0, 0, 0 - é no local onde aqueles tres riscos se encontram, o verde o azul e o vermelho)

3- selecionem essa entidade tal como brushes que indiquem posicoes estrategicas do mapa, ou seja, os locais onde acaba o mapa:

Agora façam copy. Mas agora vamos fazer um paste diferente, botão direito do rato, e façam paste_special e ok

Agora movam os novos objectos para fora do mapa:

agora façam transform desse grupo ( ctrl +m)

As 3dskyboxes são uma ferramenta útil pois permitem que um mapa fique 16 vezes maior do que seria possível sem a 3dskybox. por isso, uma 3dskbox é uma espécie de maquete com 1/16 do tamanho das coisas. Por isso, quando nós transformar-mos as novas coisas vamos fazer-lhe uma scale para 1/16 do seu tamanho ou seja 0.0625:

Ficamos apenas com aqueles pequenos brushes.

Agora, apaga a skycamera que tinhas no teu mapa e deixa apenas essa que vai ficar na skybox

agora adicionas agua e terra a volta desses pequenos brushes se que nenhum fique dentro da "area do mapa":


agora vamos adicionar umas prop_statics feitas prepositadamente para skybox...

procurem por skybox na lista dos modelos e insiram alguns edificios:


copiem a vossa light_environment do mapa e coloquem-na também na skybox, mantendo as duas.

Vamos agora à sky_camera:

Vamos adicionar algum nevoeiro de distancia:

Fog Enable - Yes
Fog Blend - Yes

Fog primary e secondary color é a vossa escolha

start position: deve começar a uma distancia maior que a do mapa, ou seja, se o mapa tiver uma distancia maxima de 2000 fazemos por exemplo a começar nos 2500

end position algo mais distante ainda... exemplo 4000. Vamos compilar e testar:


e temos uma skybox feita..

Clica aqui para fazeres o download do mapa exemplo.