Tutorial 07 - Modely postav (část 3) - MAXELL's HOME

ID-Tech4 » Tutorial 07 - Modely postav

Kapitoly článku:

Poznámka: Ze všeho nejdříve si před exportem ověříme, zda máme ve stejném adresáři jako se nachází „Doom3.exe“ knihovnu „MayaImportx86.dll“. Tato knihovna je nezbytná pro převod modelů a animací z formátu programu Maya do Doom 3 formátu md5. Taktéž je nutná správná verze této knihovny v souladu s používanou verzí Maye. Pokud knihovnu nemáme, lze ji získat z oficiálního Doom 3 SDK balíku (web: www.iddevnet.com).

  1. Po zdárném dokončení definičního souboru se můžeme vrhnout na export modelu a animací. Spustíme si v okně Doom 3. Otevřeme konzoli a zadáme „exportModels“ příkaz s názvem našeho souboru s definicemi. V našem případe „exportModels mag“ a potvrdíme klávesou „Enter“. Pokud vše funguje jak má, v konzoli vidíme výpis z exportu modelu a jednotlivých animací. V případě, že převod neproběhl, Doom 3 vypíše chybové hlášení s možnou příčinou problému. V některých případech nás Doom 3 může vyzvat k vyhledání adresáře s instalací programu Maya. Adresář vybereme. Následně by měl proběhnout export běžným způsobem.
  1. Jakmile máme ve zvoleném adresáři vyexportované soubory v Doom 3 formátu, provedeme úpravu použitého materiálu na modelu. V našem případě otevřeme soubor „mag.md5mesh“, obsahující model, v textovém editoru. Najdeme řetězec „shader“, za kterým specifikujeme materiál pro model postavy (jak vytvořit materiál viz kapitola Materiály). Pokud je model složen z více objektů, tak u každého z nich provedeme úpravu materiálu. Abychom model mohli otestovat, vložíme jej do zkušební mapy (viz kapitola Mapy). Novou entitu nepřítele vybereme z nabídky entit v DoomEditu „monster » moster_mag“ (obrázek č. 52).
obrazek
Obrázek č. 52

  1. Pokud je model spolu s animacemi v pořádku a vše funguje v mapě, jak má, můžeme se pustit do vytvoření articulated figures (rag dolls). Tyto „kloubové figury“ simulující anatomii těl postav můžeme od základu vytvořit pomocí Articulated figures editoru (příkaz „editAFs“). Daleko výhodnější je však modifikovat některý z existujících .af souborů postav podobné tělesné stavby. Tyto soubory nalezneme v našem případě v následujícím adresáři (pokud tomu tak není, extrahujeme je z pk4 souboru).

C:\Doom3\base\af

Níže můžeme vidět upravený „mag.af“ soubor (zkrácený pro přehlednost). Je nutné změnit celkový název definice na „monster_mag“, taktéž specifikovat použitý model „monster_mag“. Vše by mělo být v souladu s dříve vytvořenou definicí „mag.def“. Pro upravení .af souboru je nutné v něm přizpůsobit názvy kostí skeletu. Na první pohled se nám tento postup může zdát pracný, ve skutečnosti si ale ušetříme spoustu práce, kterou bychom jinak věnovali na tvorbu celé kloubové figury od základu. Jak můžeme vidět v předešlé ukázce, .af soubory se skládají z hlavního nastavení – uvozené slovem „settings“ – kde ovlivňujeme figuru jako celek. Dále definice těles (za označením „body“), jež nejsou nic jiného, než primitiva jako kvádry, jehlany apod., ze kterých sestavujeme jednotlivé části kloubové figury. Konečnou část souboru tvoří definice kloubů, kterými spojujeme jednotlivá tělesa. Vždy by jsme měli mít na pamětí, že čím více těles a kloubů bude figura obsahovat, tím náročnější bude její výpočet pro procesor. Proto je vhodné se snažit o kompromis mezi složitostí AF figur a požadavky na jejich deformace.

articulatedFigure monster_mag {

settings {
model "monster_mag"
skin ""
friction 0.0099999998, 0.0099999998, 0.5, 0.5
suspendSpeed 20, 30, 40, 60
noMoveTime 1
noMoveTranslation 10
noMoveRotation 10
minMoveTime -1
maxMoveTime 15
totalMass -1
contents corpse
clipMask solid, corpse
selfCollision 1
}

body "waist" {
joint "origin"
mod orientation
model box( ( -10, -11.5, -4 ), ( 10, 11.5, 4 ) )
origin ( 0, 0, 46 )
density 0.0099999998
friction 0.0099999998, 0.0099999998, 0.5
contents corpse
clipMask solid, corpse
selfCollision 1
containedJoints "*origin -*root -*Rhip -*Lhip"
}

...

universalJoint "rwrist" {
body1 "rhand"
body2 "rforearm"
anchor joint( "Rwrist" )
shafts ( 0.0000004888, 0, -1 ), ( 0.0000001629, 0, 1 )
friction 0.5
coneLimit ( -0.0000001629, 1, 0 ), 60
}

}
  1. Poté, co jsme upravili soubor pro naši postavu, můžeme detaily doladit pomocí editoru. Spustíme si Doom 3 v okně, načteme si testovací místnost. Pro rychlejší práci a přístup k Articulated figures editoru do konzole zadáme příkaze „bind X editAFs“, kde X může byt libovolná klávesa, kterou si přejeme spustit/přepnout na editor. Po spuštění editoru se objeví jeho okno (obrázek č. 53). Ze seznamu v horní části okna si vybereme naši postavu „monster_mag“ a stiskneme tlačítko „Spawn“. Tímto umístíme postavu před sebe v mapě, pokud ji chceme odstranit, stiskneme tlačítko „Kill“. Na první záložce „View“ máme řadu možností, které můžeme zatrhnutím aktivovat. My si aktivujeme alespoň možnost pro zobrazení těles „bodies“ v první sekci „Articulated Figure“.
obrazek
Obrázek č. 53 – Doom 3 se spuštěným editAFs

V druhé záložce „Properties“ nalezneme prvky pro úpravu možností cele figury (dříve zmíněná sekce „settings“ v .af souboru). Další záložka nese název „Bodies“, zde upravíme jednotlivá tělesa, upravíme jejich rozměr, tvar a umístění podle potřeb naší postavy. Poslední záložkou je „Constraints“, kde můžeme odladit klouby spojující tělesa figury. Můžeme zde nastavit jejich vlastnosti jako typ kloubu, jeho tření, výseč ohybu apod. Po vyladění všech prvků nezapomene stisknout tlačítko „Save“, kterým uložíme aktuální změny do původního „mag.af“ souboru. Výsledek vhodně nastavené kloubové figury si můžeme prohlédnout na obrázku č. 54.

obrazek
Obrázek č. 54
obrazek
Obrázek č. 55

  1. Odladěním articulated figure jsme dokončili náš nový model (obrázek č. 55). Není to tak však vždy zcela pravda. Ve většině případů musíme znovu a znovu ladit animace, materiál nebo jiná nastavení spojená s herním enginem, než jsme opravdu spokojeni s výsledkem. Po pochopení a naučení se tohoto postupu můžeme analogicky vytvořit jakoukoliv další postavu. Postup převodu modelu je totožný.

Kapitoly článku:
 Valid XHTML 1.0 Strict Valid CSS! RSS
IP: 54.81.154.223 CuteNews.ru TC: