Collision boxy
Umiestnenie do herného sveta
ÚVOD
oznáte to, len tak si browsujete netom, zbadáte nádhernú zbran, ktorú by ste chceli mat v Oblivione. To je dôvod, preco písem tento tutorial. Predpokladám, ze clovek, ktorý chce vytvorit novú zbran dokáze modelovat v nejakom 3D modelovacom programe (nemusí to byt rovno 3DS MAX), má aspon základné znalosti v pouzívaní Photoshopu a Construction Setu pre Oblivion. Ako príklad pre tutorial som vybral dýku, ktorú som v hre nazval Dragon Dagger.
NÁSTROJE
Co budeme potrebovat:
TES4BSA - program dokáze rozpakovat BSA archívy Oblivionu
MaxNifPlugin - exportny/importny plugin pre 3DS MAX 6, 7 a 8
3DS MAX (30dnový trial) - modelovací program (link na trail)
Normal Map Filter/DDS Import/Export - plugin pre Photoshop (link)
DDS Converter 2 - program na prevod textúr do DDS formátu (link)
NifScope - program na manipuláciu s NIF súbormi (link)
TES4 CS - Construction Set pre Oblivion
ROZPAKOVANIE BSA ARCHÍVOV
Na rozpakovanie BSA archívov pouzijeme program TES4BSA, ktorý je konzolová aplikácia. Pred samotným rozpakovaním si súbory "Oblivion - Meshes.bsa" a "Oblivion - Textures - Compressed.bsa" skopírujume do pomocného adresára napr. "C:\pombsa", sem skopirujeme aj "TES4BSA.exe". Adresár by nemal okrem týchto troch súborov nic iné. Teraz môzeme archívy rozpakovat, postupujeme nasledovane:
-spustíme príkazový riadok Start->Run->cmd, dalej pracujeme v konzole
-cd pombsa
-tes4bsa unpack "Oblivion - Meshes.bsa"
-tes4bsa unpack "Oblivion - Textures - Compressed.bsa"
-zavrieme konzolu
V pomocnom adresári by mali pribudnút dalsie dva adresáre a to "Meshes" a "Textures". !!archívy samotné sú dost velké, takze je treba pamätat na dostatok miesta na disku, pretoze tieto dva rozpakované archívy majú zhruba 3.3GB!!
MODELOVANIE
Najprv musíme vediet, co chceme mat v hre. Najlepsie je mat zbran, v mojom prípade dýku, fyzicky v ruke, ale to nie je vzdy reálne, preto je potrebné zohnat obrázky zbrane v co najvyssom rozlísení a v co najlepsej kvalite. Ak máme predmet doma, tak stací chvílka a potrebné obrázky sú na svete, ak nie pomôze internet. Ja sa snazím hladat obázky, ktoré majú jednu stranu dlhsiu ako 500 pixelov a zbran je na nich v dobrej polohe, najlepsie z boku. Tieto obrázky potom pouzijeme aj pri tvorbe textúr.
Nie je nutné modelovat v 3DS MAX, ale modelovací program by mal vediet exportovat model v nejakom formáte, ktorý vie 3DS MAX importovat, ideálny formát je 3DS.
Samotné modelovanie je dobre robit tak, ze si obrázok zbrane dáme na pozadie, obkreslíme ciary a následne vymodelujeme, tak aby model mal zodpovedajúci tvar. Modelujeme len POLOVICU modelu, druhú polovicu vytvoríme zrkadlením (funkcia mirror). Aby vsetko fungovalo tak ako má, treba rukovät a cepel zbrane spojit do jedného objektu a posvu do druhého. Treba si dat pozor, aby model nemal prehnane vela polygonov, pre porovnanie Ebony Dagger má 1028 polygonov, z toho 796 samotná zbran a 232 posva. Pri velkom mnozstve polygonov sa moze stat, ze hra bude sekat, ale to je závislé od hardwaru. Model by mal mat dva MESHe, ak je teda modelovaný pomocou NURBS, tak ho treba previest na MESH, tak aby nemal privela polygonov (ja pouzívam prevod, tak aby bolo vytvorených co najmenej polygonov).
Ked máme model hotový, je potrebné zmensit ho do primeranej velkosti (je mozné ho samozrejme aj zväcsit, ale nepredpokladám, ze by niekto modeloval predmety malé), otocit a premiestnit tak aby vyhoval hre a nasim predstavám. Na toto je dobré pridat si k modelu nejaký referncný objekt, ja som zvolil Ebony Dagger z hry. Ak modelovaci program nepodporuje import NIF modelov, dostaneme model do programu pomocou iného formátu. Postup je jednoduchý:
-otvoríme NIF model v programe NifScope (Ebony Dagger je v "Meshes\Weapons\Ebony")
-exportujeme model vo formáte OBJ, takze v NifScope Spells->.OBJ->Export Multi a ulozíme model
-importujeme OBJ model k násmu modelu, najlepsie do samostatnej vrstvy
-ak nás modelovací program nepodporuje import OBJ model, importujeme OBJ model do 3DS MAXu a exportujeme vo formáte, ktorý dokáze nás modelovací program importovat (ideálne 3DS formát)
-importujeme model tento model k nasej zbrani, najlepsie do samostatnej vrstvy
Teraz prispôsobíme velkost nasich modelov (zbran aj posva) podla referncného modelu Ebony Daggera. Je dôlezité, aby stred rukoväte prechádzal bodom 0,0,0 tento bod je totiz stred uchopenia zbrane postavou v hre.

