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
 Rotační kulomet Pondělí 12. 06. 2006
<-- Laser a elektřina Zvuky - I. část -->

Jistě si pamatuje na situace z původního Half-Life, kdy jste našli rotační kulomet, který jste mohli ovládat a trochu si pročistit cestu dále. V dnešním tutoriálu se proto podíváme na to, jak si takový kulomet vymodelovat a také na to, jak ho uvést do provozu.

Na úvod:
Ano, dneska se zaměříme na entitu func_tank a vymodelujeme si klasický kulomet, který byl viděn i v Half-Life. Dále použijeme entitu func_tankcontrols. Ta slouží podobně jako například trigger_once a pouze definuje místo, odkud budeme moci náš kulomet ovládat. A také do mapy vložíme i jeden ambient_generic, který nám kulomet ozvučí a env_shooter. Ten se bude starat o vypadávají nábojnice. Tak a to je všechno. Teď hurá na to.

Hala:
Vytvořte si nějakou halu nebo místnost, ale doporučuji o něco větší. Minimálně okolo 512 (1024) x 256 jednotek, jinak bude místnost moc malá a podle mě je používání kulometu lákavé právě v rozlehlých halách nebo otevřených pláních. Pochopitelně, že ji osvětlíme a někam hodíme entitu info_player_start. To by bylo vše. Teď je důležité si vymodelovat samotný kulomet.


Obr. 1
Naše hala

Tvorba kulometu:
Vytvořit kulomet není nic složitého. Pokud vám chybí inspirace, stačí se podívat do Half-Life, nebo na obrázek níže. Pokud by se vám přeci jen nechtělo ztrácet čas s tvorbu kulásku, můžete si ho stáhnout jako mnou vytvořený model.

Pokud máte čas a trpělivost, pojďme společně do toho. Na úvod řeknu, že jako textury jsem použil tyto AMMO02 na tělo kulometu a zásobník, CRATE09B na ostatní plochy (trojnožka), PFAB_VENT2 na rukojeť a část hlavně a nakonec PFAB_VENT3 na hlaveň. A ještě jedna důležitá věc, která měla možná zaznít o něco dřív. Samotný kulomet se bude skládat ze dvou částí. První část tvoří tělo, zásobník, rukojeť, hlaveň a štíty. Tohle všechno bude převedeno na entitu func_tank a bude se pohybovat podle toho, jak budeme kulometem otáčet. Druhou část tvoří pouze trojnožka, která bude pochopitelně stát nehybně na zemi.

A na závěr míry. Tělo kulometu je veliké 36x10x10, zásobník 8x16x8, větší část hlavně 20x6x6 a hlaveň samotná 38x2x2. Trojnožka pod kulometem je vysoká 34 jednotek, ale muže být i o něco vyšší... Na závěr přikládám i obrázek s popisy. Snad to z něho pochopíte.


Obr. 2
Díly kulometu

Kulomet jako func_tank:
Tak, kulomet snad máme vytvořený, takže se můžeme podívat na nejpodstatnější část dnešního povídání. Nejprve, je nutné říct, že func_tank potřebuje ke svému chodu brush s texturou ORIGIN, která udává jeho osy otáčení. Takže si vytvoře takovýhle brush a umístěte ho někam na trojnožku, tam, kde se má kulomet otáčet. Poté vyberte výše zmiňované části (tedy tělo, zásobník, rukojeť, hlaveň a štíty) a pochopitelně že i tento brush a vše převeďte na entitu func_tank. Vyvoláme z nabídky Properties a podíváme se, co tu máme:

