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
 Dveře všech druhů Čtvrtek 09. 02. 2006
<-- První místnost Skla a okna -->

V dnešní tutoriálu si zopakujeme základní tvorbu místností ve VHE a vytvoříme si pěknou chodbu a druhou místnost. Tu si poté osvětlíme a pro vstup do každé z místnosti si vytvoříme dveře. Jak dveře na pantech, tak i dveře, které se budou zasouvat do stropu.

Na úvod:
Jak jistě víte, v Half-Life se vyskytuje spousty různých typů dveří. V podstatě se jedná o dva typy. Prvním typem jsou klasické dveře na pantech, které se otvírají k nám nebo od nás (určitě je znáte z domova:-) a druhým typem jsou dveře nebo vrata, které se zasouvají do stropu, nebo do zdí...

Pojďme si tedy vytvořit nějakou druhou místnost, kterou propojíme chodbou s naší první místností a vytvoříme oba dva typy dveří. Budeme k tomu potřebovat pochopitelně kromě VHE a ZHLT naši první místnost a kterou o něco zlepšíme. Pro ty co nevědí jak ve VHE pracovat, doporučuji, aby se přečetli náš druhý tutoriál.

Druhá místnost:
Je prakticky jedno čím začneme, ale myslím, že začít druhou místností nebude na škodu. Pokud budeme tvořit složitější mapy, tak je pochopitelné, že bychom nejprve vytvořili chodbu a na ní následně napojili druhou místnost. Spustíme si tedy Hammer a otevřeme si naší první místnost. Pokud ji nemáte vytvořenou, stahujte zde.

Druhou místnost můžeme vytvořit ručně nebo pomocí metody hollow a nebo ji můžeme zkopírovat. Vybereme tedy Selection Tool [Shift+S] a označíme celou místnost jak v pohledu top (x/y) tak i v pohledu side (x/z). Mělo by to vypadat asi jako na obrázku 1. Poté stiskneme Enter a celá místnost nám z červená. Stiskneme Ctrl+C a Ctrl+V a místnost do mapy vložíme. Poté jí přeneseme v pohledu top (x/y) o 512 jednotek směrem dolů a v pohledu side (x/z) ji zarovnáme stejně s naší první místností, aby se překrývaly. Nyní z druhé místnosti vymažeme info_player_start. Nyní by to mělo vypadat nějak jako na obrázku 2.


Obr. 1
Označení místnosti

Obr. 2
Dvě místnosti

Místnost máme hotovou a chybí nám jen chodba. Ale nebudeme tak spěchat a naši novou místnost otexturujeme. Pochopitelně, že nemusíme, ale budou se nám lépe rozlišovat. Přesuneme se tedy do ní a vybereme Toggle texture application [Shift+A]. Tlačítkem browse spustíme texture managera a vybereme texturu C1A0_WX. Pravím tlačítkem myši ji aplikujeme na všechny zdi. Na podlahu bychom mohli umístit třeba texturu C1A0_LABFLRE a na strop C1A0_C1. Naše nová místnost by měla vypadat nějak jako na obrázku 3.


Obr. 3
Druhá místnost

Chodba:
Nyní přichází ten správný čas pro vytvoření chodby. Pro tu bych zvolil texturu C1A1C_W2. Chodbu můžeme udělat stejně jako místnost pomocí metody hollow nebo jednotlivými brushy.

Tip01:
Záměrně vybírám metodu hollow jelikož jsem minule zapomněl říct jeden důležitý fakt. Pokud nastavíme při zadávaní tloušťky stěny kladnou hodnotu bude celá místnost velká jako brush samotný, tzn., že vnitřek místnosti bude menší o tloušťku stěn. Pokud však zadáme zápornou hodnotu, vnitřek místnosti bude velký jako náš brush a stěny ho jakoby obalí. Blbě se to vysvětluje, chce si to vyzkoušet a pak snad pochopíte.

