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
 Zvuky - I. část Pondělí 12. 06. 2006
<-- Rotační kulomet Hrátky s kamerou -->

Je to už dlouho co jsem sliboval, že se přes prázdniny budou místo novinek objevovat především tutoriály. Bohužel ze slibu sešlo a tak se nový tutoriál objevuje až teď. A na co se dneska podíváme? Z názvu tutoriálu je patrné, že půjde o ozvučení naší mapy.

Na úvod:
Jelikož se toho o zvukách v Half-Life dá napsat spoustu, rozhodl jsem se, že celý tutoriál rozdělím na dvě menší části. V první si ukážeme tři entity, které se zvuky pracují a pomocí nich docílíme mnoha zajímavých efektů. Ano, zvuky jsou důležité hlavně pro dokreslení atmosféry a proto by se jimi nemělo šetřit.

Hra nám nabízí na výběr z několika možností, jak mapu ozvučit. Základní entitou pracují se zvuky je nám již známá Point Entity ambient_generic, kterou jsme již používaly například při tvorbě teleportu. Ta se hodí na naprostou většinu doprovodných zvuků a hudby v mapě. Další neméně zajímavá entita je speaker, která se však, na rozdíl od předchozí, používá pouze pro dokreslení prostředí a pro všechny doprovodné zvuky (např.: střelba z povzdálí, křik vědců, výbuchy, apod.). A třetí a pro dnešek poslední entitou je entita env_sound. S použitím této entity jsem se zatím mockrát nesetkal, ale její význam spočívá v tom, že v určitém prostoru zabarví zvuk podle přednastavených parametrů (vysvětlení níže).

To by bylo na úvod a jen v rychlosti dodám, k čemu se v první části o zvukách nedostanu a napíšu o tom samostatný tutoriál. Především půjde o scripted_sentence. Tato entita má jediné použití a to dialogy postav, které si pomocí právě této entity můžeme jednoduše naskriptovat. S touto entitou a se samotnými dialogy také úzce souvisí soubor sentences.txt, který nalezneme v adresáři Half-Life -> valve -> pak0.pak a jeho podrobná analýza se také objeví v dalším díle (dneska se ale také k němu dostanu).

To už je ale opravdu vše a nyní se pojďme podívat na slibované tři entity a dát naší mapě tolik potřebné zvuky. Jen podotýkám, že příkladová mapa bude velmi strohá a tutoriál bude psaný bez její tvorby. Mapu přikládám pouze jako návod na nastavení samotné entity. A také si myslím, že vhodné situace pro použití zvuků si najde každý sám (Teleport je dostatečný příklad).

ambient_generic:
Hlavním nástrojem pro vkládání zvuků do hry je entita ambient_generic. Pomocí ní můžete přehrát vše co se nachází ve složce Half-Life -> valve -> sound nebo zabalené v souboru pak0.pak opět ve složce sound a to ve formátu .wav či .mp3 (není podporováno staršími verzemi Half-Life). Z toho vyplívá, že není nejmenší problém si vytvořit vlastní zvuky, zkopírovat si je do zmiňovaného adresáře a pracovat s nimi.

Nyní se pojďme podívat, co nám nabízí entita ambient_generic za možnosti nastavení:

ambient_generic - záložka Class_info:
Name: jméno entity, pomocí kterého se na ni odvoláme
WAV Name: cesta ke zvuku, který musí být nahraný ve složce Half-Life -> valve -> sound
Volume (10 = loudest): hlasitost zvuku od 1 do 10 (hodnota 10 je nejhlasitější)
Dynamic Presets: nastavení dynamického zabarvení zvuku
Start Volume: počáteční hlasitost zvuku
LFO: z anglického Low Frequence Oscilátor, nastavení chování zvuku, v podstatě nepotřebné

ambient_generic - záložka Flags:
Play Everywhere: zvuk bude slyšet po celé mapě
Small/Medium/Large Radius: poloměr ve kterém bude daný zvuk slyšet; hodnoty pro jednotlivé možnosti jsou 800/1250/2000 jednotek
Start Silent: po načtení mapy se zvuk nebude přehrávat a spustíme ho pomocí nějakého triggeru či tlačítka (nesmíme však zapomenout na jméno)
Is NOT lopped: zvuk se přehrává do nekonečna jako smyčka (např.: tekoucí voda, foukání větru), pokud však potřebujeme zvuk přehrát pouze jednou zaškrtneme tuto možnost (vhodné pro teleport)

Tohle je tedy výčet většiny položek, které můžeme nastavit a které budeme potřebovat. S ostatními jsem se nikde nesetkal a ani zmiňované LFO není potřeba uvádět. Nyní bych uvedl jednoduchý příklad pro tuto entitu.

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ě:

Name: sound
WAV Name: ambience/siren.wav
Volume (10 = loudest): 10
 
Small Radius: zaškrtneme, ale v tomto případě je jedno co vybereme
Start Silent: také zaškrtneme, jelikož chceme, aby se zvuk přehrál po stisku tlačítka

To by bylo k této entitě vše. Po stisknutí tlačítka by se měl ozvat zvuk sirény, který bude se bude opakovat neustále dokola, dokud tlačítko nestiskneme znovu. Pokud není někomu něco jasné, podívejte se do minulých tutoriálů, kde jsme ji několikrát použili. Pochopení této entity je velice důležité a záleží na ní úspěch celé vaší mapy či modifikace.

