Tutorial: Egyszerű fűobjektum elkészítése - Blendertől az UDK-ig

Geril vagyok, és ebben a tutorialban egy statikus környezetobjektum elkészítését mutatom be lépésről lépésre Blenderben és UDK-ban. Jelen esetben ez az objektum egy fűcsomó.

Először is szükség van egy maszkra, azaz egy fekete-fehér képre, amin az átlátszatlan felületet a fehér, az átlátszót pedig a fekete szín jelöli. Átmenet nincs, vagy teli fekete, vagy fehér. Az általam most használt kép 512*512 felbontású. (az Unreal 3 csak a bináris számú pixelfelbontásokat értelmezi (azaz 64*64, 128*128, 256*256, 512*512, 1024*1024, 2048*2048). Ezen felül szükség van egy diffúz textúrára is, ami a fű felületén látszik. Jelen esetben én egy másik, nem növényhez használt textúrát használtam, de érdemes kreálni hozzá egyet, vagy keresni egy már létezőt az UDK-ban.


A blender (nekem épp v263) elindításakor a 3D view ablakban először a start-kocka látszik, amit nekünk jelen esetben ki kell törölnünk. A 3D ablakban a kamerát a középső egérgombbal lehet forgatni, illetve a középső egérgomb + shifttel lehet elmozdítani a kamerát.

Készítsük elő a textúrát egy másik, UV/Image editor ablakban. 
Ezután illesszünk be egy plane - vagyis egyszerű lap - objektumot: ADD/MESH/PLANE. Innentől edit módban szerkesztjük objektumunkat, amire a tab gomb lenyomásával lehet váltani. Edit módban forgassuk el az X tengelyen 90 fokkal a lapunkat.
Ezt legpontosabban az R, X, aztán a 90 beírásával lehet elérni, vagy a 3D rotate manipulátor használatával.


Ezután kibontjuk a plane UV-jét a textúrára. Ehhez először ki kell jelölnünk mind a négy vertexét az objektumunknak (shift és jobb katt), majd az U-val behozott legördülő menüben az Unwrap-re kattintsunk. Mivel ez egy egyszerű geometriai forma, tökéletesen rá fog illeszkedni a textúrára.


A lapunk alja kicsivel az X és Y tengely alatt kell, hogy elhelyezkedjen, vagyis el kell mozdítani a Z tengelyen. Jelöljünk ki mindent, majd kezdjük el mozgatni (a G aztán a Z gomb lenyomásával a legkönnyebb, így az objektum csak a Z tengelyen mozgatható), végül óvatosan (a CTRL gomb nyomva tartásával a griden, a Shift gomb lenyomásával pedig lassabban mozog) rakjuk a tengelyek alá kicsivel, így biztos nem fog kilógni a földből.



Önmagában a lapon elhelyezett fű kevés lenne ahhoz, hogy hihető hatást keltsen, kivéve, ha a játékosnak nincs módja megközelíteni, vagy más szögből nézni. Tehát lapunkat kijelölés után a Shift+D-vel duplikáljuk, majd a Z-tengelyen elforgatjuk 90 fokkal. A részletesség igényétől függően ezt a lépést meg lehet ismételni, és habár én nem így csináltam, de a különböző új lapok kaphatnak más textúramaszkot is, amennyiben külön matérián (később írok róla) helyezkednek el.


A most kapott objektumot érdemes subdivide-olni, azaz megsokszorozni rajta a töréseket, vertexeket. Ez elsősorban azért kell, hogy egy kicsit tépettebbé, különlegesebbé tegyük a felületen elhelyezkedő textúrákat. Szóval jelöljük ki az összes felületet, vagy vertexet az objektumon, aztán a W gomb lenyomásával legördülő menüből válasszuk ki a subdivide-ot. Ezután igény szerint érdemes finomhangolni a UV-t. A UV/Image editor ablakban vertex szerint mozgatható a UV (G-gomb) a textúrán. Fontos megjegyezni, hogy amíg a Blenderben alapból csak az egyik oldal látható, addig az Unreal 3 alatt könnyedén beállíthatjuk, hogy kétoldalú legyen a füvünk. Tehát a hihetőbb hatásért érdemes elmozdítani pár vertexet, esetleg megfordítani az UV-t, vagy azon is enyhén változtatni.
Ezután legalább egy matériát hozzá kell adni az objektumunkhoz. Többre akkor van szükség, ha többféle maszkot használtunk az objektum különböző felületein. Abban az esetben az adott matériát az adott felülethez kell társítani, assign-olni.


A jelenlegi fű mérete az UDK arányaiban nagyon apró lenne, ezért érdemes a méretét a 20-szorosára növelni, amit edit módban az összes lap kijelölése után az S, majd a 20 beírásával a legkönnyebb elérni. Ezután érdemes megigazítani a lapokat, mivel elmozdulhattak a középpontjuktól a méretváltozás miatt. Majd nevezzük el az objektumot, ezt a 3D view jobboldali kinyitható tálcáján az Item alatt lehet megtenni, a jelenlegi Plane név átírásával.
 Lépjünk ki az edit módból (tab), és a File lenyíló menüből válasszuk az  exportot, azon belül is az Autodesk FBX-et. Itt a baloldali tálcán kapcsoljuk be a Selected Objects-et, és a gombsorban csak a Mesh-gomb legyen bekapcsolva. Elnevezzük a fájlt, aztán már exportálhatjuk is a megadott helyre.

Indítsuk el az UDK-t. Miután bezártuk a felugró Welcome ablakot, a Content Browser ablak bal alsó sarkán kattintsunk az Import gombra. Keressük meg a már létrehozott FBX fájlunkat és a maszk textúrát, és, ha csináltunk, a diffúz fű textúrát, majd nyissuk meg őket.

Ha már van saját packageünk, akkor oda importáljuk, ha nincs, hozzunk létre egy újat, ezenfelül érdemes Group-ot is kreálni.
Az UDK képes az FBX-ből importálni az objektumhoz felhasznált textúrát, én viszont inkább ajánlom külön importálni, mivel ez lehet pontatlan, vagy verziótól függően hibás. Az UDK az FBX importálása alatt megjegyezheti, hogy elévült az FBX verziója, de ez nem probléma statikus objektumoknál. Miután az importálás befejeződött, keressük meg a fájlokat, majd jobb kattal kattintsunk a maszk textúrára, a legördülőben pedig nyomjunk a Create New Material-ra. Nevezzük el, ok, majd nyissuk meg.

A Material Editorban látjuk a maszkunkat a saját dobozában, amit a CTRL-al tudunk arrébb húzni. Rakjuk az Opacity Mask elé, majd  a dobozból balra kimenő legfelső fekete négyszögből húzzuk rá a nyilat a jelenleg még szürke Opacity Mask négyszögére. A properties ablakban a material szekcióban állítsuk a Blend Mode-ot Opaque-ból Masked-ra, aztán a Lighting Model-t NonDirectional-ra, végül az alatta levő Two Side dobozt pipáljuk be.
Ezek után már csak egy diffúz textúra kell, amit vagy már importáltunk, vagy körül kell néznünk az UDK textúrái között. Azt rakjuk be a maszk textúra fölé, és annak is a baloldali fekete négyszögéből húzzunk egy nyilat a Diffuse bemenetébe. Mentsünk (bal felső sarokban pipa) és lépjünk ki az ablakból.

Nyissuk meg a StaticMeshként beolvasott modellünket, és az editor jobb oldali tálcáján a LODInfo-t nyissuk le, egészen amíg a 0. Elements 0. matériájához nem jutunk. Most váltsunk át a Content Browser-re és jelöljük ki a most készített fűmatériát. Vissza a StaticMesh editbe, és az előbb megkeresett Material utáni helyen a zöld nyilacskára kattintva linkeljük a kiválasztott matériánkat.
Amennyiben minden eddigi lépés helyes volt, a modellünk teljes pompájában működik, a jobb egérgombbal forgathatjuk, és a bal egérgombbal közelíthetünk.


Végül egyszerűen fogjuk meg a Content Browserben a most már összerakott modellünket, és rakjuk ki a pályára. A lerakott objektumot a Space gombbal lehet manipulálni, mozgatni méretezni és forgatni. A pályán való mozgást a WASD és az egér jobb- és balkattjával lehet kezelni.

Természetesen ez csak egy nagyon alapvető és egyszerű objektum, példaképpen az általam jelenleg a játékunkban használt füvekre hatással van a szél is, ami matéria alapon működik. Az Unreal 3-ban nagyon sok lehetőség van, és a későbbi postokban szeretnék megosztani néhányat az általam megtanult és felfedezett trükkök közül.



Kérdésekre, meglátásokra, kérésekre szívesen válaszolok a kommentekben.

További szép napot.

No comments:

Post a Comment