func_tank - záložka Class_info:
Name: jméno entity, pomocí kterého se na ni odvoláme
Target: při použití entity se může aktivovat další entita (nutné je poznamenat, že jedno použití je jeden výstřel); tato položka se hodí pro definování zvuku
Yaw (rate, range, tolerance): tyto tři položky slouží k nastavení úhlů, o které budeme moci kulometem otáčet a to ve vodorovném směru
Pitch (rate, range, tolerance): tyto tři položky slouží k nastavení úhlů, o které budeme moci kulometem otáčet a to ve svislém směru
Barrel (lenght, Horizontal, Vertical): další tři položky, které pro změnu slouží k definování velikosti kulometu a tedy místa, kde končí hlaveň a odkad se budou objevovat náboje a sprite u hlavně (bráno od středu ORIGIN brushe)
Smoke Sprite: cesta ke spritu, který znázorňuje kouř
Flash Sprite: cesta ke spritu, který pro změnu bude zobrazovat záblesk u hlavně.
Sprite scale: měřítko spritu, který se objevuje u hlavně
Rate of fire: kadence kulometu (zkuste nastavit třeba na 100)
Damage Per Bullet: škoda způsobená jedním nábojem v healthech (opět zkuste nastavit na 100)
Bulle accurancy: rozptyl zbraně (na výběr máme z 5 možností, první - perfekt shock střílí velmi přesně a poslední Extra-large cone je velmi nepřesná)
Bullets: nadefinuje kulky, které budeme střílet, ale rozdíl v tom nevidím...

func_tank - záložka Flags:
Active: zbraň bude aktivní od začátku, nebo aktivovatelná přes nějaký spouštěč; pozor však na to, že bude střílet i proti vám
Only Direct: nemám ponětí, pokud někdo ví, dejte please vědět
Controllable: kulomet budeme moci ovládat i my

Tohle jsou ty nejdůležitější parametry u entity func_tank. Nyní se podíváme na to jak si ji nastavíme pro náš případ:

Name: gun
Target: gun_sound
Yaw rate: 120
Yaw range: 75
Yaw tolerance: 15
Pitch rate: 120
Pitch range: 5
Pitch tolerance: 5
Barrel Lenght: 75
Barrel Horizontal: 0
Barrel Vertical: 7
Flash Sprite: sprites/muzzleflash2.spr
Sprite scale: 0.75
Rate of fire: 10 (ale zkuste i víc)
Damage per bullet: 12 (a opět dejte víc)
Bulle accurancy: small cone
Bullets: 12mm
 
Controllable: zaškrtneme, abychom mohli kulomet ovládat

Tím máme kulomet nastavený. Nyní musíme vytvořit brush s texturou AAATRIGGER, který umístíme tam, kde chceme umožnit ovládání kulometu stisknutím tlačítka USE. Takže někam za kulomet. Brush převedeme na entitu func_tankcontrols a do kolonky Tank entity name vložíme jméno našeho kulometu, tedy gun.

Trochu reality:
Když mapu zkompilujeme a pokusíme se vystřelit z kulometu, mělo by být vše OK, jenže. Co by to bylo za kulomet, který nevydává žádný zvuk? A ze kterého nelítají žádné vystřelené nábojnice? Pojďme tedy přidat naší mapě více realističnosti. Nejprve zvuk. Umístěte tedy někam na konec hlavně entitu ambient_generic. Nastavení je prosté. (Opět zde neuvádím vysvětlení jednotlivých parametrů, jelikož této entitě se budu věnovat v jiném tutoriálu).

Name: gun_sound
WAV name: ambience/biggun1.wav
 
Large Radius: zaškrtneme, aby byl zvuk slyšet v co největší vzdálenosti
Start Silent: také zaškrtneme, aby se zvuk nepřehrával od začátku
Not toggled: zaškrtneme, jinak nebude možné opětovně volat entitu po každém výstřelu

Tak, zvuk je hotový. Druhou částí, kterou jsem slíbil, jsou odlítávající nábojnice. K těmto účelům je ve VHE entita env_shooter. Jde v podstatě (ostatně jak napovídá sám název) o střelce, ale určitých modelů o určitém počtu určitým směrem. Pojďme se podívat na jeho nastavení:

