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
 Hrátky s kamerou Pondělí 19. 10. 2006
<-- Zvuky - I. část Tvorba exteriéru -->

V dnešním tutoriálu se podíváme na velmi kvalitní nástroj, kterým se naše mapy dají oživit a práce s ním není vůbec těžká. Jedná se o kameru. Tou můžeme natáčet různé prostory a hráči tak poskytnout pěknou podívanou, třeba na to, co ho čeká v další místnosti.

Na úvod:
Co všechno k tomu budeme potřebovat? Kamera v Half-Life funguje sama o sobě a k její funkčnosti stačí pouze entita trigger_camera. Zde se nadefinuje jméno kamery a jméno objektu, který má snímat, nebo jednoduše úhel, kterým se má dívat. Pak už ji jen stačí přes nějaký trigger zapnout.

To by bylo všechno, ale to by bylo přece velice jednoduché. Tato kamera by byla na místě a pouze by se natáčela kolem vlastní osy. Proto bychom ji mohli vytvořit nějaký pěkný model, který by kameru reprezentoval fyzicky. To pouze pro případ, že bychom se na ni mohli v mapě podívat.

Ale ty nejkrásnější animace (myslím, že tomu tak můžeme říkat), jsou bezesporu s imaginární pohyblivou kamerou, která točí například průlet chodbou. A na to se také na závěr podíváme. Takže hurá do toho.

Bezpečnostní statická kamera:
Nejprve tedy obyčejná kamera, která bude umístěná někde v rohu místnosti. Čím tedy začít? Vytvořte místnost a někde vložte tlačítko (nastavení proberu později). Také tam pochopitelně vložte entitu info_player_start a další postavu (vědce, či barneyho). Já volím entitu monster_barney. Naše situace může vypadat jako na následujícím obrázku.


Obr. 1
Naše místnost

Nyní potřebujeme umístit kameru. Takže vybereme entitu trigger_camera a vložíme ji do mapy. Bude dobré ji vložit někam do horního rohu. Já jsem ji umístil do stejného místa, odkud jsem pořizoval předchozí obrázek. Nyní nám tedy nic nebrání v tom, abychom si otevřeli Properties a podívali, co tu máme za možnosti nastavení:

trigger_camera - záložka Class_info:
Target: jméno entity, ne kterou má kamera zaměřit svůj pohled (tzv. ohnisko)
Delay before trigger: prodleva v sekundách, která udává, za jak dlouho se má kamera zaměřit na své ohnisko (target)
Kill Target: entita, která se má po aktivaci kamery z mapy odstranit
Name: jméno entity, pomocí něhož uvádíme kameru do chodu
Hold Time: čas v sekundách po který bude kamera aktivní
Path Corner: jméno entity path_corner, kde bude kamera začínat (jde o případ, pokud chceme vytvořit animaci - ukážeme si na závěr tutoriálu)
Initial Speed: počáteční rychlost v jednotkách (pokud bude kamera pohyblivá)
Acceleration units/sec^2: kamera může zrychlovat (v jedn/sek^2)
Stop Deceleration units/sec^2: a pochopitelně že i zpomalovat

trigger_camera - záložka Flags:
Start At Player: kamera začíná snímat z pohledu hráče a následně přejíždí na první path_corner
Follow Player: jako fokus kamery (tedy target) je vybrán hráč a kamera ho sleduje
Freeze Player: po aktivaci kamery dojde ke "zmražení" hráče, hráč se tedy nemůže pohybovat (dobré pro animace, kdy hráč není v záběru a to proto, aby se mu nemohl nic stát)

Nyní máme popsány všechny možnosti nastavení kamery a je načase si nastavit tu naši a také se vrátit na k nastavení tlačítka, které bude velmi jednoduché. A na závěr si vymodelujeme naši kameru. Nejprve tedy nastavení naší kamery.

Vytvoříme si libovolnou místnost, umístíme do ní světlo a entitu info_player_start a nějaké tlačítko do jehož položky target zadáme sound. Nyní do mapy vložíme entitu ambient_generic a nastavíme jí následovně:

Target: barney
Name: camera1
Hold Time: 10
 
Angle: 180

To je vše. Nyní zbývá nastavit tlačítko. To si nastavte podle sebe a do kolonky Target nastavte camera1. Na závěr ještě pojmenujte entitu monster_barney barney a zkuste mapu zkompilovat. Po stisku tlačítka by se měla aktivovat kamera, která se otočí na Barneyho s po deseti vteřinách se opět vypne. V záběru uvidíte i sebe a budete se moci pohybovat.

