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
 Tlačítka Středa 15. 03. 2006
<-- Spouštěče událostí Rotační objekty -->

Vítejte již v sedmém tutoriálu, který se objevuje na hl-ZONE. Minule jsme si ukázali jak ve VHE vytvářet spouštěče událostí a těmi uvádět do pohybu různé předměty, nebo spouštět naskryptované sekvence. Dnes se zaměříme na něco velmi, velmi podobného. Na tlačítka.

Na úvod:
Ano, je tomu tak. Dneska to bude velmi podobné tomu minulému, ale přesto tento tutoriál uvádím, i když jen jako doplněk. Přesto si myslím, že tlačítka jsou ve téměř všude a proto jsou stejně důležitá. Co tedy vytvoříme? Co třeba si udělat místnost rozdělenou nějakou prosklenou přepážkou. V jedné půlce bude nějaký pult s ovládáním a ve druhé jednoduché světlo a krabice s výbušninou.

Na ovládacím pultu budou dvě tlačítka (respektive jedno tlačítko, func_button, a jedna páka, func_rot_button). Tlačítkem budeme moci zhášet nebo rozsvěcovat světlo ve druhé místnosti a pákou dálkově odpálíme krabici, která zničí sklo v přepážce a tím se nám uvolní cesta do dál. Tak to by bylo na úvod a nyní se můžeme pustit do toho...

Místnost:
Myslím, že místnost již máte natrénovanou z předchozích tutoriálů a pokud ne, nezbývá než vás odkázat na druhý tutoriál, který se tvorbou místnosti zabývá, nebo na jakýkoliv jiný. Takže vytvořte místnost, umístěte nějakou přepážku, zhruba do jedné třetiny a do ní vložte sklo. To pochopitelně vyřízněte pomocí Tools -> Carve [Ctrl+C] a převeďte na entitu func_breakable. Nastavení si popíšeme později. Poté vytvořte nějaký ovládací pult, který by měl být vysoký okolo 40 jednotek (nejlépe 38) a pochopitelně nějaká pomocná světla, aby po zhasnutí toho hlavního světla byla mapa trochu osvětlená. A klidně i entitu info_player_start. Moje místnost vypadá nějak jako na následujících obrázcích.


Obr. 1
Řídící místnost

Obr. 2
Druhá místnost

Obr. 3
místnost ve VHE

Světlo a func_button:
Tak, nyní si vytvoříme světlo. Uděláme ho trochu hezčí než jaké jsme dělali doposud. Vybereme texturu naší zdi (v mém případě C1A0_LABW4) a uděláme brush o velikosti 16w, 64l a 16h. Poté ho označíme a v pohledu side (x/z) ho pomocí Clipping Tool [Shift+X] ořízneme. Jako na obrázku 4.


Obr. 4
Clipping Tool [Shift+X]

Tip01:
Pomocí nástroje Clipping Tool [Shift+X] můžeme vybrané předměty (brushe) libovolně ořezávat v jednom ze tří pohledů. Pochopitelně, že tyto pohledy pro ořezání můžeme libovolně kombinovat a tím dosáhnout velice zajímavých objektů. Nástroj funguje jednoduše. Stačí vybrat brush, pak samotný nástroj a pomocí dvou teček stanovit koncové body úsečky, která se vytvoří mezi nimi. To co je vykresleno bílou barvou, zůstane a zbytek jednoduše zmizí. Samotné oříznutí se provádí pochopitelně Enterem.

Také existuje několik pomůcek, které nám mohou pomoci. Tak například při stisknutém Ctrl, kliknutím na tečku a tažením se neposouvá pouze jedna tečka, ale obě najednou, což je užitečné při kopírování určitých úhlů. Postupným klikáním na tečku se invertuje výběr, takže pokud jste se spletli nemusíte vše dělat znovu, ale jednoduše výběr obrátíte a vymažete rychleji tu správnou část. Doporučuji, se tomuto nástroji věnovat trochu více a naučit se s ním dobře zacházet, protože pro tvorbu map samotných je nepostradatelný.

Po oříznutí změníme textury naší "přepony" na nějaké světlo, například ~LIGHT3C a umístíme ji někam ke zdi. Pod ní vložíme light, kterou jednoduše pojmenujeme svetlo.

Následuje tlačítko, které bude na ovládacím pultu v řídící místnosti. Vytvoří tedy bruch 16x16 a vysoký asi 2 jednotky. Poté vybereme tedy nějakou textury na boky. Já zvolil GENERIC031B a zarovnal ji od spodu, což vypadá relativně reálně. Na vrchní face použijeme například texturu +ABUTTON2 a pomocí tlačítka Fit ho zarovnejte na střed. Poté brush převedeme na entitu func_button. Nyní si popíšeme jednotlivé možnosti nastavení:

func_button - záložka Class_info:
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
Name: jméno entity, v tomto případě téměř zbytečné, ale pouze téměř
Target: cíl na který se má odkazovat (jméno jiné entity, která má po aktivaci něco udělat)
Pitch Yaw Rall (X Y Z): směr, na který má tlačítko po aktivaci odjet
Speed: pokud jde o pohyblivé tlačítko, tak je to rychlost v jednotkách za sekundu
Health (shootable if >0): pokud je hodnota větší než nula jde o healthy, které je nutno tlačítku ubrat pro jeho aktivaci; tlačítko nejde aktivovat jinak než ubráním healthů, takže E nefunguje
Lip: určuje vzdálenost, kterou bude tlačítko přesahovat, pokud má být pohyblivé, podobné u dveří
Sounds: že by zvuky, které bude tlačítko vydávat při aktivaci?
delay before reset (-1 stay): čas v sekundách do opětovné aktivace tlačítka, -1 způsobí, že tlačítko zůstane neaktivní na vždy
Delay before trigger: čas v sekundách, o který se má opozdit začátek prováděné akce