speaker:
Entita speaker je trochu jiná než ta předchozí a slouží pouze pro dokreslení atmosféry. Jednoduše můžeme říci, že pomocí ní to mapy vkládáme pouze doprovodné zvuky, které jsou slyšet někde v dálce, někde z povzdálí. Jedná se tedy o střelbu, výbuchy, křik umírajících vědců, atd. Její použití také souvisí s textovým souborem sentences.txt, který nalezneme zabalený v pak0.pak ve složce sound. O tomto souboru se zmíním v další části povídání o zvukách v Half-Life.

Proto si tuto entitu projedeme velmi rychle. Entita funguje tak, že v určitém časovém intervalu přehraje jednu náhodně vybranou sekvenci ze skupiny přednastavených pasáží. Tyto sekvence naleznete právě v souboru sentences.txt proto bude nejlepší, když si ho nyní otevřete. Po otevření se nám objeví něco takového.

// HUMAN GRUNTS
HG_GREN0 hgrunt/clik(p120) grenade! clik
HG_GREN1 hgrunt/(t30) clik take!(e75) cover!(s5) clik
HG_GREN2 hgrunt/clik clik oh! shit! clik
HG_GREN3 hgrunt/(p110 t40) clik(p120) get!(e78) down!(t30) clik
HG_GREN4 hgrunt/clik(p110) (t40) of!(e75) god! clik(p110)
HG_GREN5 hgrunt/clik no! clik
HG_GREN6 hgrunt/clik move! clik(p120)

První řádek je název skupiny sekvencí (ale jelikož jsou na začátku //, jde pouze o komentář, který engine přeskakuje). Následující řádky jsou pak jednotlivé sekvence, kde HG_GREN+číslo je vždy název právě jedné pasáže. Zbytek řádku je pak samotná definice sekvence, kde jsou vybrány určité zvukové stopy (.wav) včetně cest. Více si o tomto souboru řekneme v dalším pokračování a pochopitelně, že se dozvíte i více o podivných písmenech a číslech v závorkách.

Pro dnešní tutoriál a hlavně pro entitu speaker nám postačí pouze název jednotlivých sekvencí, ale BEZ čísel, tedy HG_GREN. Když pojedeme souborem sentences.txt zjistíme, že se jich zde vyskytuje celá řada jako například WILD, FAR_WAR, NEAR_WAR, atd.

To by bylo tak na úvod o této entitě a nyní se pojďme podívat, co nám nabízí za možnosti nastavení:

speaker - záložka Class_info:
Name: jméno entity, pomocí kterého se na ni odvoláme
Announcement Pressets: přednastavená oznámení, která jsme mohli slyšet během poutě skrze komplex Black Mesa
Sentence Group Name: zde se zadávají názvy sekvencí ze souboru sentences.txt bez čísla na konci; o tom jsem dlouze psal výše
Volume (10 = loudest): hlasitost zvuku od 1 do 10 (hodnota 10 je nejhlasitější)

speaker - záložka Flags:
Start silent: entita nebude po načtení mapy vydávat zvuk, ale budeme ji moci spustit přes nějaký spouštěč (trigger_one, tlačítko)

U této entity nebudu přikládat žádnou příkladovou mapu, jelikož si myslím, že její použití není nikterak těžké, nicméně soubor sentences.txt je poněkud nepřehledný a ještě jednou podotýkám, že se jím budu podrobně zabývat v dalším pokračování o zvukách společně s entitou scripted_sentence, kde teprve naplno poznáme jeho sílu a uplatnění.

env_sound:
Na závěr tu máme ještě poslední entitu, která sama o sobě žádný zvuk nepřehrává ani nevytváří, ale pouze ho modifikuje podle nastavených parametrů. Jednoduché vysvětlení by mohlo být to, že jste v jeskyni a tam je zvuk trochu jiný než v hale či venku. A právě tato entita zvuk upraví do vámi chtěného výstupu. Pojďme se tedy podívat na možnosti nastavení. Jsou pouze dvě:

env_sound - záložka Class_info:
Radius: poloměr okolo entity, který udává hranici pro změnu výstupu zvuku
Room Type: předdefinované typy výstupů zvuku; na výběr jich je rovných 28

A to je vše. Nic víc zde na nastavení není. Jediné co je třeba mít na paměti, je fakt, že pokud projdete skrz hranici dovnitř kruhu, zvuk se změní. Pokud však zamíříte ven z kruhu, nestane se nic. Zvuk bude stále zabarvený. Proto je nutné vložit do mapy další entitu env_sound, kde se jako Room Type nastaví hodnota 0 = Normal (off).

Závěr:
Jak jsem psal na začátku, zvuky jsou nesmírně důležitou součástí každé hry a Half-Life tomu není výjimkou. Proto ozvučení svých map nepodceňujte a neodflákněte. Záleží na tom část úspěchu!

Dneska jsme si představili tři entity sloužící k manipulaci se zvukem. První, ambient_generic, je nesmírně důležitá a skutečně se bez ní neobejdeme. Druhá a třetí jsou už spíše pro fajnšmekry a z mých zkušeností jsem třetí zmiňovanou, env_sound nepoužil, ba ani nikde neviděl.

V druhé části o zvukách se zaměříme na dnes nakousnutý soubor sentences.txt a entitu scripted_sentence. Kdy se však do druhého dílu pustím je ve hvězdách. Nyní připravuji jiný tutoriál. Přesto to nebude dlouho trvat.

 

SOUBORY

 

KOMENTÁŘE

 

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

 

<-- Rotační kulomet Hrátky s kamerou -->

NAHORU ...

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