Vytvoříme si tedy brush o velikosti 128x480 jednotek a vysoký 144 jednotek a zarovnáme ho zároveň s podlahou našich místností. Poté vybereme naši chodbu (je červená) a příkazem Tools->Make hollow [Ctrl+H] otevřeme tabulku do které napíšeme hodnotu -16 a chodba je najednou dutá. Nyní ji opět vybereme a Tools->Ungroup [Ctrl+U] ji rozdělíme na jednotlivé brushe. Musíme vymazat přední a zadní část chodby jelikož se nám kryje se stěnami místností. Tak, zbývá upravit textury. Takže pro podlahu naší chodby vybereme texturu CRETE4_FLR03 a na zdi naších místností použijeme opět texturu chodby.

Nyní zbývá vytvořit ještě nějaké to světlo. Vybereme tedy texturu GENERIC028 a vytvoříme brush o velikosti 16x64 a vysoký 4 jednotky. Zarovnáme ho ke stropu a zhruba do jedné třetiny místnosti. Jako texturu světla použijeme ~LIGHT3F. Texturu budeme muset otočit o 90°. To uděláme v políčku Rotation. Poté stiskneme C a světlo již vypadá k světu. Chybí ještě entita light. Tu umístíme kousek pod světlo. Nastavení nechám na vás. Trošku zkuste experimentovat. Nyní pomocí Selection Tool [Shift+S] a stisknutého Ctrl vybereme více objektů najednou. Tedy obě světla (brush i entitu) a zkopírujeme je a vložíme do druhé třetiny místnosti. Naše situace by měla vypadat nějak takto (obrázek 4.).


Obr. 4
Chodba

Zasouvací dveře:
Nyní je ten správný čas přejít k samotné podstatě celého tohoto tutoriálu. Vytvoříme si dveře. Nejprve uděláme ty, co nám budou zajíždět do stropu (futer). Vybereme si texturu C1A0B_DR4 a vytvoříme brush o velikosti 96x48x128. Umístíme ho mezi druhou místnost a chodbu tak, aby překrýval zeď. Obrázek snad pomůže.


Obr. 5
Metoda Carve

Nyní když máme futra vytvořené potřebujeme označit a pomocí funkce Carve vyřízneme do zdi otvor veliký jako je označený brush. Takže vybereme Tools->Carve [Shift+Ctrl+C] a otvor je vyříznutý. To uvidíme, když futra posuneme. Pokud jsme tak učinili, tak je vrátíme zpět a zmenšíme je na tloušťku místnosti (16 jednotek). Pomocí Toggle texture application [Shift+A] vycentrujeme textury. Vybereme další texturu, tentokrát GENERIC121B (tato textura bude představovat boky dveří, vybrat můžeme i jinou, ale nebavilo mě hledat lepší) a vytvoříme brush o velikosti 64x112 a tlustý 48 jednotek. Na přední a zadní straně změníme texturu na C1A0B_DR4A a vycentrujeme ji. Opět dveře vybereme a stiskneme Tools->Carve [Shift+Ctrl+C]. Dveře posuneme pryč a upravíme vnitřek futer, nejlépe texturou FIFTIES_DR4B. Nyní dveře vrátíme zpět a zmenšíme tloušťku na 8 jednotek.

Teď přichází nejdůležitější část tvorby dveří a to samotné nastavení. Vybereme tedy dveře a stiskneme pravé tlačítko. Poté dáme z kontextového menu volbu Tie to Entity a vyskočí nám tabulka. V roletce Class vybereme func_door. Popíšeme si základní parametry.

