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
 Laser a elektřina Pátek 09. 06. 2006
<-- Teleport Rotační kulomet -->

Už je do dlouhá doba, kdy se zde objevil poslední tutoriál, ve kterém jsme si vytvořili teleport. Nic se zde neobjevilo z jediného prostého důvodu, že se přiblížil čas přijímaček a mě nezbylo nic jiného než se opět položit do učení. Nakonec vše dopadlo skvěle, přijímačky jsou úspěšně za mnou a proto se můžeme opět vydat na pouť skrze VHE. Dneska se zaměříme na efekty a tvorbu elektrických výbojů, které do Half-Life jednoznačně patří.

Na úvod:
Elektrické výboje, lasery, kouř a mnoho dalších věcí se dá velmi jednoduše vytvořit pomocí entity env_beam. Věřte nebo ne, není to vůbec nic složitého. Nicméně je takřka bláznovství popisovat tvorbu nějaké mapy, jelikož si její uplatnění najde každý sám. Takže to přejdeme velmi rychle.

Trošku teorie:
Nejprve by bylo dobré vysvětlit jak entita env_beam vlastně funguje. Princip je kupodivu velmi jednouchý. Kromě klasických nastavení (které si probereme později) jako je jméno, jsou tu dvě položky, které odkazují na začátek a konec výboje. Tyto cíle jsou udány pomocí entity info_target. Takže kromě tří entit není nic víc potřeba.

Abych byl úplně konkrétní, ve VHE je i entita env_laser, která je pouhým zjednodušením té předchozí. Ke správnému chodu potřebuje pouze jeden info_target jako svůj cíl, jelikož sama osobě určuje začátek laseru, env_beam však nikoliv. Přesto je mezi nimi více rozdílů, jelikož env_laser má o něco méně možností nastavení a proto s ní nejdou dělat všechny efekty. Proto se zaměříme na pouze na env_beam.


Obr. 1
Testovací místnost

Obr. 2
Testovací místnost

Příkladová mapa se bude odehrávat v jedné místnosti, kde budou boxy s jednotlivými ukázkovými výboji a pochopitelně pulty s tlačítky, kterými budeme jednotlivé výboje zapínat, popřípadě vypínat. Blíže ji specifikují dva obrázky.

Na závěr našeho malého výletu do teorie popíši základní nastavení entity env_beam, na které se pak budu pouze odkazovat. Takže parametry jsou:

env_beam - záložka Class_info:
Name: jméno entity, pomocí kterého se na ni odkazujeme (pokud nechceme aby byl výboj aktivní od začátku)
Start Entity: jméno entity info_target, která reprezentuje začátek beamu
Ending Entity: jméno entity info_target, která reprezentuje konec beamu
Render FX: způsob renderování beamu, podobné jako Appearance u světla
Brightness (1 - 255): jas beamu
Beam color (R G B): samotný beam je možno libovolně dobarvit
Radius: poloměr jaký budou mít jednotlivé výboje, funguje pouze v posledním příkladu
Life (seconds 0 = infinite): životnost beamu, po uplynutí času zhasne
Width of beam: šířka beamu v pixelech
Amount of noise: při hodnotě 0 je beam rovný, při jiné hodnotě se rozvlní (nutno vyzkoušet)
Sprite name: jméno spritu, který se zobrazuje
Frames per 10 seconds: počet snímků spritu, které se přehrají za 10 sekund
Starting Frame: obrázek, od kterého se začne přehrávat
Strike again a time (secs): režim strike, při kterém beam ubírá healthy
Damage/second: škoda způsobená beamem za sekundu

env_beam - záložka Flags:
Start On: beam bude aktivní po načtení mapy
Toggle: beam půjde spustit přes nějaký trigger nebo tlačítko
Random Strike: náhodné paprsky
Start/End Sparks: na začátku/konci beamu se objeví jiskry
Decal End: na konci beamu se objeví decal, neboli textura, která bude znázorňovat popálení např.: zdi
Shade Start/End: způsobí, že se bude beam na začátku/konci postupně objevovat/ztrácet