Tu sa modelovanie koncí, takze ulozíme model, ak nemodelujeme v 3DS MAX, tak este exportujeme nás model do formátu 3DS, LEN zbran a posvu nie vsetok bordel okolo!
TEXTURY - COLOR MAP
Textury musia mat rozmer strany mocninu císla 2, teda 64, 128, 256, 512, 1024... Textury zbraní v hre pouzívajú rozmer 512x512 pixelov. Tento rozmer som zvolil aj ja. Formát textúr pre Oblivion je DDS.
Takze podme na to, otvoríme obrázok zbrane vo Photoshope, upravíme rozmery tak, aby mal obrázok sírku 512 pixelov, Image->Image Size...

Po úprave velkosti si obrázok ulozíme. To isté teraz urobíme s obrázkom posvy. Ked mamé obrázky zmensené vytvoríme nový prázdny obrázok s rozmermi 512x512 pixelov File->New...

Do prázdneho obrázku vlozíme obrázok zbrane a posvy metódou Copy Paste. Usporiadanie co kam dáme zálezí na tvorcovi. Moja volba bola zbran dole, posva hore.

To je hotová textura, ktorú ulozíme, ale neukladáme ju vo formáte DDS, pretoze Photoshop nedokáze vytvorit MipMapy a výstup ktorý nám dá je aj tak nepouzitelný (vraj pluginy pre Gimp alebo PhotoPaint tento problém nemajú). Preto ulozíme textúru napríklad vo formáte BMP, PSD alebo TGA (ja som ju ulozil ako tex_dd_512all.bmp). Aby sme dostali textúru do formátu DDS pouzijeme program DDS Converter 2. Spustíme program nájdeme obrázok ktorý chceme skonvertovat, tlacítkom Options sa nastavujú parametre, nastavíme podla obrázku.

Takto vytvorenú textúru premenujeme, aby mala nejaký zmysluplný názov napr. "c_dradagger.dds". V adresári hry "Oblivion\Data\Textures\Weapons" si vytvoríme vlastný adresár pre nase textúry, napr. c_dradagger, do ktorého potom textúru skopírujeme. Pre vsetky vlastné veci je dobré mat v struktúre adresárov hry vlastné adresáre, aby nevznikol chaos.
TEXTURY - NORMAL MAP
Ku kazdej Color mape, musí byt Normal mapa, ktorá hovorí akú normálu má daný bod. Normal mapa musí mat taký istý rozmer ako Color mapa, musí sa volat rovnako ako Color mapa, s tým, ze za názvom Color mapy pribudne "_n", teda ak sa Color mapa volá "c_dradagger.dds", tak Normal mapa sa musí volat "c_dradagger_n.dds". Normal mapa sa musí nachádzat na tom istom mieste, kde je aj Color mapa.
Otvoríme nasu starú textúru (Color mapu) v Photoshope a aplikujeme na nu Normal map filter Filter->NVIDIA Tools->NormalMapFilter..., filter nastavíme podla obrázku.

Vysledok bude taký, ako ukazuje Preview. Teraz pridáme alfa kanál, postupujeme podla obrázka.