func_button - záložka Flags:
Don't move: pokud chceme mít pěkné statické tlačítko, stačí zaškrtnou a nikam nám po aktivaci neodjede
Toggle: tlačítko, které je možné spustit pouze přes jinou událost, tedy jiným spouštěčem (např. trigger_once)
Sparks: po stisku tlačítka nám zajiskří, takže bude mírně porouchané
Touch Activates: tlačítka se stačí pouze dotknout, nemusí se mačkat E

A naše tlačítko si nastavíme následovně:

Target: svetlo (to co je u entity, kterou chceme stisknutím uvést do chodu)
Sounds: vyzkoušejte sami, ale určitě nějaký nastavte
Delay before reset (-1 stay): 2
Delay before trigger: 0

Don't move: zaškrtneme (způsobí, že tlačítko se po aktivaci nebude pohybovat)

Tím bychom měli mít tlačítko hotové a pokud mapu nyní zkompilujeme, mělo by se po stisknutí našeho tlačítka světlo pojmenované svetlo rozsvítit a následně zhasnout.

Tvorba páky:
Nyní si vytvoříme druhé tlačítko, které bude v podstatě pákou. Bude se skládat z brushe o libovolné výšce (asi 16 jednotek) a šířce 4x4 jednotky a brushe s texturou ORIGIN, který umístíme tam, kde by se mělo tlačítko pohybovat (vzpomeňte si na dveře, kde se textura ORIGIN používala jako panty). Poté by bylo dobré o několik málo jednotek protáhnout samotné tlačítko do ovládacího pultu, aby se po otočení neodkryla jeho spodní část (to asi těžko pochopíte, ale myslím, že se s tím v budoucnu určitě setkáte; a nejen u tlačítek). Lepší to asi bude z obrázku 5. Poté vybereme jak samotnou páku, tak i brush s ORIGINem (pomocí stisknutého Ctrl) a převedeme na entitu func_rot_button. Nejprve si popíšeme jeho atributy (pouze ty, které se liší od jeho neotáčejícího se kolegy).


Obr. 5
func_rot_button v pohledu side

Obr. 6
Ovládací pult

func_rot_button - záložka Class_info:
Targetted object: to samé jako Target tedy cíl na který odkazuje
Change Target object: nemám ponětí, jelikož jsem to nikdy nepoužil, ale pravděpodobně půjde o nové jméno entity, které bude platit po aktivaci páky
Distance (deg): úhel ve stupních, o který se má naše páka otočit

func_rot_button - záložka Flags:
Not Solid: pokud zaškrtneme, tlačítko se bude chovat jako by v mapě fyzicky nebylo, tedy, bude možné procházet skrze něj; na funkčnost to vliv nemá
Reverse Dir: obrácený směr pohybu tlačítka
X Axis: tlačítko se bude pohybovat okolo osy X
Y Axis: tlačítko se bude pohybovat okolo osy Y

Naši páku nastavíme takto:

Targetted object: krabice (to co je u entity, kterou chceme stisknutím uvést do chodu)
Sounds: vyzkoušejte sami, ale určitě nějaký nastavte
Delay before reset (-1 stay): -1
Delay before trigger: 0
Distance: 45

Y Axis: zaškrtneme (způsobí, že se páka bude pohybovat okolo osy Y)

Nyní musíme vytvořit nějakou krabici s výbušninou, která po aktivaci páky vybouchne a rozbije nám sklo a my může pokračovat dál. Takže vezmeme texturu BCRATE09A a uděláme krychli o 64 jednotkách. Textury zarovnáme (může na dno použít i jiné) a převedeme na entitu func_breakable. A nastavíme následující parametry:

Name: krabice (to co je u entity, kterou má být tato aktivována)
Target on break: sklo
Material type: wood
Explode magnitude (0=none): 50-100

Only trigger: zaškrtneme, což způsobí, že bedna nepůjde rozstřelit zbraní

Nakonec nám zbývá se vrátit k našemu sklu, které odděluje obě poloviny místnosti. Takže ho převedeme opět na entitu func_breakable a nastavíme:

Name: sklo (to co je u entity, kterou má být tato aktivována)
Render Mode: texture
FX Amount (1 - 255): 100

Only trigger: zaškrtneme, což způsobí, že sklo nepůjde rozstřelit zbraní

Závěr:
Tím je naše snažení u konce. Stačí mapu zkompilovat a vyzkoušet, zda je vše nastaveno tak jak má a zda vše funguje. A pokud ano, nezbývá než mít dobrý pocit:-)


Obr. 7
Naše místnost

Obr. 8
Odpálili jsme krabici

Obr. 9
Zhasli světlo tlačítkem

Tlačítka se budou používat úplně všude, takže si pořádně natrénujte jejich tvorbu, která je velice jednoduchá. Přesto doporučuji - nepodceňujte je. Možná tato mapa opět není geniální příklad, ale jde jen o tu jedinou věc a tou je položka Target. Věřím, že dokážete vymyslet daleko lepší případy, jak ilustrovat funkčnost a tvorbu tlačítek. Mezi nejvíce používané budou určitě patřit vypínače světel (což jsme si ukázali), ovládání výtahu a dalších strojů, nebo pro "zadávání" kódu u dveří.

Takže to byl sedmí tutoriál a nyní k osmému. Myslím, že nebude trvat déle než týden, co by se tady mohl objevit. Jaké bude téma? Podíváme se na pohyblivé předměty. Více zatím neprozradím. Takže za týden ZDAR!

 

SOUBORY

 

KOMENTÁŘE

 

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

 

<-- Spouštěče událostí Rotační objekty -->

NAHORU ...

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