Miután nagyjából átnéztük a pályaszerkesztés és textúrázás alapjait, következhet a model készítés. A segédlet főleg prop model készítésről fog szólni és a model játékba helyezéséről. Egy saját NPC vagy fegyver elkészítése sajnos jóval nehezebb és összetettebb feladat, az animációkon kívül a haladó QC programozásról is tudni kell hozzá egy keveset. Az alap modelt bármilyen programban elkészíthetjük, használhatunk XSI-t, 3d Studio Max-ot, Maya-t, Milkshape-t, a lényeg, hogy a programhoz legyen egy SMD exporter és importer.
Teljes tutorialA 3d studio max-hoz van jó kis SMD export és import plugin, valamint ezt a programot ismerem a legjobban, úgyhogy én ezzel fogok dolgozni. Az XSI például alapból tudja a Half-Life 2 formátumokat és ő kapta a hivatalos modellező program szerepét is.
A modellek összerakásához szükségünk lesz majd egy GUIstudioMDL nevű kis programra ami a QC alapján rendes, játékban használható modelt készít a referencia modelt és az animációkat tartalmazó SMD fájlokból.
Akkor kezdjünk is neki az első saját model elkészítésének, nekem egy szék lesz az áldozat ami már előre el volt készítve és meg van a hozzá tartozó TGA formátumú textúra is. Igyekezzünk spórolni a polygonokkal és ne nagyon lépjük túl a 7000 polygonos határt. Az én székem körülbelül 300poly-ból áll ami optimálisnak mondható egy ilyen kis jelentőségű modellnél, ami csak egy egyszerű tereptárgy lesz.
Ha az alap model elkészült, akkor hozzunk létre egy csontot a model közepe környékén, majd rendeljük hozzá a széket. Minden modelnek ugyanis kell legalább egy csont, amihez viszonyítani tud a játék. A 3ds max-ban egyszerűen lerakok egy bone-t és a skin modifier segítségével hozzárendelem a székhez. Gyakorlatilag szinte kész a model, van egy TGA formátumú textúránk és egy csonthoz rendelt szék modellünk.
Ezt most már elmenthetjük SMD reference formátumba, mondjuk szek_tutorial.smd. Utána ugyanezt a modelt mentsük el egy Sequence SMD-nek mondjuk idle01 néven, ami az alap animációt jelenti ( gyakorlatilag áll egyhelyben a model ). A textúra TGA formátuma miatt ne aggódjunk, a játék már a VTF-et fogja keresni ha elkészül a model.
Most a modelt mentsük el megint egy reference SMD formátumba, ami a phymodel.smd nevet kapja. Ez az SMD a tárgy ütközéséhez kell, hogy a játék érzékelje a model testét ( bonyolultabb modelleknél egy külön "buta" modelt kell csinálni erre a célra, például egy kocsihoz egy nagy téglalapot ). Mivel ehhez a modelhez külön textúra kell, keressük meg a phymodel.smd-t és nyissuk meg egy egyszerű notepad segítségével.
Mivel a phymodelnek egy külön textúra kell ami a phy.bmp névre hallgat, le kell cserélnünk az alap textúrát. Menjünk a szerkesztés menübe és keressük meg a csere gombot. Keresendőhöz írjuk be a textúra nevét, nálam ez a szek4.tga és cseréljük ki erre: phy.bmp
Amikor az összes textúrát kicserélte, mentsük el a phymodel.smd-t. Most már csak a QC megírása van hátra. Ehhez nyissunk egy új notepad oldalt és írjuk bele a következőt.
$modelname "custom modelsszek_tutorial.mdl"
$scale 1.0
$cdmaterials "modelscustom models"
$body "Body" "szek_tutorial.smd"
$sequence "Idle01" "idle01.smd" fps 30 ACT_IDLE 1
$surfaceprop "metal"
$staticprop
$collisionmodel "phymodel" {
$Mass 10
$concave
}
(ide mindenki a saját modeljének az elérési útját és adatait írja)
Az én modellem a játékmappa/models/Custom models mappába kerül majd, a VTF formátumú textúrát pedig a játékmappa/materials/models/Custom models mappába. A modellünk felszíne a $surfaceprop "metal" paraméter miatt fém lesz, az idle01 animáció miatt pedig egyhelyben fog állni ( ha például ez egy zászló lenne, akkor az idle01 animációnak mozognia kellene, de jelen esetben csak állni fog a szék ).
Miután ezzel végeztünk, nyissuk meg a GUIstudioMDL kis programot. A file menüben töltsük be a QC fájlunkat ami a modelhez tartozik. Bal középen pedig a Target mod or "gameinfo" path-nél válasszuk ki azt a gameinfo.txt-t amelyik játékhoz a model készül. Ez a fájl minden mod / játék főmappájában szokott lenni. Ha megvan akkor nyomjunk rá a compile gombra és a program megcsinálja a modellünket, majd elhelyezi a kiválasztott játék mappájába ( ahova a QC mutat neki, az én esetemben a custom models mappa ).
Ha a GUIstudioMDL végigment és meglátjuk a complete feliratot, nincs más dolgunk, mint átkonvertálni a sima TGA formátumú textúránkat VTF-be és megírni hozzá a VMT-t is. Ügyeljünk arra, hogy jó helyre menjen a textúra amikor átalakítjuk VTF-re. Visszanézem a QC-ből és látom, hogy a $cdmaterials "modelscustom models" alapján a játékmappa/materials/models/custom models mappába kell raknom a textúrát. Nyissuk meg az elkészült VMT fájlt és a legfelső sort írjuk át "VertexLitGeneric"-re, ezzel tudatjuk a játékkal, hogy model textúráról van szó és nem fal textúráról, ha ezt nem írjuk át akkor nem lesz textúra a modellen.
Összegzés képpen ellenőrizzük le, hogy mi hol van. A textúránk VMT és VTF fájlja a játékmappa/materials/models/custom models mappában van. A VMT file-ban megtalálható elérési utat is ellenőrizzük le. A modellünk cuccai pedig a játékmappa/models/custom models mappában van, általában 6 file tartozik egy modelhez. Ha minden jó helyen van indítsuk el a Hammer editort, rakjunk le egy prop_static-ot ( ez most egy statikus model, de a QC-ben ezt is egyszerűen átállíthatjuk ) és keressük ki a saját modellünket.
Minden a helyén van és működik a szék, igaz akkora lett mint az Alföld de ezt a QC fájl segítségével egyszerűen átállíthatjuk. Az 1.0-ás értéket átírom gyorsan 0.3-ra és újra összerakom a modelt.
Most már jó a model mérete és lerakhatom a kis garázsomba. Rakjuk össze a pályánkat is és nézzük meg, hogy játék közben, hogy teljesít a model.
Végül sikerült összehozni a modelt és működik játék közben is. Sajnos mivel nagyon sok modellező program létezik és én nem értek mindegyikhez, nem tudom leírni külön-külön az összeshez tartozó modellező tutorialt. Általában mindegyikhez van egy SMD plugin amivel egyszerűen tudunk exportálni. Viszont az összerakás elve talán világosabb lett valamivel és ezután könnyebben rá tudtok jönni, hogy miként tudjátok megcsinálni saját modelljeiteket.