NEWS | ČLÁNKY | DOWNLOAD | GUESTBOOK | TUTORIALS ObnovitZavřít
 
hl - ZONE Half-Life Half-Life 2 Half-Life 3
 
Episode One Episode Two Opposing Force Blue Shift Counter-Strike 1.6
 INFO
Přidat do oblíbených
Nastavit jako Homepage

ICQ: 272-515-771 
Aktualizace:

 SYSTÉM
 TLAČÍTKA
hl-ZONE Button 1
 
hl-ZONE Button 2
 SPOLUPRACUJEME
 První místnost Neděle 22. 01. 2006
<-- Začínáme s Hammerem... Dveře všech druhů -->

Po nudném začátku by se to chtělo hned pustit do pořádné práce a konečně udělat pár brushů. Takže bysme si mohli na začátek ukázat, jak vlastně vytvořit vlastní místnost, nastavit textury, nějaké to světlo a hlavně si naši první mapu zkompilovat a spustit.

Na úvod:
V minulém tutoriálu jsem si nainstalovali VHE, nakonfigurovali, mrkli se jak vypadá pracovní plocha a k čemu slouží jednotlivé ikony. Také jsme si řekli něco málo o hlavních třech (resp. čtyřech) příponách, které jsou pro nás důležité. Nyní bychom už mohli něco vytvořit. Začneme tedy něčím jednoduchým a základním. Vytvoříme si první místnost. Spustíme tedy VHE a dáme File -> New.

Stavebním kamenem každé mapy jsou brushe. Jsou to kvádry které tvoří 90% mapy (stěny, stropy, podlahu, ale i například nábytek). Brushe jsou pokryté texturami. Takže pojďme na to. Ještě musím uvést, že místnost můžeme vytvořit dvěma způsoby. Jeden je lehčí, rychlejší, ale mě se osobně nezamlouvá a nepoužívám ho. Druhý je pracnější a časově náročnější, ale mnohem flexibilnější. Pro jistotu popíši oba způsoby.

Místnost pomocí hollow :
Nejprve pomocí tlačítka browse v okně s texturami otevřeme texture manager. Do vyhledávacího políčka napíšeme C1A0_LABW4 a stiskneme Enter. Nyní jsme zpět ve VHE. Vlevo vybereme Block tool [Shift+B] a vytvoříme v pohledu top (x/y) čtverec o velikosti 512x512 jednotek. Velikost objektu vidíme dole na spodní liště zhruba uprostřed. V pohledu side (x/z) upravíme výšku naší místnosti podle velikosti textury. K tomuto údaji musíme ještě přičíst tloušťku podlahy a stropu (což u nás bude dohromady 32 jednotek; viz. níže). V našem případě to je 192 jednotek. Až se nám to podaří vložíme náš první brush pomocí Entru (obrázek 1).


Obr. 1
První brush

Nyní máme vytvořený první brush. Když však pomocí Camera [Shift+C] vjedeme do dovnitř, kvádr zmizí, jelikož není dutý. Toho docílíme jednoduše. Vybereme nástroj Selection tool [Shift+S] a klikneme na brush. Až zčervená, tak pomocí Tools -> Make Hollow [Ctrl+H] ho uděláme dutým. Vyskočí nám pole, do kterého zadáme kolik jednotek budou jednotlivé zdi tlusté. Číslo nechám na vás, ale já jsem se naučil pracovat se 16 jednotek silnými zdmi a proto se toho budu držet. Napíšeme tedy 16 a odentrujem. Teď se opět přesuneme do objektu a co to? Nyní je skutečně dutý.


Obr. 2

Co se to ale stalo s texturami? Jsou tak nějak divně umístěné. To hned napravíme. Vybereme nástroj Toggle texture application [Shift+A] čímž otevřeme Face Properties. Klikneme v okně Camera na jednu ze stěn. Stěna zčervená. Ve face properties klikneme na tlačítko B (bottom) v sekci Justify a textura se nám krásně zarovná od spodu. Nyní pomocí Camera [Shift+C] se budeme otáčet na okolní stěny na každou klikneme pravým tlačítkem myši (tak původní již zarovnaná musí být aktivní - červená) a texturu i s nastavením zkopírujeme. Pro podlahu a strop se tato textura však nehodí. Proto ji vyměníme. Opět ve Face properties klikneme levým tlačítkem na podlahu a po stisknutí Browse otevřeme texture manager, kde vybereme C1A0_LABFLRD, stiskneme Enter a následně Apply. A textura se změnila. Zarovnávat ji v tomto případě je zbytečné. U stropu postupujeme stejně, jen dáme jinou texturu. Třeba C1A0_LABFLR. Teď už naše místnost vypadá celkem slušně.