func_door - záložka Class info:
Name - jméno entity; důležité pouze v případě, že se na ní jinou entitou odvoláváme; pokud ponecháme nevyplněné dveře se budou otvírat pokaždé, když k nim přijdeme
Global Entity Name - globální jméno entity; je vhodné pro dveře, které budou vidět ve více mapách najednou; v našem případě zbytečné
Kill Target - název objektu, který má být po aktivaci dveří (otevření/zavření) "zabit" - čili vymazán z mapy
Speed - rychlost otevírání/zavírání dveří v jednotkách za sekundu; hodnoty mohou být libovolné, čím vyšší, tím rychlejší (nejlépe okolo 100)
Move Sound - zvuk, který se přehraje při otvíraní/zavírání dveří
Stop Sound - zvuk, který se přehraje při zastavení dveří
delay before close - časový interval v sekundách; jak dlouho mají dveře zůstat otevřené; pro -1 se dveře nezavřou nikdy
Lip - počet jednotek, které mají po otevření dveří vyčuhovat ze stěny (při záporné hodnotě se o počet jednotek dveře do zdi zasunou) - raději vyzkoušejte
Damane iflicted when blocked - hodnota udává počet healty, která vám dveře uberou, pokud vás skřípnou
Target - jméno entity na kterou se odkazuje; například při otevření dveří se může stát nějaká událost…třeba se rozsvítí světlo nebo něco bouchne:-)
Minimum light level - minimální nasvícení dveří; pokud např. se v mapě dveře načtou jako již otevřené a následně bychom je zavřeli, byli by celé černé - nenasvícené; nasvícení docílíme buďto složitě (přes info_target - někdy jindy) nebo zadáním hodnoty od 0 (černočerná tma) po 1 (přesvícené)

Angle - úhel, pod jakým se dveře budou otvírat; chce to trochu zkoušet a dveře vybírat z různých pohledů; může zadat buď číselnou hodnotu nebo vybrat up či down

func_door - záložka Flags:
Starts Open - po načtení mapy budou dveře otevřené
Toggle - znemožnění otevření dveří pouhým dotekem; dveře lze otevřít pouze přes nějaký triggery nebo událost (např. výbuch nebo stisknutí tlačítka)
Use Only - dveře se otevřou pokud stisknete klávesu E (USE)
Monsters Can't - postavy nebudou moci dveře otvírat

Pro naši místnost nastavíme dveře následovně:

Speed: 75
Move Sound: Vakuum
Stop Sound: Chunk
delay before close: 4
Lip: 12
Minimum light level: 0.1 - 0.3
Angle: Up

Zbytek ponecháme nevyplněný. Pochopitelně, že můžete (vlastně musíte) experimentovat abyste přesně pochopili všechny parametry.

Dveře na pantech:
Dveří na pantech může být celá řada. My si pro jednoduchost zhotoví obyčejné železné dveře, které se spíše hodí někam do venkovních prostor, ale pro naše záměry budou úplně stačit. Co k tomu budeme potřebovat? Nejprve opět vyřízneme díru o velikosti dveří (zde futra dělat nebudu, protože si myslím, že je to jasné), následně brush dveří, který převedeme na entitu func_door_rotating a nakonec ještě jednu krychli s texturou ORIGIN. Tak sem vám řekl vše podstatné, takže to zvládnete sami, ne? Pro ty, co jsou trochu mimo, to raději rozepíšu...

Takže vybereme texturu GENERIC_113A a vytvoříme brush o velikosti 64x48x96 a umístíme ho podobně jako před tím skrz zeď. Nyní brush označíme a pomocí Tools->Carve [Shift+Ctrl+C] vyřízneme do zdi díru. Nyní brush (dveře) odtáhneme stranou a vnitřek futer pokryjeme stejnou texturou (tedy GENERIC_113A). Poté dveřím nastavíme tloušťku 8 jednotek a zarovnáme textury na bokách dveří (nahoře a dole je budeme muset otočit o 90°) na střed (pomocí C). Dveře vrátíme zpátky do správné polohy a vybereme texturu GENERIC_113, kterou umístíme na přední a zadní stranu a zarovnáme.

Dveře (alespoň ty fyzické) máme hotové. Nyní zbývá dodělat zmiňovanou krychli a vše pečlivé nastavit. Vybereme tedy texturu ORIGIN a vytvoříme brush o velikosti 32x32x32, který umístíme doprostřed dveří a zarovnáme ke straně, kde jsou panty (viz obr. 6 a 7). Tento brush nám určuje jakousi osu otáčení a používá se velmi často nejen u dveří, ale i u rotačních předmětů nebo vláčků… Také je dobře volit větší velikost tohoto brushe, jelikož je otáčení přesnější.