Než přejdeme dál, hodilo by se poznamenat, že tento způsob tvorby je nejjednodušší, ale může se stát, že v místnosti nemáme žádnou entitu monster_barney ani žádnou podobnou, nebo prostě nechceme, aby kamera zabírala právě tuto entitu. Proto musíme použít entitu info_target, která má pouze položku Name, kde ji pojmenujeme. Tato entita se bude chovat jako cíl pohledu kamery.

Fyzická kamera:
Pokud vytvoříte takovouto místnost, bylo by dobré, aby byla vidět i fyzická kamera. Aby bylo jasné, že tam skutečně je. Dodá to realističnosti mapy. Bohužel si ji musíme vymodelovat sami. Ale nebudeme to nijak komplikovat a uděláme si jednoduchý model, který si převedeme na entitu func_wall. Takže naše kamera může vypadat jako na následujícím obrázku.


Obr. 2
Model kamery

Bezpečnostní kamera II.:
Nyní si naši situaci trochu modifikujeme. Vytvoříme si kameru, která bude zabírat chodbu, kde budou číhat vojáci. Kamera se bude aktivovat přes display jako to bylo v Blue-Shiftu. Co bude nové? Kamera nebude mít jeden cíl pohledu, ale bude se otáčet tam a zpět.

Jak tedy začít? Já jsem upravil naši místnost z předchozí situace, kterou jsem doplnil o dveře. Ty si nastavte jak chcete. Tlačítko také zůstává (nebo můžete vytvořit nějaký display podobný tomu z Blue-Shiftu a udělat z něho tlačítko), pouze jsem změnil Target na mm_camera, jelikož musíme použít multi_manager. Dále jsem vytvořil chodbu ve tvaru L a na druhý konec jsem umístil tři vojáky (entita monster_human_grunt) a také by se hodily nějaké zbraně abychom mohli vojáky zabít. A pochopitelně si chodbu osvětlíme.


Obr. 3
Chodba ve tvaru L

Nyní budeme potřebovat kameru, 4 entity path_corner a jeden func_train. A nakonec již zmiňovaný multi_manager. A jak to bude fungovat? Kamera bude mít jako cíl nastavený func_train, který nebude vidět, ale bude se pohybovat po path_corner tam a zpět. To vytvoří iluzi, že se kamera otáčí.


Obr. 4
Popis a rozmístění entit

Objekty tedy umístěte do mapy podle předchozího obrázku. Než si je všechny nastavíme, vytvoříme si func_train. V tomto případě se nejedná o obyčejný výtah, nebo píst, ale pouze imaginární cíl, který v mapě nesmí být vidět a ani by neměl být pevný (tedy bychom o něj neměli zavadit). Toho docílíme jednoduše. Vytvořte brush o velikosti 64x64x32 s jakoukoliv texturou (já používám C3A2A_TNK3B - je to pěkně viditelná červená). Do něj vložte ještě jeden brush o velikosti 32x32x32 s texturou ORIGIN. Tento brush určí přesný bod záběru kamery, proto je nutné použít právě texturu ORIGIN. Poté oboje označte a převeďte na entitu func_train. A nyní už k nastavení:

trigger_camera:
Target: camera_train
Name: camera2
Hold Time: 25
 
Freeze Player: zaškrtneme, aby se hráč nemohl hýbat, po dobu, co bude kamera aktivní
 
func_train:
Name: camera_train
Render Mode: Texture
FX Amount (1 - 255): 0
First stop target: pc1
Speed: 80
 
Not Solid: zaškrtneme, aby entita nebyla pevná a hráč o ni nemohl zavadit
 
path_corner 1:
Name: pc1
Next stop target: pc2
 
path_corner 2:
Name: pc2
Next stop target: pc3
 
path_corner 3:
Name: pc3
Next stop target: pc4
 
path_corner 4:
Name: pc4
Next stop target: pc1
 
multi_manager:
Name: mm_camera
camera2: 1.0
camera_train: 3.0

Tím je naše snažení u konce. Pokud mapu zkompilujeme a spustíme, objevíme se v místnosti, kde je obrazovka. Když u obrazovky stiskneme "E", spustíme multi_manager. Ten po vteřině aktivuje entitu trigger_camera, která se zaměří na func_train. Ten bude aktivován vzápětí a bude jezdit po jeho připravené dráze určené entitami path_corner tam a zpět. Po 25 vteřinách se kamera deaktivuje a mi budeme moci pokračovat dveřmi do chodby, kde zabijeme vojáky. A díky kameře o nich již víme.