Obr. 4
Dutá místnost

Místnost pomocí brushů :
Nevím jak tento způsob přesně nazvat, ale je to celkem výstižné. Místnost vytvoříme podobným způsobem. Takže si v texture manageru vybereme texturu podlahy (tedy C1A0_LABFLRD) a uděláme brush o velikosti 512x512 a vysoký bude 16 jednotek. Následně odentrujem. Nyní vybereme texturu zdí. Ta byla C1A0_LABW4 a vytvoříme brush o velikosti 16x512 a vysoký 160 jednotek. Nyní brush zkopírujeme tak, že ho vybereme pomocí Selection tool [Shift+S] a klasicky Ctrl+C a Ctrl+V ho zkopíruje a vložíme. Poté zarovnáme. Nyní nám chybí ještě dvě strany. Takže budeme postupovat úplně stejně. Jejich velikost bude 480x16 a výška opět 160 jednotek. Po zkopírování a zarovnání stěny bychom měli mít něco podobného jako na obrázku 7. Nyní zarovnáme textury na stěnách (viz. minulý odstavec). Nakonec zkopírujeme podlahu a přesuneme jí úplně navrch. Změníme texturu na C1A0_LABFLR.


Obr. 6

Obr. 7

Tip01:
Pokud vybereme pomocí Selection tool [Shift+S] nejprve brush a následně otevřeme Face properties budeme nyní měnit všechny textury na vybraném brushy. Pokud to uděláme obráceně, měníme pouze jeden face.

Nyní bychom měli být v momentu, kdy se oba postupy dostaly do stejné fáze. Místnost je hotová. Jaký je tedy mezi nimi rozdíl? První postup vytvoří místnost, která se chová jako jeden celek. Pokud na ni klikneme, zčervená celá. Je to proto, že se chová jako skupina brushů (Group). Pokud bychom chtěli vybrat jen jednu stěnu musíme ji příkazem Tools -> Ungroup [Ctrl+U] rozdělit na jednotlivé brushe. A druhý způsob zase vytvoří jednotlivé brushe, které můžeme vybírat po jednom. Pokud chceme udělat skupinu z těchto kvádrů, uděláme to jednoduše Tools -> Group [Ctrl+G].

Tip02:
Pokud bychom chtěli někdy změnit velikost brushe není to problém. Stačí kliknout na požadovaný brush a roztáhnout na požadovanou velikost. Problém nastává, když chceme zvětšit (nebo zmenšit) grupu. Pokud ji zvětšíme na 1024x512 dojde k deformaci některých brushů (viz. obrázek 8) a stěny ve směru roztažení mají nyní tloušťku 32 jednotek oproti původním 16. A to je ten problém. Teda jak v čem. Mě to prostě vadí, proto se přikláním k druhému postupu. A také se rychleji naučíte tvořit a pracovat s brushy.


Obr. 8
Deformace skupin objektů

První entita - světlo :
Nyní, když máme místnost hotovou, musíme vytvořit světlo, jinak mapa nepůjde z kompilovat. Ano, v každé mapě musí být alespoň jedno světlo. A z čeho se světlo skládá? Skládá se ze dvou částí: brushe, který představuje fyzické světlo, které výsledně uvidíme (ale ve skutečnosti žádné světlo nevyzařuje) a entity light, která skutečně svítí, ale v mapě není vidět.

Vytvořme tedy fyzické světlo. Vybereme texturu GENERIC028, která bude představovat kovový rám naší zářivky. Vytvoříme brush o velikosti 64x96 jednotek a výšku bych zvolil 4 (max. 8) jednotek. Enterem ho vložíme do mapy a zarovnáme na střed naší místnosti úplně nahoru. Otevřeme Face properties a změníme přední texturu na SKKYLITE2 a zarovnáme ji pomocí tlačítka C. Teď bych doporučoval převést naše fyzické světlo na tzv. World Entity.


Obr. 9
Fyzické světlo

