Effektivt arbetsflöde för att skapa en CG karaktär för film och reklam Effective workflow when creating a CG character for film and commercials Mattias Lind Medie- och kommunikationsvetenskap, kandidat 2017 Luleå tekniska universitet Institutionen för konst, kommunikation och lärande
Effek vt arbetsflöde för a skapa en CG karaktär för film och reklam Examensarbete inom Datorgrafik Mattias Lind
Förord Den här rapporten skrevs som ett moment i kursen Datorgrafik på Luleå Tekniska Universitet, och skrevs i samband med praktik under tre månader. Jag skulle vilja tacka folket på Important Looking Pirates för den här chansen att få vara med och känna på hur det är att jobba där, LTU för en givande utbildning samt vänner och familj för all support jag fått genom hela utbildningen. Mattias Lind 1
Sammanfattning Den här rapporten kommer att gå igenom hur man kan bygga sin 3D karaktär på ett sätt som gör att man kan använda den smidigt i en produktionsmiljö för fotorealistisk offline rendering. Den kommer att gå igenom hur man kan gå till väga i modelleringen, UV mappingen och textureringen. Genomgången kommer att grunda sig främst i de erfarenheter som författaren lärt sig under praktikperioden på Important Looking Pirates, som skedde parallellt med skrivandet av rapporten. Abstract This thesis will go through how one can build a 3D character i a way that makes it easier to use it in a real production environment for photorealistic offline rendering. It will go through how one can approach modelling, UV mapping and texturing, and will be grounded mainly in the experiences the author has gained through the internship period at Important Looking Pirates, which was done in parallel with the writing of this report. 2
Innehållsförteckning 1. Inledning...4 1.1. Bakgrund...4 1.2. Syfte...5 1.3. Frågeställning...5 1.4. Avgränsningar...5 2. Metod...6 2.1. Modellering...6 2.2. Texturering och Shading...7 2.3. Metodteori...7 2.3.1 Fotogrammetri...9 2.4. Metodkritik...9 3. Resultat...10 4. Diskussion...10 5. Slutsatser...11 6. Referenser...12 3
1. Inledning Ett experiment utförs där det skapas en fungerande Computer Graphics [CG] karaktär från start till slut, med hjälp av kunskaper från företaget författaren gjort sin praktik på och tidigare arbeten som gjorts. Rapporten kommer att gå igenom olika tekniker och jämföra dem i relevanta steg med ett tidigare arbete, när är det mest effektivt att använda vilken teknik och varför, där fokus främst ligger på modellering eftersom det var det författaren fick göra på Important Looking Pirates [ILP] till största delen. 1.1. Bakgrund CG och 3D modellering har använts i film och spel länge, och började användas flitigt i mitten av 1990 talet.( Iwerks, 2007 ) Sättet man skapat modeller på har utvecklats en del under åren, men grundprinciperna är densamma. Man vill sikta på att skapa sina modeller så de ser ut som sina referenser, samtidigt som man försöker använda så lite geometri som möjligt, bygga den så den deformerar så bra som möjligt, och skapa den på ett icke-destruktivt sätt som tillåter så stora ändringar som möjligt i alla steg genom hela pipelinen. Innan man gjorde sina karaktärer med polygoner använde man Nurbs, som bygger på matematiska kurvor och skapar geometri genom att interpolera mellan kurvorna. Med den här metoden sparar man kontrollpunkter och kan få fram mjuka ytor med relativt lite minne, vilket var bra när datorerna inte var så starka. Nurbs har dock en del limitationer, och är svåra att jobba med, så man gick relativt snabbt över till polygonmodellering, och sen den övergången har den tekniska grunden i modellering inte ändrats alls. Ett större genombrott i workflow kom kring 2005 med ZBrush, då digital skulptering för första gången användes i filmindustrin av ILM på Pirates Of The Caribbean: Dead Mans Chest. ( Iwerks, 2007 ) Innan digital skulptering flyttade man antingen runt vertiser och skapade creatures på samma sätt som man gör bilar och hus, eller så skulpterade man karaktären i lera och scannade in den med hjälp av laser. ( Iwerks, 2007, 2010 ) Numera används digital skulptering flitigt, speciellt när man jobbar med organiska former, och det är detta arbetssätt jag kommer använda mig av och gå igenom i mitt experiment. Mitt exjobb gjordes på Important Looking Pirates i Stockholm, och praktiserade där som 3D generalist i tre månader, och fick jobba med ett par olika projekt främst som modellerare, men jobbade även en del med look-development, shot sculpting, rigging och simulering. Deras modellerings pipeline är inspirerad av den som används av Weta Digital eftersom många av modellerarna och riggarna jobbat där tidigare, och den är väldigt vattentät. Jag fick lära mig den under praktiken och tänkte använda en del idéer från den i mitt experiment. Arbetet som jämförs med är ett jag har tidigare gjort i ett projekt där jag skapat en spindel med mitt egna workflow som fungerar på en liten skala, men det håller inte om man ska använda den i en film. Efter praktiken på ILP har jag 4
lärt mig väldigt mycket nytt om modellering som jag önskar att man lärt sig tidigare, så jag kommer att använda dessa nya kunskaper för att göra ett liknande projekt och sedan göra ett par stresstester genom experimentets gång. Problemet som är tänkt att lösas är att det är relativt svårt att hitta konkreta förklaringar till hur man går tillväga för att skapa en produktions redo karaktär för film och reklam från start till färdigt resultat, som ska fungera i fler än ett shot. När projekt är färdiga lämnas de ofta och lösningarna man kommit på delas sällan vidare till andra att använda sig av publikt, vilket gör det svårt för personer som vill göra tex. animerad film att göra det på ett korrekt och fungerande sätt om de inte gjort det tidigare. Som tur är finns det några som publicerat eller lär ut metoder som de kommit på som kan vara till hjälp för andra. Skillnaden mellan en produktionsredo karaktär och en som inte är produktions redo är att den passar väl in i en etablerad pipeline och effektiviserar arbetet i ett projekt som har många shots, assets och artists, och det man kan göra för att ta sin karaktär vidare till att fungera i en större produktion är det som behöver tas upp och ge en överblick på. 1.2. Syfte Syftet är att skapa en överblick och beskriva hur man ska tänka när man skapar en 3D karaktär för en produktionspipeline. 1.3. Frågeställning Vad är det mest effektiva sättet att skapa en fungerande 3D karaktär till fotorealistisk film och reklam? Vilka fungerande metoder är vanligast att man använder sig utav på ett företag i industrin? 1.4. Avgränsningar Det här är inte en tutorial, och rapporten kommer inte gå igenom hur man detaljerat åstadkommer det önskade resultatet knapptryck efter knapptryck. Den kommer inte bryta ner eller jämföra exakt alla metoder, utan kommer hålla sig till ett mindre antal som sticker ut och som man kan expandera på, och även som det finns ett antal alternativa metoder till. Rapporten kommer inte gå igenom en hel produktionspipeline, utan fokus hålls på modellering och texturering. I experimentet som kommer att återskapas kommer jag inte att göra en exakt kopia av det tidigare arbetet, men det ska innehålla samma komponenter. Exempel: Om arbetet som valts är att göra en man i kostym kan man göra ett barn i snickarbyxor, för båda fallen kräver klädsimulering, grooming, Subsurface Scattering [SSS] och bipedal rigging. 5
2. Metod Tanken är att ta ett workflow som gjorts tidigare och experimentera med andra metoder för att nå fram till ett liknande resultat, och komma fram till vilka metoder man får ut bäst resultat med optimera ett workflow och ta reda på varför vissa metoder fungerar bättre än andra för det här ändamålet. Metoderna som testas och appliceras på modellen som gjorts tidigare kommer att visa hur man kan anpassa modellen för att få den att fungera i produktion med andra medarbetare, men det kommer också testa om det alltid är nödvändigt att applicera alla dessa justeringar, och om det kommer att vara till hjälp eller möjligtvis bara försvåra arbetsflödet med onödiga steg. Modellen som valts att experimentera med är en modell av en spindel jag gjort tidigare. Anledningen till att den valdes var för att hur den gjordes exakt finns väl dokumenterat, och jag använde mitt egna workflow, som inte fungerar i riktig produktionsmiljö där man samarbetar med många andra. 2.1 Modellering Karaktären som gjorts tidigare påbörjades genom att skapa en bas-skulptur av karaktären med relativt låg detaljnivå. Ovanpå denna modellerades själva modellen bara genom att flytta vertiser med snapping aktiverat, så skulpturen användes endast som referens och för att hitta former. Detaljnivån på topologin var relativt låg under hela processen och behölls hela vägen. När modellen byggts klart gick jag vidare till UV mapping och sen till detalj skulptering, och det som skulpterats här bakades ut till displacement maps, som lades på modellen vid rendering. Det är ett relativt enkelt workflow som ofta används när man skapar 3D karaktärer ( Zac Petroc and Dillon Ekron 2013), 6
men om karaktären ska kunna fungera i en riktig pipeline och användas i många shots måste man anpassa sitt workflow till företagets pipeline för att göra processen så effektiv som möjligt, så det jag gjorde för att ta modellen vidare var att göra om UV layouten och flytta mina UV öar till olika UV områden, och gjorde även alla ändringar i modellen med hjälp av blendshapes istället för att göra de direkt på modellen, anledningen till de här stegen och fördelarna med de tas upp under 2.4 Metodteori. 2.2 Texturering och Shading Texturerna kan man skapa på många olika sätt. Det som gjordes på den första spindeln var att måla alla texturer för hand med alpha-brushes utan att använda några foton. Fördelen med det är att man skapar allt från grunden, och har full kontroll över hur det ska se ut. Nackdelen är att det tar tid, och det kan lätt se stelt ut eftersom det inte finns någon grund från riktiga världen. Det som gjordes på den andra spindeln var att samla ihop foton och projicera de på modellen och kombinera de med en clone-brush och endast göra mindre justeringar genom att måla för hand. Eftersom att bilderna är tagna från riktiga världen får man in realism och liv relativt snabbt i texturerna, men om man inte har samlat på sig tillräckligt många bilder kan det lätt se repetitivt ut om man använder sig av samma bild på flera olika ställen. En tredje metod man kan använda sig av är att göra texturerna procedurella, och även projicera de på modellen procedurellt, så man kan använda materialet på många olika objekt utan att behöva ta hänsyn till UV layout eller form. Den här metoden passar bättre för assets och miljöer än karaktärer, på grund av att karaktärer ofta har relativt komplexa former som kan vara svåra att projicera texturer på kubiskt, och oftast deformeras också karaktärer vid animation, vilket ger deformationer i texturerna om de projiceras kubiskt. ( Autodesk Maya Help, 2017 ) 2.3 Metodteori Den nya karaktären som skapades med nya kunskaper från praktiken på ILP blev en liknande karaktär visuellt, men skapades på ett sätt mer anpassat till ILPs pipeline, vilket innebär att den är mer anpassningsbar till många olika shots och projekt, och har väl optimerad geometri och texturer. Grunden skulle ha gjorts på samma sätt som den tidigare med att skapa en skulptur som grund och sen bygga en ny topologi [retopology] ovanpå, men eftersom jag nu redan hade en modell att börja med som grund så använde jag mig utav den jag redan hade och jobbade vidare och anpassade den till att bli mer optimerad. Sättet som UV mappades på tidigare var att skära upp öar och placera ut dem så de tog upp så mycket utrymme som möjligt i UV rymden. En ny teknik som togs tillvara på från ILP var att använda något som kallas för udims.( Mike Seymour, 2014 ) Det innebär att man kan placera ut sina öar i mer än ett UV område, och på så sätt spara plats samtidigt som man får texturer med högre upplösning. 7
Det är viktigt att jobba icke-destruktivt för att kunna ändra saker smidigt om man får feedback, så en teknik som använts för att justera modellen efter feedback istället för att behöva modellera om allt och skapa helt ny geometri, plus förstöra sin UV layout, är att göra alla geometri-ändringar på en kopia av modellen och sen föra över datan från vertisernas nya positioner till sin huvud-modell, med hjälp av blendshapes eller transfer attributes ( Autodesk Knowledge Network, 2016 ). Dessa tekniker kan användas vid mindre justeringar av modellen, och det är viktigt att behålla antingen sin UV layout eller alla vertiser för att kunna föra över informationen. Vid större justeringar kan man använda sig utav ett egenskapat bibliotek av tex kroppsdelar som man har bra färdiga UV layouts för. Eftersom att udims var det som användes kunde man ersätta tex. ett ben med ett helt annat, och ha alla kroppsdelar på egna separata udims. Man kan då byta ut kroppsdelar och skapa en helt ny karaktär utan att förstöra pipelinen. Detta effektiviserar hela projektet och man behöver bara skapa en grund-karaktär om man inte redan har en sen tidigare, och sen utifrån den skapa andra med stor variation utan att behöva modellera nya från grunden. För att förbereda modellen för alla kommande steg i pipelinen görs det ofta tre olika versioner av modellen efter det att man är färdig med modellering och UV-mapping, enligt medarbetarna på ILP, och det är att utföra två till tre subdivisions på kopior av modellen i stegrande nivåer där den med högst subdivisions är den man renderar, och den i mitten den man skinnar till sin rigg. Alla dessa kopior drivs av varandra med hjälp av blendshapes, så den som deformeras av riggen driver en likadande deformation av kopian med högre subdivisions. Man använder även en liknande teknik när man animerar komplexa ansiktsrörelser, då man har en separat modell och rigg för karaktärens huvud. Huvudets position drivs av kroppsriggen men ansikts animationerna drivs av den separata ansikts riggen. Dessa deformationer coachas ut och flyttas över med hjälp av blendshapes till modellen som ska 8
renderas, och man får då en kombinerad deformation på den som lätt kan justeras i efterhand. 2.3.1 Fotogrammetri Fotogrammetri är en teknik som används flitigt när man modellerar realistiska karaktärer, speciellt om man vill återskapa en modell som finns filmad som man vill ha se likadan ut som originalet. Fotogrammetri är ett enkelt sätt att scanna in ett fysiskt objekt till en 3D applikation med hjälp av flera foton tagna från många olika vinklar, och man behöver ingen speciell scanner utan man kan använda sig utav en mobilkamera om det är det enda man har. Fördelen med en bra 3D scan av till exempel en karaktär, är att man får displacement detaljer och proportioner gratis utan att behöva skulptera dem, vilket man sparar massor med tid på, och så blir resultatet oftast mer exakt. Man behöver dock städa upp skannade modeller en del innan de går att använda. På ILP fick jag göra en Digi-Double, och vi hade fått en scan av beställaren på skådespelaren med väldigt bra detaljer. Det man använde sig av för att städa upp och göra karaktären produktions redo var att importera den i ett skulpterings program som kunde hantera stora mängder geometri smidigt, så tog man in en färdig skapad karaktär med rätt topologi, uv-layout och rigg, sen var det bara att använda sig av en funktion som hette transfer details och måla fram de scannade detaljerna på den färdigbyggda geometrin, och sen göra egna små justeringar för att fylla i där scannen inte hade fångat upp informationen rätt. Det är det vanligaste sättet som används i industrin för att flytta över detaljer från en scan till en modell. ( Autodesk Mudbox Help, 2014 ) 2.4 Metodkritik Metoden går igenom sätt att skapa en 3D karaktär på, först hur man kan göra det på ett fungerande sätt i ett eget litet projekt, sen tas det upp varför det inte fungerar i större projekt, och så tas det upp exempel på metoder som kan göras för att jobba vidare på modellen och anpassa den mer till pipelinen. Experimentet förklaras inte i detalj, utan det antas att man har en grundläggande förståelse för hur man skapar en karaktär i 3D. När det skrivs pipeline så menas det att den pipelinen som jämförts med är den som använts under praktiken, vilket är den som författaren fått erfara och lärt sig, så det fungerar i film och reklamsammanhang. Olika företag använder sig av olika pipelines, men grunden är den samma när det kommer till modellering på bland annat ILP, Moving Picture Company [MPC] och Disney, så det är arbeten som dessa gör som denna pipeline är anpassad och ämnad till, och inte exakt alla pipelines inom film, det finns många olika, men den jag beskrivit används av stora företag och tänket bakom den används av även fler. ( Zac Petroc and Dillon Ekron, 2013 ) Det är inte hela pipelinen som gås igenom här, utan endast en liten del av modelleringen och textureringen som är användbar när man skapar egna karaktärer för film och reklam. 9
Det är inte så mycket experiment och undersökningar i metoden, utan metoden innehåller mestadels jämförelser mellan olika tekniker som man brukar använda när man skapar 3D karaktärer. De metoderna som använts i experimentet som tas upp gås igenom, men det står även en del om andra tekniker runtomkring som kan vara bra att ha i bakhuvudet om man vill återskapa experimentet. Det kan dock tyckas representera mer en faktasamling än ett experiment, men faktan som läggs fram är parenteser till experimentet och är hämtade från ILP och andra referenser. Däremot finns det lite för få källor till påståenden som lärts ut på praktikplatsen, så validiteten av alla påståenden kan vara lite svåra att bevisa. 2. Resultat Resultatet blev visuellt likadant som den tidigare modellen, eftersom jag i grunden använde mig av samma modell, men sättet man kan använda modellen på har expanderat enormt, och den kan nu ändra skepnad, material, och skickas runt i en pipeline och fungerar att jobba med smidigt på olika arbetsstationer. Den använder udims för högre upplösning på texturerna vilket också ger möjlighet till att byta ut delar av modellen utan att förstöra texturerna. Topologin är samma, men använder nu tre olika Level of Detail [lod]s för förenklad rigging och bättre deformation, samt ren och bevarad vertisinformation. 3. Diskussion Om man ska göra en karaktär eller en modell i 3D som ska användas en gång kan metoderna som används i en riktig pipeline vara lite att ta i, det är mycket som är onödigt arbete. Däremot om man har ett projekt, även ett mindre där man vill ha mer än en karaktär och mer än ett shot skulle jag rekommendera att ta en titt på pipelines som används i större företag och i alla fall ta lite inspiration därifrån. Om du regelbundet skapar karaktärer på fritiden så kan 10
det också vara bra att bygga upp en egen personlig pipeline och ett eget bibliotek med assets som kan användas igen i framtida projekt för att spara tid och slippa göra allt från grunden och istället fokusera på det artistiska när allt tekniskt redan är gjort. Tanken var att modellera en liknande karaktär som jag gjort tidigare, men använda tekniker jag lärt mig på företaget jag praktiserat på. Det jag lade märke till var att det egentligen inte är någon skillnad på hur jag tidigare modellerat en karaktär från grunden och hur de gör karaktärer på ILP, utan för att göra karaktären produktions redo för deras pipeline krävs det exakt samma steg, men att man i slutet anpassar karaktären för pipelinen med UV layouts och topologi som går att återanvändas. På det personliga planet så har jag lärt mig enormt mycket under praktiken om hur man som artist passar in i en produktionsmiljö, och de största lärdomarna har jag tagit upp i metoden. Eftersom att det tidigare inte skrivits så mycket kring detta ämne så var det svårt att hitta publicerade referenser från betrodda författare, så många utav källorna jag har använt mig utav är inte skriftliga publikationer, utan andra medium där personer som antingen varit med och utvecklat det de pratar om eller jobbat inom eller forskat i området skriver om hur just de jobbar. 4. Slutsatser Den här uppsatsen har gått igenom hur man kan ta sin 3D karaktär och bygga vidare på den för att anpassas till en pipeline. Det som tagits upp är modellerings tekniker, texturerings tekniker och så har man fått följa de viktiga stegen i hur författaren byggde karaktären, lärdomar och tester. Att göra en karaktär så den fungerar i en riktig pipeline är en del steg, men grunden är den samma i alla pipelines, och det är att jobba icke-destruktivt och ha framförhållning. Det man kan ta med sig av den här rapporten som student är att ha just framförhållning i egna projekt och ta reda på hur alla stegen går till innan ni ger er in i projektet. Om ni sen ska ut och jobba på ett företag som gör effekter och spel kan det vara bra att tänka på att alla företag har sina egna pipelines, och de kommer att ha sätt att jobba på som du troligtvis aldrig hört talas om, så det kan vara bra att vara förberedd på att det kommer att vara relativt mycket att lära sig i början, men grunderna är de samma hos alla företag, så om du vet hur man skapar en karaktär själv, och är öppen och nyfiken när du börjar jobba så ska det inte vara några problem. Om jag skulle ta det här vidare så skulle jag skriva en artikel om pipelines och skillnaden mellan optimerade och icke-optimerade modeller, och även vad man kan göra med sin färdiga karaktär för att göra den fungerande i ett större projekt, så det delas vidare och kan hjälpa andra som undrar hur man kan optimera sina karaktärer och förbereda sig inför ett jobb inom Visual Effects [VFX] industrin, för sån här information är relativt svår att hitta online. 11
5. Referenser Zac Petroc and Dillon Ekron 2013, CG Meetup: ZBrush Character Creation Workflow from Walt Disney Animation Studios http://www.cgmeetup.net/home/zbrush-character-creation-workflow-from-walt-disney-animation-st udios/ (hämtad 10 maj 2017) Andrew Cawrse 2016, Pixologic: Official ZBrush Summit 2016 Presentation - Anatomy Tools https://youtu.be/i6kkp8upjyi (hämtad 10 maj 2017) Autodesk Maya 2017 Help - Loading multi-tiled UV textures through a single texture node http://help.autodesk.com/view/mayaul/2017/enu/?guid=guid-132520c0-f1df-4c74-b8c1-d891 54ADFBDB (hämtad 10 maj 2017) Paul Kanyuk 2017, Pattern Generation at Pixar, Renderman Community https://community.renderman.pixar.com/article/1862/pattern-generation-at-pixar.html?l=t (hämtad 10 maj 2017) Leslie Iwerks, 2007, The Pixar Story, Leslie Iwerks Productions https://community.renderman.pixar.com/article/1862/pattern-generation-at-pixar.html?l=t (hämtad 10 maj 2017) Leslie Iwerks, 2010, Industrial Light & Magic: Creating the Impossible, Leslie Iwerks Productions https://www.youtube.com/watch?v=edovcgpw_3o&t=12s (hämtad 10 maj 2017) Autodesk Mudbox Help, 2014 http://download.autodesk.com/global/docs/mudbox2014/en_us/index.html?url=files/transfer_detai ls_window.htm,topicnumber=d30e66768 (hämtad 10 maj 2017) Autodesk Knowledge Network, 2016, Maya, Transfer attributes between meshes https://knowledge.autodesk.com/support/maya/learn-explore/caas/cloudhelp/cloudhelp/2016/en U/Maya/files/GUID-76D5F064-C5A1-4310-B72A-788AB5C9A25B-htm.html (hämtad 10 maj 2017) Mike Seymour, 2014, FXguide, UDIM UV mapping https://www.fxguide.com/featured/udim-uv-mapping/ (hämtad 10 maj 2017) 12