env_shooter - záložka Class_info:
Name: jméno entity, pomocí kterého se na ni odvoláme
Pitch Yaw Roll (X Y Z): nastavení směru, kterým budou modely vystřelovány
numer of Gibs: počet kusů, které se vystřelí při jednom volání entity
Delay between shoot: prodleva mezi jednotlivými výstřely (pokud je nastaveno více modelů na jeden vystřel, nemá nic společné s opětovným voláním entity)
Gib Velocity: rychlost vystřelovaných modelů
Course Variance: odchylka jednotlivých výstřelů
Gib Life: životnost jednotlivých vystřelených modelů v sekundách
Model or Sprite name: jméno modelu nebo spritu, který má být vystřelován
Material sound: zvuk, který má zaznít po dopadu modelu na zem
Gib Sprite Scale: měřítko modelu nebo spritu
Gib Skin: pokud má model definováno více vzhledů, můžete je nastavit zde

env_shooter - záložka Flags:
Repeatable: po zaškrtnutí zajistí opětovné volání entity

Nyní je důležité vědět, že tato entita vystřeluje modely z svého středu, takže ji umístěte tak, aby střed entity se dotýkal těla kulometu, jinak nám budou náboje lítat ze vzduchu. Pro náš případ si env_shooter nastavíme následovně:

Name: gun_sound
Pitch Yaw Roll (X Y Z): 0 270 0 (pouze v mém případě, radši vyzkoušejte sami)
Numer of Gibs: 1
Delay between shots: vybereme 0
Gib Life: 4 (nábojnice budou zůstávat na zemi)
Model Name: spritesmodels/shell.mdl
Material Sound: none (ale možno i metal)
 
Repeatable: zaškrtneme, jinak nám vylítne pouze jedna nábojnice.

A je to. Zvuk i nábojnice jsou hotové. Nyní by to chtělo ještě jednu věc. A tou jsou vojáci. Proto vložte do mapy několik entit monster_human_grunt, které otočte proti kulometu. Nic víc u nich nenastavujte. Nyní můžete mapu zkompilovat. Pro jistotu přikládám ještě jeden obrázek, kde je popsáno rozmístění entit okolo kulometu:


Obr. 3
Situace objektů okolo kulometu

Závěr:
Dneska jsme se podívali na tvorbu rotačního kulometu z původního Half-Life. Věcička jednoduchá, účinná a užitečná. Myslím, že se jedná o krásné doplnění map ať už do vaší modifikace nebo do multiplayeru. Jen dodám, že ve VHE jsou další entity podobného charakteru a to func_tanklaser, func_tankmortar a func_tankrocket, které mají nastavení podobné a všechny jsme opět viděli v původním Half-Life. Na jejich použití snad již přijdete sami.


Obr. 4
Nehezká situace...

Obr. 5
Olovo v akci

Obr. 6
Dobřá práce...:-)

A jsme na úplném závěru. Nyní mě zbývá vám popřát pěkný zbytek dne a těšit se na další tutoriál. Snad ho napíšu brzy, ale ještě nevím o čem bude. Takže zatím ZDAR!

 

SOUBORY

 

KOMENTÁŘE

 


frosty22 (email: frosty22@seznam.cz)

No tak podle toho jaké mas Boty... Kdybys mel ZBoty tak by stačilo dát ho do mapy a on by se jí naučil po chvíli sám (udělala by se analýza a vznikl soubor mapa.nav ve složce maps)... Jiné boty teď nevím, ale někteří ty horší snad nemají ani trasování a chodí poslepu... a tipuji, že budeš mít PodBot a u těch možná je nějakej příkaz do konzole...

Odpovědět


A.B.E. no.24 (email: A.B.E.no.24@seznam.cz)

Zdravím, máte hodně dobré návody.
Potřebuju pomoc, jak dostanu do vytvořený mapy Boty? Spouštím to v CS 1.6.
Asi musím vytvořit nějaký ten TOOL ale nevím který........

Odpovědět


 

 

<-- Laser a elektřina Zvuky - I. část -->

NAHORU ...

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