Tip03:
Ve VHE máme dva tipy entit. Tzv. World Entity a Point Entity. World Entity jsou brushe, které jsou následně převedeny na entitu a jsou to například dveře, skla, voda, ale i neviditelné entity, tzv. triggery (spouštěče). Point Entity jsou, jak již název napovídá bodové entity. Mezi ně patří světla, modely postav a zbraní, blesky a další řídící a skriptovací entity (multi_manager, env_global, multisource).

Tip04:
A proč právě na World Entitu? Proč nenechat naše světlo obyčejným brushem? Z jednoho důvodu. V enginu Half-Life světlo vrhá stíny. To není nic nového. Pokud však světlo narazí na brush tipu jako naše světlo, začne stíny tvořit velmi nerealisticky a naši mapu by to hyzdilo. Pokud však světlo narazí na nějakou entitu bere ji tak, jako by vůbec neexistovala a tudíž žádné stíny nevytvoří. To nám sice na realističnosti moc nepřidá, ale aspoň tam nebudou tak hrozné stíny. Schválně to vyzkoušejte. Rozdíly naleznete na obrázkách 10 (func_wall) a 11 (bez func_wall). Možná to není až tak úplně ideální příklad, jelikož je světlo umístěné pod fyzickým světlem, ale při více světlech to vážně dělá bordel a nevypadá hezky. Jen jsem chtěl tento problém trošku objasnit (ale asi sem si vážně vybral špatný příklad).


Obr. 10
Světlo jako entita func_wall

Obr. 11
Světlo jako brush

Vytvoříme tedy World Entitu. Klikneme na brush a pravím tlačítkem rozbalíme nabídku. Vybereme Tie to Entity. Otevřela se nám tabulka (obrázek 12) Object Properties, kde vybereme třídu (class) func_wall. Zavřeme křížkem. Nyní pomocí nástroje Entity tool [Shift+E] vložíme naše světlo. Vpravo v entity manažeru vybere light a vložíme do mapy opět pomocí enteru. Zarovnáme na prostředek místnosti. Nyní pomocí Selection tool [Shift+S] ho vybereme a pravým tlačítkem nebo klávesovou zkratkou Alt+Enter vyvoláme tabulku Object properties. Pod třídou je několik atributů.


Obr. 12
Object Properties [Alt+Enter]

light - záložka Class info:
Target - jméno entity na kterou se odkazuje; například při vypnutí světla se může stát nějaká událost…třeba se otevřou zavřené dveře nebo něco bouchne:-)
Name - jméno entity; důležité pouze v případě, že se na ní jinou entitou odvoláváme
Brightness - barva světla a velikost jasu; první 3 čísla představují barvu ve formátu RGB a to poslední číslo udává jas světla, 0 nejméně, 200 nejjasnější
Appearance - ovlivňuje chování samotného světla; pokud nechceme aby jen tak nudně svítilo, můžeme ho rozblikat několika způsoby z roletky; stačí jen vyzkoušet
Custom Appearance - sám nevím:-)

light - záložka Flags:
Initially dark - pokud chceme, aby po načtení mapy bylo světlo vypnuté zaškrtněte; následně ho můžete rozsvítit např. nějakým tlačítkem

Pro naši místnost nastavíme světlo následovně (můžete nastavit i jiné hodnoty a dosáhnout tak zajímavých efektů). Zbytek ponecháme nevyplněný.

Brightness: 75 50 255 150
Appearance: Fluorescent flicker