Klasický laser:
Začneme úplně obyčejným paprskem, který vychází z jednoho bodu a končí v bodě jiném. Pokud bych vzpomínal na nějaký příklad z Half-Life, napadá mě například laserový paprsek u turretů, kterým když jste prošli, začali po vás střílet. Vytvoříme si entitu env_beam, kterou vložíme někam do mapy a dvě entity info_target jejichž nastavení prosté. Startovní entita bude mít název beam1_start a cílová beam1_end. A nastavení samotného laseru by mohlo vypadat nějak takto:

Name: beam1
Start entity: beam1_start
Ending entity: beam1_end
Beam Color: vybereme nějakou barvu; já volím červenou, tedy 255 0 0
Life: 0
Width of beam: 10
Amount of noise: 0
Sprite Name: sprites/laserbeam.spr
Strike again time: 1
Damage / second: 0

Nakonec ještě přidáme k tlačítku, kterým budeme tento beam zapínat a vypínat do položky target hodnotu beam1, tedy jméno našeho prvního beamu. Pokud mapu zkompilujeme a stiskneme příslušné tlačítko, mělo by vše vypadat nějak takto.


Obr. 3
Klasický laser

Elektrický výboj:
Nyní se podíváme na tvorbu elektrického výboje, který se od laseru liší pouze barvou a tím, že není rovný, ale vlní se. K tomu slouží položka Amount of Noise. Takže nastavení bude vypadat asi takhle:

Name: beam2
Start entity: beam2_start
Ending entity: beam2_end
Beam Color: vybereme nějakou barvu; já volím modrou, tedy 0 0 255
Life: 0
Width of beam: 15
Amount of noise: 50
Sprite Name: sprites/laserbeam.spr
Strike again time: 1
Damage / second: 20

A pochopitelně, že příslušnému tlačítku přiřadíme do položky name hodnotu beam2, tedy jméno našeho druhého beamu. Pokud mapu zkompilujeme a stiskneme příslušné tlačítko, mělo by vše vypadat nějak takto.


Obr. 4
Elektrický výboj

Přerušovaný elektrický výboj:
Teď náš předešlý výboj opět trochu modifikujeme a to tak, aby se na chvíli objevil a pak zase mizel. Myslím, že to přidá na realističnosti jak výboje tak i celé mapy. Pro názornost jsem změnil i barvu a přidal trochu šířky. Nastavení se změní nepatrně:

Name: beam3
Start entity: beam3_start
Ending entity: beam3_end
Beam Color: vybereme nějakou barvu; já volím žlutou, tedy 255 255 0
Life: 1
Width of beam: 25
Amount of noise: 50
Sprite Name: sprites/laserbeam.spr
Strike again time: 1
Damage / second: 20

A pochopitelně, že příslušnému tlačítku přiřadíme do položky name hodnotu beam3, tedy jméno našeho třetího beamu. Pokud mapu zkompilujeme a stiskneme příslušné tlačítko, mělo by vše vypadat nějak takto.


Obr. 5
Přerušovaný elektrický výboj

Výboj s různými konci:
No, nevím jak přesně tento výboj jednoduše pojmenovat. Půjde o to, že přidáme další koncové entity info_target, které pojmenujeme opět beam4_end. Náš výboj bude začínat klasicky v beam4_start, ale bude končit vždy v jedné z koncových entit. To si také vynutí zaškrtnutí volby Random Strike v záložce Flags. Nic víc se měnit nebude.

Name: beam4
Start entity: beam4_start
Ending entity: beam4_end
Beam Color: vybereme nějakou barvu; já volím žlutou, tedy 255 255 0
Life: 1
Width of beam: 25
Amount of noise: 50
Sprite Name: sprites/laserbeam.spr
Strike again time: 1
Damage / second: 20
 
Random Strike: zaškrtneme

