onsdag 27. mai 2009

Character development

Under vil jeg forklare utviklingen av de tre karakterene jeg utviklet.

Minstebukken:

Vi hadde ett hovedmål når vi gikk igang med å designe minstebukken, den måtte vere så søt som over hode mulig, selv om det kanskje førte til at den ble mindre lik en ekte geitekilling. før jeg begynnte for alvor tegnet jeg massevis av raske småskisser av geitekillinger innimellom annet arbeid for å sette i gang underbevisstheten. Jeg prøvde å analysere søte dyr for å finne ut akkurat hva som gjør at vi oppfatter det dyret som søtt. Når datoen for å starte produksjonen av minstebukken kom, startet jeg direkte i 3dsmax og laget en enkel basemesh uten tanke på topology eller avansert form, kunn en klump med et hode og fire bein.



Deretter tok jeg modellen inn i zbrush, la på et par subdivisions og begynnte å gi den litt form:






Utformingen av kroppen var av liten betydning ettersom pelsen kom til å vere ganske tykk der, Det viktigste var å få hovedtrekkene på plass. I ansiktet derimot var formen viktigere ettersom håret kom til å vere kortere der. Når jeg var noenlunde fornøyd med utformingen gikk jeg i gang med retopologisering, retopologize er en funksjon i zbrush som lar deg tegne ny topology over en modell ved enkelt å greit å trykke rundt om kring på modellen for å plassere vertekser.

gammel wire før retopo:


Retopology progress:


retopologisert hode med et par subdivisions:


Retopologisert modell med en subdivision:


Og vips! så var modelleringen ferdig.
Unwrapingen var gjordt på en halvtimes tid med peltmapping og litt fiksing etterpå. ettersom vi skulle bruke hair and fur så var streching ganske uvesentlig, det viktigste var å få en "descent" uv-layout og få allt inn på ett map for å slippe å bruke et eksternt growth objekt til håret.



Tekstureringen var heller ikke særlig vesentlig på denne modellen pga pelsen, det viktigste var å få på plass en farge som passet bra som underlag til pelsen, og å farge på de plassene som ikke var dekket av hår.



For at Karoline skulle kunne begynne å animere fortest mulig tok jeg riggingen før jeg begynnte med hair and fur. Vi valgte å lage riggene våre selv, først og fremmst for å lære mer om rigging, men også fordi vi har prøvd characterstudio i et tideliger prosjekt og fått det litt opp i halsen. Hadde vi hatt mer tid på oss skulle vi satt oss inn i CAT. Siden dette var den første riggen jeg gjorde for dette prosjektet har den en del mangler i forhold til størstebukken. ettersom karoline fikk teste minstebukk-riggen en del i felten før jeg startet på storebukken, fikk jeg en del konstruktiv kritikk jeg kunne ta med meg videre for å forbedre riggene til trollet og storebukken.

Her er et par bilder av riggen:







Så var det tid for grooming.
Grooming (hårstell) går i 3d sammenheng gjerne ut på å tegne splines som skal representere hovedutformingen av en frisyre. Der er mange ulike grooming-options i hair and fur modifieren, men jeg brukte så godt som ingen av disse. å tegne hundrevis av splines tar riktig nok lang tid, men det gir en langt større frihet.



Når alle splines var ferdig tegnet begynnte jeg å testrendre med ulike settings. Planen var i utgangspunktet å rendre furen med scanline, og med standard buffer som hair and fur shader, men etter et utall testrendere innså vi at Buffer var ubrukelig til animasjon, ettersom den alltid fikk en stygg flimring, vi trålet nettet etter løsninger, men etter å ha funnet mange eksempler på samme problem men uten løsning så vi oss nødt til å gå over til å bruke mentalray og mr.prim i stedenfor scanline og buffer. Dette fjærnet flickeringen, men brukte til gjenngjeld flere ganger lengre tid å rendre, jeg fortsatte å tråle nettet og kom over en ekstern fur shader med navnet muHair. Denne shaderen viste seg å vere raskere å rendre og gi bedre resultat enn standard mr.prim. Shaderen kan lastes ned på : http://animus.brinkster.net/stuff/plg_muhhair/plg_muhhair.html

Her er pelsens utvikling, fra tidelige testrenders, til final :

Første test, uten grooming:


enda en, uten grooming :


med grooming :




Overkill glaretest :


final gather :


Uten final gather, men med diverse ekstra lys:


litt bedre farger i lyset, og motionblur aktivert:


Final version, fargekorrigert i photoshop (litt for rosa)


I løpet av produksjonen viste hair and fur seg å by på flere problemer enn bare økt renderingstid. Renderingen var svært ustabil, når vi satte på render som skulle gå over natten kunne vi føle oss omtrent 100% sikker på at den kom til å ha kræsjet når vi sjekket neste morgen, dette førte til at vi tapte veldig mye nattelig renderingstid, men etterhvert som vi hadde rendret flere og flere pass begynnte vi å ane et slags mønster i kræsjingen, den kom ca alltid etter 10-20 frames, aldri særlig under 10, så det vi gjorde mot slutten var å sette på flere renderinger som stod og gikk paralellt, dermed tok det lenger tid før hvert enkelt program klarte å fullføre så mange frames at det kresjet, og til sammen fikk de dermed ut flere frames. Vi føler oss ganske sikkre på at dette problemet skyldes muhair shaderen vi benyttet oss av, men ettersom den gav det beste resultatet, og det at vi fannt ut av det så sent i produksjonen valgte vi å forsette med den shaderen.