Animace (průlet kamerou po chodbě):
Na závěr sem si připravil ještě jednu situaci. Do této chvíle jsme měli kameru pouze staticky na jednom místě a ona pouze sledovala buď statický objekt (monster_barney, info_target) nebo pohyblivý func_train což vytvořilo iluzi, že se kamera otáčí. Nyní si ukážeme, jak jednoduše vytvořit animaci průletu kamery chodbou.

Vytvořte si nějakou chodbu a na obou koncích udělejte zatáčky. Za jeden roh vložte info_player_start a za druhý roh několik entit monster_human_grunt. Můžete i v prostředku udělat dveře a třeba i sklo (viz moje příkladová mapa). Co budeme potřebovat? Pochopitelně trigger_camera, dále pak trigger_once na spuštění animace kamery a několik entit path_corner, které nám budou definovat dráhu pro kameru. Nakonec ještě jeden info_target, který určí cíl pohledu.


Obr. 5
Chodba

Já jsem do mapy vložil ještě pár zbraní a pro odlišení od předchozího příkladu, kde jsme pomocí bezpečnostní kamery zjistili, že jsou za rohem vojáci, jsem použil i env_explosion, kterou odpálíme přes kolonku Fire On Pass u jednoho z posledních path_corner a ta vojáky zabije. Více na následujících obrázcích.


Obr. 6
Popis a umístění entit

Nyní se podíváme na nastavení všech entit. Bude velmi podobné předchozím příkladům takže to prolítneme rychle.

trigger_camera:
Target: target_camera
Name: camera3
Hold Time: 20
Path Corner: pc1
Initial Speed: 80
 
Start At Player: po zaškrtnutí způsobí, že kamera bude pokračovat z pohledu hráče
Freeze Player: zaškrtneme, aby se hráč nemohl hýbat, po dobu, co bude kamera aktivní
 
info_target:
Name: target_camera
 
trigger_once:
Target: camera3
 
env_explosion:
Name: camera_expl
Magnitude: 250

Dále je nutné definovat cestu kamery pomocí path_corner. Já jsem jich použil celkem devět, ale počet je jen na vás. Pochopitelně, že čím více, tím bude animace plynulejší. Jejich nastavení je velmi jednoduché. Jména jsem zvolil pcX, kde X je číslo od 1 do 9. Do kolonky Next Stop Target se píše jméno následujícího path_corneru, v našem případě tedy pcX + 1. U posledního path_corneru nechte tuto kolonku prázdnou. A ještě budeme potřebovat odpálit naši výbušninu. Takže u nějakého 7 path_corneru napište do kolonky Fire On Pass jméno bomby, tedy camera_expl. To je vše.

Snad jste to pochopili. Co se tedy stane? Pokud projdete trigger_once, spustí se kamera, která jakoby bude pokračovat z vašeho pohledu po připravené cestě z path_cornerů a bude zabírat entitu info_target (ta může být libovolně v mapě, tedy i za zdí). Až dojede na 7 path_corner dojde k odpálení výbušniny a zabití vojáků. Po 20 vteřinách se kamera vypne a hráč bude moci pokračovat již vyčištěnou cestou.

Závěr:
A to je dnes skutečně úplně všechno. Vytvořit kameru je v Half-Life velice jednoduché a pro začátek vám určité bude stačit první příklad. Nicméně jsem doplnil i další dva a to pro demonstraci různých situací a možností kamery. A jak je vidět, je to opravdu silný nástroj, na který se v Half-Life trochu zapomnělo. A to je škoda. A abych nezapomněl, příklady se pochopitelně dají kombinovat, takže můžete mít letící kameru, která zabírá pohyblivý objekt. Ale to je už jen na vaší představivosti.


Obr. 7
Místnost s tlačítkem

Obr. 8
Pohled z kamery


Obr. 9
Místnost s diplayem

Obr. 10
Pohled z kamery

Obr. 11
Souboj s vojáky


Obr. 12
Start animace

Obr. 13
Průlet chodbou

Obr. 14
Vojáci před výbuchem

Nyní mi zbývá jen popřát mnoho úspěchů s tvorbou map a brzy se zase ozvu. A s čím? Mám skutečně mnoho nápadů, jen vybrat ten správný:-) Nicméně do příště ZDAR!!!

 

SOUBORY

 

KOMENTÁŘE

 

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

 

<-- Zvuky - I. část Tvorba exteriéru -->

NAHORU ...

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