Druhá entita - info_player_start :
Než mapu uložíme a zkompilujeme a je nutné do ní vložit entitu, která určí, kde se v mapě objevíte po jejím načtení. Proto opět pomocí < b>Entity tool [Shift+E] vybereme z entity manažeru entitu b>info_player_start a vložíme ji někam ke stěně. Entita nesmí zasahovat do žádného z okolních brushů, jinak bychom se nemohli hýbat. Pokud bychom info_player_start do mapy nevložili, objevili bychom se na souřadnicích 0, 0, 0, což by v našem případě bylo v pořádku, ale v jiných mapách by určitě došlo k problémům. Na závěr ještě otevřeme Object Properties a nastavíme u Angle hodnotu na 270. To abychom se dívali dolů a ne do zdi. (Podmínkou je, abychom entitu vybrali v pohledu top (x/y).


Obr. 13
Tesně pred kompilací

Uložení a kompilace :
Mapa je hotová. Teď ji zbývá jen uložit. Pomocí File -> Save [Ctrl+S] ji uložíme do složky C:\SIERRA\Half-Life\valve\maps a pojmenujeme si ji například prvni_mapa. Následně vytvoříme soubor .map pomocí File -> Export to .MAP a uložíme ji do stejného adresáře. Nyní stačí stisknout klávesu F9 nebo ikonu v pomocných nástrojích úplně vpravo. Otevře se nám okno pro kompilaci (obrázek 14). Pokud je vše nastaveno tak jak má, stačí stisknout tlačítko Go! a počkat než proběhne kompilace.


Obr. 14
Tabulka kompilace

Závěr :
Nyní jsme se objevili v naší místnosti, po které se můžeme volně pohybovat, skákat, plížit se… Nemůžeme však jít nikam dál. A to si popíšeme v dalším tutoriálů, kde vytvoříme nějakou pěknou chodbu, druhou místnost a celé to završíme dveřmi (jak na pantech, tak výsuvnými - pokud nechápete, pochopíte…). To nás čeká ale až tak za týden, dva, takže se nyní můžete v klidu učit a opakovat si základní ovládání a funkce VHE. Prozatím ZDAR!


Obr. 15
Výsledek naší práce: První místnost!

P.S. možná jsem to psal jako pro úplné magory a celý tutoriál by se dal napsat na jednu stránku a ne na 4 (ve Wordu), ale nějak jsem se rozjel a chtěl sem napsat dobrý tutoriál. Jestli se mi to alespoň trochu povedlo, posuďte sami.

 

SOUBORY

 

KOMENTÁŘE

 


hAssassin (email: voker@email.cz)

ModrejTom > Ano, tohle je dost častá chyba. Pravděpodobně se bude jednat o špatné nastavení při kompilaci nebo VHE. Problém nejspíš bude v tom, že VHE mapu zkompiluje v pořádku a soubor .bsp někam uloží, ale už ho nepřekopíruje do složky maps, takže engine neví co má otevřít, protože ji nenajde. Skus si ještě projít jednou nastavení VHE a pokud se jedná o jiný mód (CS) tak tomu věnuj dostatek pozornosti. Časem připravím i tutoriál, pro nastavení ostatních módů (potažmo vlastního). Pokud chybu nenajdeš, skus najít mapu (jmeno.bsp) někde na disku a zkopíruj ji do složky Half-Life -> valve (popř. cstrike, tfc, muj_mod) -> maps a spusť ji přes konzoly ve hře. Momentálně mě nic lepšího nenapadá.

Odpovědět


ModrejTom (email: modrejtom@seznam.cz)

Ahoj, je to dobrý tutoriál. Jen se chci zeptat a doufám, že mi někdo poradí. Vše udělám podle návodu ale když se dostanu ke kroku jak mám dát F9 a pak GO, tak mi to napíše 2 chyby a to že nemůže nalézt soubor prvni_mapa.bsp a soubor prvni_mapa.pts. Zkoušel jsem to i nazvat cs_assault a to mi teda spustí hru ale než se dostanu na mapku tak to napíše nějakou chybu v konsoly. Tak prosím někdo poraďte.

Odpovědět


plingr

Nastavim ty rozmery toho bruse jak sou psany dam enter a ta textura se mi tma nevlozi

Odpovědět


SnoPPi

Je to super tutorial ! Moc si mi tím pomohl !

Odpovědět


Frankie Chytrolín

Já za boha nemužu přijít na to světlo já tam nemůžu dát ty rozměry bo se mi to hned chytne té mřížky.Tak pls poraďte jak to mám zrobit.

Odpovědět


Dindo (email: MDindoffer@zoznam.sk)

Super az na to ze som to chcel vzskusat s botmi, a nedali sa hodit nikam, iba ku CT, aj ja som mohol ist iba ku CT, aj ked som tam dal 2x entities info_player_start.

Odpovědět


A.B.E. no.24 (email: A.B.E.no.24@seznam.cz)

Super návod, jen jsem tu místost nemohl spustit musel jsem ji pojmenovat jako cs_assault a potom už jela.
Díky za rady.

Odpovědět


n1k1t4 (email: spawn99@inmail.sk)

Suhlasim, je to skvele popisane, aj mne to velmi pomohlo. Len tak dalej :).

Odpovědět


Freeze

Výbornej tutoriál, strašně mi pomohl, jen tak dále!!

Odpovědět


 

 

<-- Začínáme s Hammerem... Dveře všech druhů -->

NAHORU ...

 ČERSTVÉ NOVINKY
 POSLEDNÍ TUTORIÁLY
 ANKETA
Staré ankety
 REKLAMA