Výsledok je ze nám pribudol alfa kanál. Ulozíme Normal mapu vo formáte PSD a skonvertujeme pomocou DDS convertera 2, tak ako Color mapu v predchádzajúcom prípade. Premenujeme na príslusný názov, kedze Color mapa sa volá "c_dradagger.dds", Normal mapa sa musí volat "c_dradagger_n.dds". Normal mapu skopírujeme do rovnakého adresára hry ako sme predtým skopírovali Color mapu.
TEXTUROVANIE A EXPORT
Ak zbran modelujeme v 3DS MAX, tak zmazeme vsetky objekty okrem dýky a posvy, ak nie, tak importujeme 3DS súbor, ktorý sme vytvorili v casti 4). Ak je to potrebné otocíme normály tak aby smerovali von z modelu(lista Modify->Surface Properties), nie je to nutné, ale lepsie sa s modelom pracuje.
Ideme texturovat dýku, takze nám tam zavadzia posva, klikneme na nu lavým mysítkom, potom klikneme pravým mysitkom a vyberieme Hide Selection. Posva je neviditelná. Klikneme na na dýku a otvoríme Material Editor, Rendering->Material Editor... Postupujeme podla obrázku, klikneme na stvorcek (krok1), potom dablklik podla kroku dva, vyberieme texturu v adresáry hry a klikneme na ikony podla krokov 3 a 4.

Textúra je priradená modelu dýky, ale nie tak ako je treba, preto treba zmenit mapovanie textúry na vybranom objekte, lista Modify a Modifier Listu vyberieme Unwrap UVW.

Dalej vyberieme polygony, na ktoré textúru namapujeme, normálne ich natiahneme do okna, aby sa vybrali naozaj vsetky tak treba nebolo zaskrtnuté polícko Ignore Backfacing. Potom urobíme Planar map podla osi Z, potom klikneme na Edit

Vidíme pred sebou okno Edit UVWs ,v ktorom sa môzeme hrat, a prispôsobit textúru tak aby bola mapovaná korektne. Ako je vidiet na obrázku, tak cepel je oddelená od rukoväte, to sa dosiehne tak ze vyberieme len polygony cepele.

Teraz máme dýku otextúrovanú korektne. Klikneme do niektorého viewportu pravým mysítkom a vyberieme Unhide All, zase vidíme dýku aj posvu.
Pri texturovaní posvy postupujeme podobne ako prí dýke, takze zneviditelníme dýku a vyberieme posvu. V Material Editore nerobíme vsak vsetko ako predtým, ale len klikneme na ikonu Asign Material to Selection (krok 4). Ostantý postup rovnaký ako v predchádzajúcom prípade.
Prisiel cas exportovat model. Zviditelníme celú zbran (dýku aj posvu) a exportujeme do formátu NIF, File->Export (nepouzívam File->Export selected pretoze pri exportovaní mi 3DS MAX vzdy padne), vyberieme formát NIF, pomenujeme a ulozíme do adresára hry, v mojom prípade "Oblivion\Data\Meshes\Weapons\cdradagger". V okne, ktoré sa zobrazí nastavíme prefix textúr, adresár v ktorom sa textúry nachádzajú, tak ako to ukazuje obrázok.

Teraz si svoje dielo ulozíme aj v klasickom MAX súbore. Výsledok je, ze síce máme model v NIF formáte ale, este nie je pouzitelný v hre, chýbajú mu totiz Collision Boxy a neuplatnovala by sa na neho fyzika hry.
IKONA
Dalsia vec, ktorú treba je ikona do inventáru. Jednoduchý spôsob ako ju urobit je vyrenderovat obrázok v 3DS MAX a potom upravit v Photoshope. Ikony v Oblivione musia mat rozmer 64x64 a formát DDS bez MipMáp.
V 3DS MAXe si v niektorom viewporte natocíme model tak ako chceme aby vyzeral na ikone a dáme ho renderovat, Rendering->Render... Ukáze sa okno renderovania kde nastavíme sírku, výsku a dáme obrázok vyrenderovat. Rozmery zvolíme nejaké rozumné, s ktorými nám bude dalej dobre pracovat, ja pouzívam 320x320 alebo 640x640.

Po vyrenderovaní obrázok ulozíme vo formáte BMP.
Takto vytvorený obrázok otvoríme v Photoshope. Pomocou Magic Ward Tool vyberieme frabu pozadia, tak ze klikneme na Magic Ward Tool a potom na pozadie, ako ukazuje obrázok.

