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
 Otočný výtah Čtvrtek 06. 04. 2006
<-- Výtah Unikající pára -->

Tak. A je to tady. Máme před sebou jubilejní desátý tutoriál! Minule jsme si řekli něco o entitě func_train a vytvořili si jednoduchý výtah. A jak jsem na konci minulého dílu slíbil, dnes se na moment vrátíme k tvorbě výtahu a také se zaměříme na nový druh, tentokrát na otočný výtah.

Na úvod:
Jak jsem již naznačil, v první části se podíváme znovu na klasický výtah a zkusíme si ho vytvořit pomocí entity func_plat a trochu netradičním způsobem, pomocí func_door. V další části se již budeme plně věnovat našemu tématu a vytvoříme kvalitní otočný výtah pomocí již zmíněné entity func_platrot. Již ze samotného názvu také vyplývá, že se výtah bude během své jízdy nahoru či dolů otáčet okolo své osy Z, takže nástupiště nebudou ve stejné úrovni (vzpomeňte třeba na level ANOMALOUS MATERIALS z původního Half-Life. Dost již bylo řečí, hurá do práce!

Výtah pomocí func_plat:
Nyní se tedy pojďme podívat na výtah vytvořený pomocí func_plat. Myslím, že nemusíme vůbec nic vytvářet a v klidu nám postačí minulá mapa, kterou pouze poupravíme. Takže pokud vám chybí, koukněte na minulý tutoriál nebo stahujte zde.

Takže si otevřeme naši starou mapy a vybereme si entitu func_train, která představuje náš výtah. Přepneme se do properties a v roletce Class vybereme func_plat. Nyní něco o parametrech, které vezmu velmi hopem, jelikož se v téměř ničem neliší od func_train. Takže tady jsou:

func_plat - záložka Class_info:
Name: jméno entity, pomocí kterého se na ni odkazujeme
Global Entity Name: globální jméno, které se používá pokud je třeba držet informace o entitě ve více mapách najednou
Move Sound: zvuk, který bude výtah vydávat, když se bude pohybovat
Stop Sound: zvuk, který se přehraje vždy, když zastaví
Sound Volume 0.0 - 1.0: hlasitost zvuku, který výtah vydává
Travel altitude (can be negative): počet jednotek, které je nutno překonat od jednoho místa k druhému; při záporné hodnotě pojede výtah nahoru
Speed: rychlost, kterou se bude výtah pohybovat
Minimum light level: hodnota minimální nasvícení entity

func_plat - záložka Flags:
Toggle: entitu musíme spustit nějakým spouštěčem (tlačítko, trigger_once)

Z toho nám vyplývá, že vše můžeme vše nechat jak je, jediné co změníme je Travel altitude na hodnotu, kterou si budeme muset odměřit. U mě je -176 a v záložce Flags zaškrtneme Toggle. A pochopitelně, že tato entita nepotřebuje žádné path_cornery, takže je v klidu vymažte.

Výtah jako func_door:
Další zajímavou i když trochu neobvyklou metodou je použití entity func_door. Postup je snadný. Náš výtah převeďte na entitu func_door a vše opět nechte nastaveno jak je. Některé parametry se přeci jen budou měnit:

Delay before close: -1 (aby výtah jezdil, jen když ho uvedeme do provozu)
Lip: 8 (vysvětlení níže)

Angle: Up

Toggle: pouze přes trigger (klasika)

Tip01:
Jak jsem slíbil, na chvilku se zdržím u parametru Lip. Pro pochopení je důležité objasnit, že entita func_door se chová tak, že se posune o svoji velikost daným směrem (a pochopitelně i nastavenou rychlostí). Pro realističnost je tu právě parametr Lip, který udává počet jednotek, o které se entita posune dál (v případě záporné hodnoty; tedy zmizí ve zdi) nebo bude vykukovat (pokud je číslo kladné; tedy nezajede úplně celá). Vím, že to asi bude nesrozumitelné, ale hrozně těžko se to vysvětluje, takže pokud nechápete, zkoušejte a zkoušejte.

Tím je i náš druhý výtah hotov a záleží jen na vás, kterou ze tří metod si vyberete. Myslím, že se ve většině případů spokojíte s func_plat, jelikož je rychlá a jednoduchá, ale na nějaký případy se bez func_train neobejdete. Dost už opakování věcí z minula. Pojďme se vrhnout na věci k našemu tématu.

Realizace mapy:
Takže na úvod, co budeme potřebovat? Za prvé: dvě místnosti, které budou pod sebou a budou na sebe kolmé (z pohledu Top), budou tedy otočeny o 90°. Dále jakousi šachtu, která bude obě místnosti spojovat. V ní se bude náš výtah pohybovat. Dále pochopitelně kabinku výtahu, několik tlačítek, kterými budeme výtah uvádět do chodu a také si ho popřípadě přivolávat. Nakonec pár světel a info_player_start. Tak hurá na to...

Místnosti:
Vytvoříme si místnost. Klasickou metodou o velikosti, kterou uznáte za vhodné, přesto doporučím, aby byla o něco větší. Poté místnost celou vybereme a zkopírujeme. Nyní ji opět vybereme a pomocí Tools -> Transform [Ctrl+M] otočíme o 90° podle osy Z. Nyní bychom měli novou, otočenou místnost umísti o něco níže. Já jsem zvolil rozdíl obou podlah na 512 jednotek. Viz následující obrázky:


Obr. 1
Místnosti (Top)

Obr. 2
Místnosti (Side)

Nyní si obě místnosti převede na jednotlivé brushe a podlahu horní spolu se stropem a podlahou spodní místnosti o něco zmenšíme a znovu zkopírujeme a zaplníme prázdné místo. To proto, že jelikož jde otočný výtah, vytvoříme oválnou, nikoliv čtvercovou kabinku a pochopitelně, že i sama šachta bude mít kruhový půdorys. Takže si vytvoříme šachtu.

Vybereme si texturu třeba C1A1C_W2 a vpravo si vybereme Arch Tool. Vytvoříme brush veliký 160x160x512 jednotek a stiskneme enter. Naskočí nám tabulka s nastavením Archu. Hodil by se obrázek a krátký popis, co? Takže Wall width určuje tloušťku stěny. Zajímavé je, že ji musím nastavovat vždy o polovinu menší než je původní. Tedy pokud chci stěnu silnou 16 jednotek, nastavím 8. A to je i náš případ. Další je Numer of Sides. Ten určuje počet jednotlivých brushů. V našem případě 16. Arc. značí velikost kruhu ve stupních. Pro nás bude nejlepší celý kruh, tedy 360. Start Angle udává pozici od které se má naše těleso vykreslovat. V případě kruhu je prakticky jedno, jakou nastavíte. Add Height označuje hodnotu, o kterou se mají následující brushe posunout oproti předchozím. Skvělé na tvorbu točitých schodišť. Ale v našem případě ponecháme 0. Tak, stiskneme OK a měli bychom mít hotový dutý válec bez podstav.


Obr. 3
Arch Properties

Poté pomocí Carve vyřízneme do podlahy horní a do stropu spodní místnosti otvory. Přebytečné brushe odstraníme a šachtu máme hotovou. Nakonec by bylo dobré abychom do podlahy spodní místnosti vložily válec (Cylinder), který o 8 jednotek snížíme. Výtah přece musí někam zajíždět. A na strop horní místnosti můžeme vytvořit také mály váleček, ze kterého bude naopak vyjíždět lano. Podívejte na následují obrázky, ať víte o čem mluvím.


Obr. 4
Horní místnost

Obr. 5
Výtahová šachta

Obr. 6
Spodní místnost

Kabinka výtahu:
Nyní si ve stručnosti popíšeme tvorbu kabinky. Pro ty, kterým se tvořit nechce přikládám ji již vytvořenou a stahovat můžete zde. Pro ty ostatní uvádím, že naše kabinka bude mít kruhový půdorys a bude veliká 128x128x144 jednotek. Takže si vyberme nějakou texturu, já volím C1A1W1D a vytvoříme si válec, který bude veliký právě 128x128 a vysoký 8 jednotek. Vhodně otexturujeme podlahu a boky a zkopírujeme ho o 128 jednotek výše. To bude strop kabinky. Opět zvolíme textury. Nyní vytvoříme stěny. Ty uděláme pomocí Arch Tool, nicméně nastíním, jak budou vypadat. Takže dveře žádné nebudou. Ale udělal bych 3 okna. Podívejte se na další obrázek a zkuste se trochu naučit pracovat s Arch Tool. V mapách ho budete využívat neustále.


Obr. 7
Kabinka výtahu

Obr. 8
Kabinka uvnitř

Tak to by byla kabinka. Následuje tvorba nějakého lana a pochopitelně něčeho co bude lano ukotvovat ke kabince (něco jako je stropě horní místnosti). Nyní ještě následuje tvorba brushe s texturou ORIGIN. Všechny rotační objekty ji musí mít. A kabinka je hotova. Zde je výsledek:


Obr. 9
Kabinka je hotová

Výtah jako func_platrot:
Tak, zbývá výtah umístit na své místo a převést na entitu func_platrot. Podotýkám, že výtah musí být natočen tak jako bude v cílové pozici. Její nastavení si probereme trochu podrobněji:

func_platrot - záložka Class_info:
Name: jméno entity, pomocí kterého se na ni odkazujeme
Global Entity Name: globální jméno, které se používá pokud je třeba držet informace o entitě ve více mapách najednou
Move Sound: zvuk, který bude výtah vydávat, když se bude pohybovat
Stop Sound: zvuk, který se přehraje vždy, když zastaví
Sound Volume 0.0 - 1.0: hlasitost zvuku, který výtah vydává
Speed of rotation: rychlost, kterou se bude výtah pohybovat a zároveň otáčet
Travel altitude (can be negative): počet jednotek, které je nutno překonat od jednoho místa k druhému; při záporné hodnotě pojede výtah nahoru
Spin amount: údaj ve stupních, o který se má kabina otočit
Minimum light level: hodnota minimální nasvícení entity

func_platrot - záložka Flags:
Toggle: entitu musíme spustit nějakým spouštěčem (tlačítko, trigger_once)
X Axis: kabina se bude otáčet podle osy X
Y Axis: kabina se bude otáčet podle osy Y

A náš výtah si nastavíme následovně:

Name: rotvytah
Move Sound: vyzkoušejte a nějaký nastavte
Stop Sound: vyzkoušejte a nějaký nastavte
Sound Volume 0.0 - 1.0: 0.5
Speed of rotation: 128
Travel altitude: 496 (musíte odměřit pro svoji mapu)
Spin Amount: 90
Minimum light level: 0.2

Toggle: zaškrtneme, protože se na něj budeme odvolávat pomocí tlačítek

Tak a je to... Že to nebolelo? Myslím, že ne a otočný výtah máme hotový. Zbývá vytvořit několik tlačítek, které umístěte jak uznáte za vhodné. Nastavení je jednoduché: Target: rotvytah a ve Flags zaškrtneme Don't move.

Nakonec doplníme pár světel a entitu info_player_start a můžeme mapu zkusit zkompilovat. Pokud nám vše funguje jak má, odvedli jsme velmi dobrou práci. Přesto si však myslím, že se na mapě objevil LEAK, takže se na ní nezobrazují světla. O tom jsem psal již minule.

Tip02:
Nicméně se v tomto případě nejedná o to, že lano výtahu (tedy část entity) je mimo mapu (tedy ve VOID) ale pravděpodobně půjde o malinkou mezírku mezi brushy, která vznikla řezáním pomocí Carve do podlahy a stropů (jelikož jsme vyřezávali válce). Nejjednodušší způsob jak tomuto předejít je okolí obalit dalšími brushy a tím zatmelit ty malé škvíry. Zásadně však nedoporučuji dělat kolem mapy velkou dutou "místnost" jelikož by to zbytečně mapu zvětšovalo a tím i prodlužovalo dobu načítaní a tzv. Base Patches ani nemluvě.

Závěr:
Tak a nyní jsme již na úplném konci dnešního povídání. Myslím, že jsme toho dneska zvládli dost. Vždyť jsme si vytvořili klasický výtah dvěma novými, jednoduššími, ale ne tak často používanými způsoby a hlavně jsme vymodelovali a uvedli do provozu kabinku, která nejen, že jezdí z patra do patra, ale současně se i otáčí okolo své osy. Bohužel, func_platrot nemá jiné použití, než na tvorbu rotačních výtahů, takže mnoho kreativity nám nenabídne. Nicméně se dá použít na vše co má překonávat nějakou vzdálenost a k tomu se otáčet okolo vlastní osy. A v tomto případě si myslím, že uplatnění najde ve spoustě situací.


Obr. 10
Výtah v horní místnosti

Obr. 11
Výtah jede dolů

Obr. 12
Výtah příjíždí

Co říci závěrem? Snad jen, že to do příště ve zdraví přežijte a do týdne se snad opět ozvu. Nic víc se tu již nedočtete. O příštím tutoriálu se zatím zmiňovat nebudu.

 

SOUBORY

 

KOMENTÁŘE

 

Žádné komentáře nejsou zatím k dispozici
 

 

<-- Výtah Unikající pára -->

NAHORU ...

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