Et annet nesten like stort problem hair and fur gav oss var et hav av renderbugs, svarte vertikale linjer som opptrådte på tilfeldige frames i tilfeldig antall  og størrelse. Dette førte til at vi måtte rendre opp igjenn veldig mange frames, og på en del frames lot de seg ikke en gang rendre opp igjenn, samme bugs opptrådte gjerne også etter rerendering, disse måtte da enten fikses i photoshop, eller rett og slett fjærnes fra filmen hvis den bestemmte framen var veldig lik den forige. Dette problemet oppstod uavhengig av hvilken shader vi benyttet oss av, men i større grad med standard shaderen enn med muhair.


Trollet:

Trollet er inspirert av en tegning jeg kom over på nettet av Theodor Kittelsen, Jeg har alltid vert fascinert av trollene han tegner, men dette her likte jeg spesiellt godt:


Conceptarten til trollet sa jeg meg ferdig med i storyboard fasen, så jeg gikk rett i gang med modelleringen, i motsettning til lillebukken og storebukken brukte jeg på trollet den tradisjonelle modelleringsteknikken i max (uten zbrush og retopology), her er noen wip shots:







Ferdig modell:


En liten testsculpt til normalmap generering:


For å få mest mulig detaljer i ansiktet og på hendene valgte vi å dele opp uvw layouten i 3 deler, i etterkant angrer vi litt på dette ettersom det førte til at vi måtte operere med et ekstra growth object for hair and fur. Grunnen til dette var at vi trengte å bruke et densitymap for å definere hvor det skulle vere hår, og hvor det ikke skulle vere hår, Dette densitymapet kan ikke deles i flere deler og distribueres til de ulike delene av modellen via material ID som vanlige materialer kan, ettersom det legges i en egen kanal i hair and fur modifieren og blir automatisk lagt på i alle material ID's. Løsningen ble å lage en kopi av den orginale modellen, og slå sammen alle uv kordinatene i en layout. Når det var gjordt tok jeg modellen inn i zbrush og paintet en grayscale maske som jeg la i densitykanalen i max. Growthobjektet fikk en instance kopi av morpher og skin modifierene til den orginale modellen.

Karoline stod for teksturering, shading og morphing av trollet, så de delene kan leses på : 
http://bukkenebruse3d.blogg.no/

Riggingen av trollet ble en stor utfordring, og jeg ble egentlig aldri fornøyd med den. Det største problemet var at jeg ikke var klar over at hvert enkelt squash and strech bone må ha en egen "upnode" som  lookat-constrainen kan orientere rotasjonen sin etter. fordi riggen manglet dette fikk modellen mange rare bulker og vridninger ved visse bevegelser, dette skapte stor frustrasjon for stakkars Karoline som skulle animere beistet, hun gjorde en fantastisk jobb med animeringen til tross for de store begrensningene riggen skapte. 



Hair and fur på trollet gikk ganske greit bortsett fra utfordringene med densitymappet som jeg fortalte om over, vi brukte standard mr.prim shader uten noe videre hokus-pokkus.



Storebukken:

På samme måte som at vi ville lage den minste bukken så søt som mulig, ville vi lage den store bukken så maskulin og stolt som mulig. Jeg studerte en del geitebukker, men brukte også en type sau under navnet "Bighorn Sheep" som referanse, ettersom disse hadde mye av den looken jeg gjerne ville få til.


Når jeg skulle modellere storebukken gikk jeg tilbake til å bruke zbrush og retopology igjenn, som jeg gjorde med lillebukken. Det fine med denne teknikken er at den lar deg isolere den kunstneriske,kreative delen som er selve formgivingen, fra det å hele tiden tenke på topologien, at alle edges skal flyte fint og gi en god og logisk wireframe. Her er et par shots fra arbeidsprosessen :






Unwrapingen og tekstureringen av størstebukken var gjordt på samme måte som med minstebukken, så jeg ser ingen grunn til å ta hele leksa om igjen. Riggen er også i bunn og grunn ganske lik minstebukken sin, men jeg videreutviklet den og la til flere funksjoner og større fleksibilitet. på samme måte som trollet, har storebukken mange strechy bones, men her fannt jeg heldig vis ut av behoved for upnodes, så bukken endte opp med en langt mer funksjonell rigg enn trollet.



Hadde jeg hatt tid skulle jeg gjerne ha satt meg inn i CAT og muskelsimulering, men det får bli en annen gang :)

Hair and fur på storebukken var også ganske greit å få til, siden jeg allerede hadde gjordt det på minstebukken.

Ingen kommentarer:

Legg inn en kommentar