Teraz invertujeme výber, Select->Inverse. Pomocou QuickMask urobíme pozadie priehladné.

Zmensíme obrázok na rozmer 64x64, Image->Image Size... (podobne ako ked sme menili rozmer obrázku pre textúru). Vytvorený obrázok ulozíme vo formáte PSD. Následne prekonvertujeme na DDS ale teraz bez MipMáp. Nastavenie je na obrázku.

Vytvorenú ikonu skopírujeme do adresára hry, v mojom prípade "Oblivion\Data\Textures\Menus\Icons\cdradagger". Ikona by sa mohlo nejako zmysluplne volat, napr. "c_dradaggericon.dds".
COLLISION BOXY
Na výpocet kolízií sa v Oblivione pouzívajú tzv. Collision boxy, sú to objekty, ktoré ohranicujú telesá a pouzívajú sa aj na výpocet fyziky, teda aby jedno teleso nemohlo prepadnút cez druhé. Najcastejsie sa pouzívajú dva typy Collision boxov, kapsle a kvádre (boxy). Kapsle sú pouzité pri mecoch, dýkach... a pri rukovätiach zbraní, kvádre pri sekerách a kladivách, pri palcátoch a kúzelníckych paliciach je pouzitý nejaký divný obejkt (ani kapsla ani kváder, proste nieco besné).
Do modelu nasej zbrane tiez potrebujeme dostat Collision boxy, jednou z mozností je pouzit Collision boxy uz vytvorné autormi hry a napasovat do nich nasu zbran. Tu pomôzu rozpakované BSA archívy, nájdeme v nich zbran, ktorá má podobný tvar ako nasa zbran, ja som pre môj príklad vybral Ebony Dagger. Skopírujeme tento model k násmu modelu v adresári hry. Otvoríme nasu zbran v NifScope (ak na nej nie sú vidiet textúry, tak nastavíme adresár textúr, Render->Set Texture Folder... a vyberieme adresár "Oblivion\Data"). Vo viewporte je vidiet zbran, teraz klikneme na rukovät pravým mysítkom (krok 1), cim dýku vyberieme, v okne Block List by mala byt oznacená polozka NiTriStrips, na túto polozku zase klikneme pravým mysítkom (krok 2) a vyberieme Block->Copy Branch (krok 3).

Teraz v tej istej instancii NifScope otvoríme model Ebony Daggera (krok 1), pravým mysítkom klikneme na polozku 0 NiNode (krok 2) a vyberieme Block->Paste Branch (krok 3).

Nasa dýka je uz v modely ale je na nesprávnom mieste (má císlo 20), treba orignálny objekt nahadit nasim. Klikneme na 0 NiNode (krok 1), v Block Details nájdeme polozku Children (krok 2), prepíseme referenciu modelu dýky na nás model, mojom prípade na císlo 20.

Ked sa blizsie pozrieme na pôvodný NiTriStrips, tak vidíme, ze sú tam polozky NiBinaryExtraData, NiMaterialProperty, NiTexturingProperty, NiSourceTexture a NiTriStripsData. Toto vsetko zmazeme, tak ze na kazdú polozku klikneme pravým mysítkom a vyberieme Block->Remove.

Ulozíme model pod menom, pod akým bude vystupovat finálna verzia (u mna "cdradagger.nif") File->Save. Posvu skopírujeme tak isto ako v predchádzajúcom prípade. Pri zmene polozky Children vsak malá odlisnost, nemeníme 0 NiNode ale 9 NiNode, tak ako ukazuje obrázok.

Pôvodný NiTriStrips opät zmazeme. Teraz máme zbran aj s Collision boxami, je to síce fajn, ale materiál dýky aj posvy je rôzny, chcem vsak aby bol rovnaký. Urobíme to tak, ze posve, priradíme materiál dýky, klikneme na NiTriStrips posvy (krok 1), v Block Details nájdeme polozku Properties (krok 2) a zmeníme refenciu na materiál (krok 3).

Nadbytocný NiMaterialProperty zmazeme.

