Kolize statických modelů
Nezanedbatelnou složkou u modelů v enginu je jejich interakce s hráčem nebo jinými modely. Přesněji, nyní se budeme věnovat kolizím u statických modelů. Pokud do herního prostředí vložíme nějaký statický model, engine automaticky zabezpečí, aby jím hráč nemohl procházet (pokud nezvolíme jinak ve vlastnostech entity). Engine ohraničí model neviditelnou bariérou, do které hráč nemůže vstoupit.
Pokud pracujeme se složitějšími modely – např. model budovy, kdy je třeba, aby hráč mohl vstoupit i do interiéru – používáme jiný postup. Spolu s modelem budovy si vytvoříme zjednodušený ohraničující model. Tento model nese hlavní tvary původního modelu. Výpočet kolizí je poměrně náročný a při přehnaném nebo špatném použití dokáže hravě zabrat celý výkon procesoru. Proto se při tvorbě kolizních modelů snažíme docílit jejich nejednodušších tvarů s ohledem na správnou funkci modelu v hře (viz obrázek č. 44).
Jestliže si přejeme, aby hráč se statickým modelem v herním prostředí mohl manipulovat – přemisťovat jej – musíme provést několik úkonů. Ze všeho nejdříve musíme definovat novou herní entitu. To učiníme následovně:
- V adresáři „/base/def“ si vytvoříme textový soubor s názvem „moveable_igel.def“.
- Ve vytvořeném souboru zapíšeme definici naší nové entity takto:
entityDef moveable_igelitka {
"inherit" "moveable_base_fixed"
"model" "models/mapobjects/igel/igel.ase"
"density" "0.04"
"friction" "0.2"
"bouncyness" "0.15"
"snd_bounce" "paper_impact"
}
- Soubor uložíme.
- Při novém spuštění DoomEditu se nám objeví naše entita „moveable_igelitka“ v nabídce pod pravým tlačítkem myší v sekci „moveable“. Takto také pohyblivý statický model do DoomEditu vložíme. Model necháme označený a z horní nabídky vybereme příkaz „Selection » Export » To CM“ (viz obrázek č. 45). Editor si v zápětí vyžádá potřebný model – v našem případě „igel.ase“ – a pak již zapíše kolizní model (vytvoří nový soubor „igel.cm“). Soubory s koncovkou CM obsahují kolizní modely ke statickým modelům, které hra potřebuje pro správné fungování systému kolize rigidních těles. Tyto soubory se musejí nacházet ve stejném adresáři jako model a mít totožný název (např. muj_model.ase a muj_model.cm).
Navazující článek: Tutorial 07 - Modely postav
Kapitoly lnku: