kHED - výroba kousků
Řekněme, že máme model stolu - třeba ten co jsme si vyrobili v článku o vlastních modelech - a tento model chceme udělat rozbitným. Protože už máme v khedu nějakou tu praxi, tak si vytvoříme kousky, na které se tento model rozletí. Nejlepší bude upravit původní model. Buď ho můžete jednoduše rozebrat na objekty ze kterých se skládá (deska, nohy, spojnice mezi nohami), nebo si můžete vyhrát a trochu ho rozřezat.
Nyní bude potřeba každý kousek uložit jako samostatný smd soubor - můžeme je pojmenovávat třeba kousek1.smd, kousek2.smd, atd. Budeme také potřebovat qc soubor - ten seženeme jednoduše tak, že jeden z kousků exportujeme do mdl. Upravíme náš qc soubor co se nám vygeneroval a najdeme následující část:
$bodygroup body
{
studio "kousek1.mdl"
}
kHED při exportu modelu do mdl vytvořil smd soubor kousek1.mdl.smd, naše soubory jsou ale bez ".mdl" před příponou, takže qc náležitě upravíme a přidáme další kousky jako submodely:
$bodygroup body
{
studio "kousek1"
studio "kousek2"
studio "kousek3"
studio "kousek4"
studio "kousek5"
studio "kousek6"
studio "kousek7"
}
Po uložení qc souboru bude potřeba model "zkompilovat" do mdl. K tomu slouží program studiomdl.exe ve složce s kHEDem. Ti shopnější ho můžou spustit a jako parametr mu dát cestu k našemu qc souboru. Ti, kteří po přečtení předchozí věty neví co dělat, si jednoduše otevřou v průzkumníku složku s kHEDem a na program studiomdl.exe přetáhnou náš qc soubor. Teď bychom měli být připraveni na samotné naskriptování v hammeru.
VHE - skriptování
Začneme vložením modelu do mapy pomocí cycler_sprite. Nastavímu mu nějaké jméno, třeba stul. OCLIPujeme ho s tím rozdílem, že použijeme místo textury CLIP texturu NULL (v podstatě ho oNULLujeme v kontextu s modely). Tento collision box převedeme na entitu, na func_breakable. Nastavíme mu různé náležitosti jako sílu rozbití a materiál, ale hlavně Gib Model na náš model kousků (pokud jste ho nepřejmenovali, tak je to kousek1.mdl) a také Target on break na stul_zmiz.
Tím se dostáváme k pointové entitě, která schová původní model stolu, a tou je env_render. Nastavíme mu jméno na stul_zmiz, cíl na stul, Render Mode na Texture a FX Amount na 0. Teď už jsme téměř hotovi, stačí jen udělat ještě jeden env_render, který zajistí obnovení modelu v dalším kole. Jako jméno mu dáme game_playerspawn a jako cíl stul. O zbytek se postarají výchozí hodnoty.
Stůl se sice rozpadl tolik kousků, že by z nich šly poskládat tři nové, ale funguje to.
Příkladové modely a mapa.
|