Urobíme zmenu materiálu (NiMaterialProperty), Ambient Color bude biela (#ffffff), Diffuse Color a Emissive Color tiez biela, Spectacular Color bude cierna (#000000) a Glossiness zmeníme na 10 (pôvodne bolo 0,1). Môzeme zmenit aj názov materiálu z 01-Default napr. na DragonDagger.

Ulozíme model, v mojom prípade opät ako "cdradagger.nif".
UMIESTNENIE DO HERNÉHO SVETA
Model je hotový, ostáva uz len umiestnit ho do herného sveta. Toto urobíme pomocou Construction Setu. Spustíme Construction Set, vyberieme File->Data..., tu zaskrtneme oblivion.esm, prípadne iné pluginy, od ktorých bude nás plugin závislý. Neodporúcam vsak robit závislosti na iných pluginoch, pretoze aj ked nic z toho pluginu nepouzijeme, nás plugin ho bude vyzadovat, navyse nútit hrácov, aby si stiahli dalsí plugin sa mi nezdá velmi korektné. Ak sme na plugine robili nieco uz skorej a chceme tam nieco dorobit, oznacíme plugin, ktorý chceme editovat a klikneme na Set as Active File. Ak máme vsetko povyberané (teraz nám stací len oblivion.esm) klikne na OK, pockáme kým sa nacítajú data a môzme pracovat.

V Object Window vyberieme Items, Weapons a este raz Weapons, pravým mysítkom klikneme na niektorú zbran (nezálezi ktorá to je) a vyberieme New (Edit umoznuje menit vlastnosti existujúcej zbrane, Use Info ukáze kde je zbran pouzitá).

Máme pred sebou okno, kde urcíme vlastnosti zbrane, ich význam je takýto:
ID - indetifikátor v editore
Name - meno zbrane
Type - typ zbrane
Script - skript, ktorý ma byt na zbrani pouzitý
Enchanting - kúzlo pouzité na zbrani ak je zbran ocarovaná
Enchantment - kapacita energie zbrane
Weight - hmotnost zbrane
Value - cena zbrane
Health - zivotnost zbrane (ako dlhu ju môzeme pouzívat kým sa znicí)
Speed - rýchlost zbrane
Reach - aký má vplyv útok zbranou na zvysovanie skillu
Damage - úcinnost zbrane (kolko zivota uberie súperovi pri útoku)
Ignore Normal Weapov Resistance - ci má byt zbran úcinná na prísery, ktoré odolávajú normálnym zbraniam (duchovia a podobne)
Quest Item - ci sa jedná o questovú zbran, ak áno, nie je mozné zbran vyhodit z inventára
Add NIF File - priradenie NIF modelu zbrani
Add Icon Image - priradenie ikony, ktorá sa ukáze v inventáry
Urcíme vlastnosti zbrane, pomocou tlacítiek Add NIF File priradíme zbrani nami vytvorený model, pomocou Add Icon Image priradíme nami vytvorenú inventárovú ikonu. Ak máme vsetko hotové, klikneme na OK a zbran je vytvorená.

Teraz ostáva len umiestnit zbran v hre, v Cell View si vyberieme bunku (typ bunky je mozné vybrat vo World Space), do ktorej chceme dýku vlozit, ja som zvolil Benirus Manor v Anvile, dva krát na nu klikneme aby sa zobrazila v Render Window. Ked uz máme bunku v Render Window, vyberieme miesto kam dýku dáme. Po bunke sa môzme pohybovat (drzíme Space a hýbeme mysou), otácat si ju (drzíme Shift a hýbeme mysou), zoomovat (pouzijeme koliesko mysi). Ak máme vybrané miesto, nájdeme dýku medzi zbranami v Object Window a jednoducho ju prenenesieme do Render Window (drag and drop metóda). V Render Window sa nám objaví a je okolo nej rámik z farebných ciar, to znamená, ze je dýka vybraná môzeme s nou hýbat. Ja som zvolil ze dýku dám stolík pri vchode do Benirus Manoru, tak som dýku umiestnil nad tento stolík.

Aby dýka padla na stolík, sputíme simuláciu Havoku, World->Run Havok Sim. Ostáva uz len ulozit plugin a vyskúsat ho. Takze File->Save. V Oblivion Launcheri v Data Files zaskrtneme nás plugin a môzeme ho íst otestovat. Ak je vsetko tak ako má byt, môzeme veselo hrat, ak nie môzeme veci este doladit. Týmto sme sa dopracovali ku koncu tutorialu.
Zelám vela stastia pri tvorbe pluginov.