A procedurális instancálás lehetővé teszi az artist-ok számára, hogy hatalmas mennyiségű geometriát hatékonyan generáljanak, animáljanak és rendereljenek. Kiválóan alkalmas olyan vizuálisan összetett asset-ek létrehozására, mint a szőrzet, a haj, a tollazat, valamint az olyan nagyobb méretű environment-ek készítésére, mint az erdők, füves mezők és sziklás tájak. A számítási teljesítmény növekedésével az instancálás a modern CG pipeline-ban a surfacing és shading folyamatok szervesebb részévé válik.
Az XGen-t a Walt Disney Animation Studiosban fejlesztették ki, majd 2016-ban integrálták a Maya-ba. Az erős instancálós framework lehetővé teszi számunkra a felületek tetszőleges geometriákra való felosztását mapok-, expression-ök-, és guide-ok mentén. Gyakorlatilag ez egy komplex-, procedúrális rendering felület, illetve egyfajta shading eszköz.
Az alábbi tippek segítenek az XGen munkafolyamatok rugalmasabbá tételében. Bár Maya-ra vannak szabva, általános iránymutatásként is tekinthetők az instancáló framework-ök használatához.
Az útmutató azoknak szól akik már ismerik az XGen alap munkafolyamatait.
A képeken látható modell neve 0a Blonde Girl, TurboSquid-en ingyenesen letölthető.
1. Először tervezd meg az asset-et
A munkaidőben történő elvégzéséhez elengedhetetlen a munkafolyamat strukturálása. Új Description létrehozásakor az XGen elindít egy varázslót, amely végigvezet a legfontosabb döntéseken. Bár később is válthatunk, az asset-ek típusa meghatározza a workflow típusát is.
Az olyan sűrű tárgyak esetében, mint például a bunda, pikkely, vagy valamilyen environment, a teljes procedurális workflow-t részesítem előnyben.
Hosszú haj esetében érdemes guide-okkal irányítani az egyes hajcsomókat, amely nagyobb kontrolt biztosít a root-to-tip variációk felett.
2. Block out-old a kinézetet
Bármilyen XGen node létrehozása előtt készítsd egy alacsony geometriájú minta asset-et. Ilyenkor felvázolod azt a layout-ot, melyet később instancokkal és primitívekkel fogsz kitölteni. Ez segít a munka strukturálásában.
Vegyük a göndör haj esetét. Fontos, hogy egyszerű geometriákkal, például tube-okkal blokkoljuk a kinézetet ("groom-from-tubes" munkafolyamat). Ezeket könnyen lehet modellezni, és nagyon jó képet adnak a frizura végleges kinézetéről amint azt tényleges instancált curve-ökké alakítjuk.
A maketteket gyakran használjuk első körös feedback-nek, hisz lehetővé teszi a kérések, megjegyzések összegyűjtését. Az asset volume-jainak korai reprezentálása később segít a ruhaszimulációk futtatásakor valamint biztosítja a tiszta, menedzselhető eredményt.
3. Rendezd layer-ekbe a blocking modellt
Az asset kinézetének megtervezése után oszd fel a blocking geometriát layer-ekre. Az XGen ugyanazt a munkafolyamatot használja, lehetővé téve - vagy akár kikényszerítve - az instancing Description-ök Collection-ökbe csoportosítását.
A szakaszonkénti munkavégzés arra kényszerít, hogy mindegyik szekcióra külön-külön összpontosíts, továbbá lehetővé teszi, hogy a párhuzamosan haladhass a különböző részeken.
Ezenkívül, a monolitikus megjelenés hiánya életmentő lehet a nagyobb projekteknél, mivel elkerülhetjük, hogy a váratlan változások miatt mindent nulláról kelljen újrakezdeni.
4. Legyen procedurális, ami csak lehet
Az XGen két lényegesen különböző módot kínál az instance-k vezérlésére, melyek a guide-ok, vagy a map-ek/expression-ök.
A guide-ok olyan placeholder-ek, melyek meghatározzák az instance formáját a felület egy adott pontján. A többi instance formája a guide-ok közötti interpolációval generálódik. Statikus set-up-ok esetében ez egy hatékony, rugalmas megközelítés, mivel tetszés szerint hozzáadhatunk vagy átalakíthatunk guide-okat. Azonban ha nem használjuk őket körültekintően, akkor könnyen kicsúszhat az kezeink közül az irányítás, megnehezítve ezzel az asset későbbi kezelését.
Személy szerint inkább map-eket vagy expression-öket használok az instance-k vezérlésére, mivel teljesen procedurális formában tartják az asset-et, ezáltal rugalmasabbak. Ha így dolgozol, iteratív módon finomítsd a megjelenést: kezdd a nagy vonalakkal, melyek meghatározzák az alapképet, majd layer-ek és mask-ok segítségével fokozatos add hozzá a részleteket.
5. Használd a fejbőr geometriát
Az XGen egyik gyenge pontja a topológia-függés, tehát ha megváltozik a mesh, akkor az új geometriára kell transzportálni a groom-t. A set-up bonyolultságától függően ez nagyon időigényes, vagy akár lehetetlen is lehet.
Olyan produkciós környezetben, ahol más részlegekkel is együtt kell dolgozni, a dolgok gyakran - és sokszor drasztikusan - megváltoznak. A modell frissítése megváltoztathatja például a mesh vertex order-ét.
Ennek elkerülésére jó módszer a fejbőr geometriájának használata, melynek te vagy a tulajdonosa és a kezelője is. Ezek általában nem renderelhető, alacsony felbontású modellek, amelyek körbeveszik a renderelhető hálót és együtt deformálódnak. Ha az instance-ket erre a közbenső felületre helyezed, nem pedig a renderelhető mesh-re, akkor elkerülheted a meglepetéseket.
6. Különítsd el a szimulációt és az animációt
Ha olyan asset-en dolgozol, mely később animálva lesz, az asset statikus megjelenésének meghatározása csak fél siker. Fontos végiggondolni, hogy a groom hogyan fog animáláskor viselkedni. Kétféle motion-ről beszélhetünk: animáció és szimuláció. Az előbbi az alap modell saját mozgása; az utóbbi az instance-ok reakciója a mozgó test hatására - és gyakorlatilag bármilyen külső tényezőre.
Vegyük először az animációt. Az alap task az, hogy az instance-ok pontosan kövessék az alattuk elterülő geometriát, lehetőleg minél szebben és természetesen poppolás nélkül. A mesh deformálódása megváltoztatja a frame-ek közötti instance-k térbeli viszonyát, ami artefact-ot eredményezhet. Az XGen különböző technikákat kínál a poppolás elkerüléséhez - az Autodesk a Patch References (PRefs) használatát javasolja - melyre szükséged lesz ahhoz, hogy tökéletes render képszekvenciát tudj készíteni.
Ha animáltuk az alap mesh-t és azt azt követő instance-ket artefacts nélkül, akkor itt az ideje a szimulációnak. Az XGen saját dynamic solver-e egyszerű, kiválóan alkalmas az alap szimulációkhoz. Hero asset-ekhez azonban kifinomultabb solver-re lehet szükségünk, illetve sokszor át kell passzolni egy másik olyan department-nek a feladatot, akik a munka ezen részét kezelik.
Ilyen eseteknél el kell különíteni az animációt és a szimulációt, majd 'becsatlakoztatni' a szimuláció eredményét később. Ezek a végeredmények általában geometria cache formájában érkeznek, ezért olyan rig-re lesz szükséged, mely képes ezeket kezelni. Például wire deformerek formájában vagy animált guide-ok használatával, amelyek hajtják a hajcsomókat.
7. Utility node-k használata más renderelőkhöz
Az XGen szorosan integrált mental ray-el és RenderMan-el, valamint saját shading és material node-k állnak rendelkezésre ezeknek a renderelőkhöz. Átfogó sablonkészletet kínálnak a gyakori esetekhez, lehetővé téve a set-up kinézetének és hangulatának gyors létrehozását.
Azonban egy produkciós környezetben esély van arra, hogy a lookdev-t, a lighting-ot, valamint a renderelést más-más csapat más renderelőkkel kezeli.
Ilyen esetekben használhatjuk az XGen utility node-ját az UV surface mappingjéhez, hogy bármilyen material-t, ramp-et, vagy egész shading hálózatot applikáljunk a groom-ra. Ez lehetővé teszi a komplexebb kinézet elérését. Nagyon sok node közül választhatunk, de a leghasznosabb az xgen_ptex_lookup.
8. Mentsd el a texture map-eket Ptex és szabványos formátumokban is
Az alap map look-up a Disney által kifejlesztett textúra-formátum, a Ptex-en alapul. A Ptex rengeteg előnnyel rendelkezik a kanonikus UV mapping-el szemben. Legfontosabb tulajdonsága, hogy torzításmentes, mivel a sokszög minden oldala egyenként kivetítődik, és egy egyedülálló textúra fájlba map-elhető.
Hátránya, hogy a PTex textúrák topológiától függenek. Minél több map irányítja a riget, ez a metódus annál fájdalmasabb lesz.
Amikor map-et festesz, a Maya saját 3D paint tool-ját használod a classic UV set-en. A mentés gomb megnyomásakor a Maya automatikusan konvertálja a map-et Ptex formátumba. Ügyelj arra, hogy gondosan mentsd és archiváld az eredeti, nem Ptex map-eket. Ez a groom transzformáláskor életmentő lehet.
Figyelembe kell venni még azt is, hogy a Ptex térképek számunkra nem olvashatók, mivel a textúra patc-ek véletlenszerűen vannak elrendezve, a tényleges geometriára való térbeli hivatkozás nélkül. Ha a térképeket olyan külső alkalmazásban kell szerkesztenünk, mint például a Photoshop, akkor még fontosabbá válik a pre-PTEx formátumban történő archiválásuk.
9. Használd jól az archívokat
A geometria instancálása archívok segítségével történik. Ezek olyan fájlok, amelyek egyetlen instance geometriáját tárolják. Újra és újra elhelyezhetjük a geometriát, ugyanúgy, mint XGen saját primitívjeit.
Ez akkor hasznos, amikor pikkelyeznénk egy karaktert vagy fákat generálnánk egy erdőhöz, ilyenkor be tudjuk tölteni a memóriába a geometriákat, ezzel lehetővé téve egészen extrém mennyiségű asset készítését és szerkesztését.
Csakúgy, mint a primitíveknél, guide-ok, map-ek, illetve expression-ök segítségével szabályozhatjuk az instance-k közötti variációkat. Ismét kiemelném, hogy ahol csak lehet, ott szeretek procedurális eljárást alkalmazni. Első a szép általános kinézet elérése, majd ezután fokozaton adjuk hozzá a részleteket, például az instance módosításával és re-exportálásával az XGen’s Create MEL File opciójával.
Érdemes animálni a geometriát is: például wind cycle-t adhatunk hozzá a fákhoz. Az Xgen alap sequencer-ként is funkcionál, képesek vagyunk offset-elni az animációt expression-ök használatával. $Frame variable használatával határ a csillagos ég.
10. Hagyj helyet a változtatásoknak
Egy animált asset surface-én dolgozni egyszerre modellezés és riggelés. Egy statikus karakter felépítésekor előre kell látnod, hogy hogyan fognak az instance-k viselkedni az animált pózokban.
Nagyon ritka az a helyzet, amikor megépítesz egy riget ami aztán végig tökéletesen működik, ezért gyakran shotonkénti javításokat kell majd alkalmaznod. Rendkívül fontos, hogy legyen stratégiád ezeknek a javításoknak a beépítésére. Kell egy kis helyet hagynod a végső retusálásokhoz.
Ez a fő oka annak, hogy a procedurális set-up-ot részesítem előnyben. Ezen a ponton szinte kénytelen vagyunk nem-procedurális eljárási technikákat alkalmazni a nem kívánt eredmények kijavítására, és nem akarjuk, hogy a javítások bármi másra hatással legyenek. A kezdeti rig strukturálásának legjobb módja projektenként eltérő, de a változásokra való nyitottság szükségessége egyetemes.