Obr. 6
Umístění ORIGINU

 

Obr. 7
Umístění ORIGINU - Camera

Nyní oba brushe vybereme (pomocí Selection Tool [Shift+S] a stisknuté klávesy Ctrl) a klineme na ně pravým tlačítkem v pohledu top (x/y). Vybereme Tie to Entity a vyskočí nám tabulka. V roletce Class vybereme func_door_rotating. Většina základních parametrů je totožná s klasickými dveřmi, takže popíšu jen ty odlišné:

func_door_rotating - záložka Class info:
Distance (deg) - jedná se o úhel zadaný ve stupních o který se dveře budou otáčet

func_door_rotating - záložka Flags:
X Axis - dveře se budou otvírat podle X-ové osy
Y Axis - dveře se budou otvírat podle Y-ové osy

Zbytek je shodný s předchozími dveřmi, nebo není důležitý a nebo jednoduše nevím, k čemu to je:-)

Pro naši místnost nastavíme dveře následovně:

Speed: 75
Move Sound: Squeaky 1
Stop Sound: No Sound
delay before close: 4
Lip: 0
Minimum light level: 0.1 - 0.3
Distance (deg): 75°

Zbytek ponecháme nevyplněný. A opět musíte experimentovat abyste přesně pochopili všechny parametry.

Tip02:
ZNěco málo k osám, i když by se to hodilo do jiného tutoriálu naznačím už tady. Představte si soustavu souřadnic a také osu, podle které chcete, aby se váš objekt otáčel (ať už to jsou dveře či nějaké vrtule). Osa X a Y jsou plošné osy a Z je prostorová. Takže pokud chceme, aby se dveře otvíraly od nás nebo k nám (z pohledu hráče) budou se otvírat (otáčet) podle osy Z. Nejjednodušší je to, že pokud víme podle které osy má otáčení probíhat a určíme správný pohled (top, side, front) není nic jednodušší než doplnit chybějící osu (a podle ní se to bude otáčet). Malý příklad: chci, aby se mi objekt otáčel z pohledu front ze předu podle hodinových ručiček. Proto vytvořím onen objekt a zaškrtnu v záložce Flags X Axis jelikož pohled front má souřadnice y/z a x-ová chybí. Nečekám, že jste to pochopili, ale zkuste to vyzkoušet a určitě pochopíte.

Závěr :
A to je asi závěr. Mapu pochopitelně uložíme, zkompilujeme a otestujeme. Takže jsme si dnes ukázali, jak vytvořit dveře zajížděcí (teď mě napadlo, že by se mohli jmenovat hydraulické:-) a také klasické dveře na pantech. Pomocí entit func_door a func_door_rotating se toho dál udělat mnohokrát víc než jen dveře a dají se použít v nejrůznějších případech, ale na ty už přijdete sami nebo se na ně zaměřím v nějakém z dalších tutoriálů.


Obr. 8
Dveře na pantech

Obr. 9
Chodba v reálu

Obr. 10
Hydraulické dveře

A co si vytvoříme příště? Ještě nevím. Napadá mě mnoho věcí, ale nejspíš se podíváme na sklo (tedy okno) a s tím souvisejí entitu func_breakable a různé způsoby renderováním textur (a s tím vlastně souvisí mimo jiné i například vstup do větrací šachty nebo žebřík).

 

SOUBORY

 

KOMENTÁŘE

 


jack

Díky za skvělej tutorial o tvorbě map.
Měl bych dotaz - světlo mi prosvítá skrz dveře a nevim jak se toho zbavit. Taky by bylo dobré (ale tušim, že to asi nejde), kdyby mohla postava vrhat stín.

Odpovědět


 

 

<-- První místnost Skla a okna -->

NAHORU ...

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