A pochopitelně, že příslušnému tlačítku přiřadíme do položky name hodnotu beam4, tedy jméno našeho čtvrtého beamu. Pokud mapu zkompilujeme a stiskneme příslušné tlačítko, mělo by vše vypadat nějak takto.


Obr. 6
Výboj s různými konci

Portál:
To nejlepší jsem si schoval na samotný závěr. Určitě si vzpomínáte na konec původního Half-Life a cestu vláčkem "neprostorem". Poté se otevřeli dveře a objevil se teleport se zelenými výboji všude okolo. Princip je celkem jednoduchý, takže si ho pojďme vytvořit. Dopředu říkám, že pokud do teleportu vstoupíte, nikam se neteleportujete. Naopak, zabije vás. Jak na to?

Nejprve je důležité vymazat oba info_target. To způsobí, že env_beam bude mít za začátek sebe. Dále jsem použil entitu env_sprite o jejímž nastavení jsme se už bavili a pochopitelně multimanager, kde jsou nastaveny klíče na samotný beam, dále na sprite a sklo, které se po zapnutí beamu rozbije. Nakonec je zde i entita trigger_hurt, která vás zabije, jakmile vstoupíte do teleportu. Nás však bude zajímat jak se změní nastavení env_beam.

Name: beam5
Start entity: beam5_start
Ending entity: nic nenastavujeme
Beam Color: vybereme nějakou barvu; já volím fialovou, tedy 128 0 128
Radius: 256
Life: 0.5
Width of beam: 10
Amount of noise: 75
Sprite Name: sprites/nhth1.spr
Strike again time: -0.5
Damage / second: 100

Tak to by mělo být vše. Pokud stisknete tlačítko, spustí se beam, objeví se teleport (sprite), rozbije se sklo a aktivuje se trigger_hurt. A jak to vypadá? Nějak takto:


Obr. 7
Portál

Závěr:
Tak jsme se probojovali na samotný závěr. Co jsme se si teda všechno ukázali? Tak převážně užití entity env_beam několika různými způsoby. Vždy jde jen o nastavení, takže nevidím problém, aby jste si s tím vyhráli do sytosti a vymysleli mnoho nových variant. Tato entita se dá využít i v jiných případech s jinými sprity a ne vždy se musí jednat právě o výboje či lasery.

Co je ale důležité a mělo by to zde zaznít, je užití entity info_target jako začátků a konců. V žádném případě si nemyslete, že se jedná o jedinou entitu, kterou lze cílové body definovat. Právě naopak. Většina entit může být cílovým bodem. Nejzajímavější efekt se dá docílit entitou func_train, která se pohybuje po nějaké trajektorii a tím se nám plynule přesouvá i paprsek. Možností je mnoho, takže můžete zkoušet.


Obr. 8
Místnost ve hře...

Obr. 9
... a zapnuté všechny výboje

Také mě napadl jeden příklad, který je sice velmi složitý na tvorbu a časově náročný, ale ve své podstatě velmi jednoduchý. Jde o jeden veliký stroj ze začátku Half-Life (jedete kolem něho ve vláčku a je po pravé straně), kolem kterého létají elektrické prstence dolů. Je to nádherná ilustrace právě užití func_train jako cílových bodů. No, možná se zde za pár týdnů objeví na takovýhle přístroj tutoriál.

Nicméně jsme na konci tutoriálu a já se pokusím další napsat co nejdříve. O čem bude zatím nevím, ale já na něco přijdu…:-) Že by tvorba rotačního kulometu?

 

SOUBORY

 

KOMENTÁŘE

 


hAssassin (email: voker@email.cz)

A ještě jedna věc. Musí se přiznat, že jsem inspiraci hledal na serveru TheLambda.sk, kde jsem objevil i jeden z příkladů o kterém sem nevědel (byl to ten čtvrtý). Za což TheLambda děkuji.

Odpovědět


 

 

<-- Teleport Rotační kulomet -->

NAHORU ...

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