• No results found

Animating for a game environment

N/A
N/A
Protected

Academic year: 2022

Share "Animating for a game environment"

Copied!
19
0
0

Loading.... (view fulltext now)

Full text

(1)

2007:254

C - U P P S A T S

Animating for a

Game Environment

Alexander Damm

Luleå tekniska universitet C-uppsats

Datorgrafik

Institutionen för LTU Skellefteå Avdelningen för Fritid och Underhållning

2007:254 - ISSN: 1402-1773 - ISRN: LTU-CUPP--07/254--SE

(2)

Animating for a Game Environment

Final thesis ISI782 by Alexander Damm Luleå Tekniska Universitet

GRIN AB 2007-05-21

(3)

Förord

Jag vill först och främst tacka GRIN AB som lät mig göra mitt examensarbete hos dem och fullgöra mina studier som datorgrafiker vid LTU. Sen vill jag speciellt tacka Lars Bonde som har varit min handledare här på Grin.

Examensarbetet är en studie i hur det går till för att skapa realistiska animationer för ett high-end TV-spel.

(4)

Sammanfattning

Att jobba på ett spelutvecklingsföretag innebär ett annat sätt att tänka på som animatör.

Man har ingen historia att berätta genom sina animationer på samma sätt som man har när man animerar för en film. Historieberättande kan saknas samtidigt som det kan vara lättande att slippa tänka på det.

Genom att få ta del av Grins daliga animationsrutiner har jag fått större insikt om hur det är att arbeta som animatör på ett spelföretag.

Begränsningar är det främsta man måste tänka på. På grund av vissa tekniska begränsningar får man mindre estetiskt frihet. I samarbete med gameplay programmerarna har vi kunnat öka den artistiska friheten för vissa animationer.

Grin använder sig av programvaran Motionbuilder på grund av dess stora flexibilitet och förmåga att spela upp animationer i realtid. Eftersom Grin utvecklat sin egen grafikmotor har man skrivit en egen animationsexporterare till motionbuilder. De har utvecklat metoder för att på ett snyggt sätt växla mellan animationer och Grin bryr sig verkligen om samarbetet mellan gameplay programmerarna och animatörerna eftersom de vill få ut så mycket som möjligt av animationerna.

(5)

Abstract

Working for a game development company involves a different way of thinking as an animator. You are not telling a story through your animations the same way you do when you’re animating for a movie. I can miss that aspect of animation but at the same time be much relived that I don’t have to think about it.

By having the opportunity to be part of Grin’s daily routines regarding animation I’ve come to greater understanding of how it is to work as an animator in a game

environment.

Limitation is the first and foremost thing you’ll have to think about. Some of the esthetics has to be sacrificed due to some technical limitations but with collaboration with the gameplay programmers we’ve managed to give the animator a bigger esthetic scope to work with.

Grin uses Motionbuilder as an animation package due to its flexibility and realtime playback. The graphics engine that Grin uses is developed inhouse so they had to write their own exporter for Motionbuilder. They have developed methods for blending animations with amazing results and the collaboration between gameplay programmers and animators are very concerned for since Grin wants to get the most of every

animation.

(6)

INLEDNING ... 1

Presentation av GRIN AB ... 1

Bakgrund... 1

Syfte ... 1

ANIMATION ... 2

Animation i allmänhet... 2

Att animera på GRIN... 3

Begränsningar för animation inom spel. ... 4

Programval... 5

Exportering... 6

Testa animationerna i spelet... 7

Motion-capture ... 8

Samarbetet mellan gameplay och animatörerna ... 9

Triggers och Beats... 10

RESULTAT... 11

DISKUSSION ... 12

REFERENSER ... 13

(7)

1

Inledning

Presentation av GRIN AB

Grin grundades 1997 av bröderna Andersson med en vision att skapa ”state of the art”

spel med hjälp av den allra senaste tekniken. Av resultaten att döma har de verkligen lyckats. Det senaste tillskottet bland deras spel är GRAW 2 (Ghost Recon Advance Warfighter 2) är riktigt imponerande med bra stöd för fysik med hjälp av AGEIA fysikmotor och snygg grafik.

Grin har växt något oerhört det senaste året. Från att ha varit ett litet företag på 30 utvecklare, till ett lite större företag på 90 personer bara här i Stockholm. Just nu är företaget i full färd med att öppna ett nytt kontor nere i Barcelona som kommer driva egna projekt. En idé med kontoret nere i Barcelona är att personalen ska kunna rotera från kontoret i Stockholm till Barcelona och vice versa.

Bakgrund

Animation har alltid intresserat mig och under mitt sista år på LTU inriktade jag mig på karaktärsanimation. Nu när det är dags att skriva examensarbetet stod valet mellan animation för film eller spel. Lotten föll på animation för spel.

Hur går det till när man animerar för ett spel? Finns det begränsningar man måste tänka på? De var det huvudsakliga frågorna som drev mig till att skriva detta exmensarbete.

Samtidigt som jag hjälpt till att utveckla en animationsprofil för Grins kommande spel försökte animera jag en hel del och lära mig så mycket som möjligt från veteranerna.

Syfte

Syftet med mitt examensarbete är att jag ska få större förståelse om hur det går till att producera animationer till ett high-end tv-spel i en riktig utvecklingsmiljö. Vilka metoder som används och vilka olika faser som ingår vid animering för spel.

(8)

2

Animation

Animation i allmänhet

En animatörs uppgift är att ge rörligt liv åt karaktärer och föremål i spelvärlden. I takt med att dagens tv-spel blir allt med avancerade rent grafiskt och tekniskt sätter det högre krav på animatörerna. I början av spelindustrin bestod karaktärerna av små 2D-bilder och det behövdes ofta inga avancerade animationer. Skulle en karaktär springa kunde det räcka med fyra bilder, en för varje fot som sätts ner och sparkar ifrån. Oftast sköttes detta av samma personer som designade karaktärerna medan man idag har dedikerade

animatörer eftersom animation har blivit så krävande. Man tar ofta hjälp av en teknik som kallas motion-capture där man spelar in rörelser från en skådespelare som sen driver en datorgenererad karaktär för att få så verklighetstrogna rörelser som möjligt. När man å andra sidan animerar för hand ställer man karaktären i en viss pose och sätter ut en keyframe som låser karaktären i tiden med den ställningen man poserat karaktären i. Man fortsätter och sätter ut fler nyckelpositioner på nya bildrutor senare i tid för att till slut få den rörelse man vill åt.

Nyckelrutorna för en animerad gångcykel kan se ut såhär.

Bilden är tagen från Richard Williams, The Animator’s Survival Kit.

Animatörerna ligger ganska långt bak i kedjan eftersom vi är beroende av att alla modeller är färdiga och riggade. När man riggar bygger man upp kontroller och begränsningar för en modell som gör det möjligt att animera den. Man återanvänder riggar för likartade modeller för att snabba upp riggningsprocessen så mycket som möjligt. I vissa fall behöver man dock specialbyggda nya riggar. Ett exempel kan vara bossar som är väldigt unika. Den tekniska artisten och animatören går då igenom vilka kontroller som animatören vill ha och vilka begränsningar som ska finnas om några.

Vilka rörelser som behövs för karaktärerna bestäms alltid i förväg. Utan ett

designdokument kan en simpel uppgift lätt bli för stor och okontrollerbar men det finns alltid utrymme för ändringar.

(9)

3 Att animera på GRIN

Arbetsmiljön på Grin är väldigt kreativ och jag kände mig som hemma med en gång.

Mycket tack vare Lars Bonde som verkligen sett till att jag skulle trivas. Saknar man inspiration räcker det med att gå ett varv runt våningen. Kontoret är proppfullt med talanger. Allt från konceptare till level designers.

Det krävs ett visst tankesätt när man animerar och det brukar alltid ta en liten stund komma dit. För att göra den sträckan så kort som möjligt kan man börja dagen med att gå igenom lite gamla animationer. Man kan även ta hjälp av animerade filmer eller korta inspelningar av andra datorspel som på något sett påminner om hur våra animationer bör se ut. När man väl kommit igång är det viktigt att man vet vart man vill ta sin animation.

Planering är viktigt och har man gjort den väl tar det inte lång tid att få fram ett hyfsat resultat. Ibland kan den enda informationen man får vara att karaktären ska ta sig från A till B på en viss farkost tillsammans med frasen ”Gör nåt häftigt”. Får man inte direkt någon idé om hur man vill utföra manövern kan man ta ritblocket till hjälp. Det går snabbt att skissa upp olika poser och man ser snabbt vilka siluetter som fungerar bäst.

Nästa sten blir att göra en ”mockup”. En mockup är en animation man gör snabbt som innehåller alla poser och rätt tajming för animationen. Man ser snabbt om animationen kommer funka i spelet och det är i det här skedet det är lättast att ändra något om det skulle behövas. Man testar mockupen i spelet och ser det bra ut kan man fortsätta att färdigställa animationen. Även om en animation blivit godkänd och färdigställd betyder det inte att den inte kan bytas ut i ett senare skede.

På Grin sitter alla animatörer samlade på samma avdelning så det är lätt att kommunicera med varandra. Att ge varandra konstruktiv kritik är en viktig del av arbetet som man inte får glömma. Behöver man en paus i arbetet kan det vara nyttigt att gå runt bland de andra animatörerna för att se hur det går för dem och återgå till arbetet med förnyad inspiration.

Det finns ett system där alla uppgifter om de animationer som behövs och vem som animerar på dem. Allt eftersom uppdaterar man systemet när man gjort mockups etc.

Tyvärr så har vi inte börjat använda det systemet eftersom vi har varit så tidigt i produktionen med bara en handfull animationer att arbeta med.

Grin har varit i full färd med att utveckla en animationsprofil. Det ska vara mycket starka och definierade poser med snabb och bestämd tajming.

(10)

4 Begränsningar för animation inom spel.

Att animera för spel och för film skiljer ganska markant. Inom spel finns det mängder av begränsningar man måste tänka på. De tydligaste exemplen är anticipation och

followthrough. Anticipation är när karaktären antyder vad som kommer att hända innan den utför handlingen och followthrough är rörelser som avslutar en större rörelse.

Exempel på followthrough kan vara att en karaktär som landar efter ett hopp sjunker ihop innan den återgår till viloställning. I ett spel vill man att karaktären ska ge direkt respons på spelarens handlingar. Därför utesluter man oftast anticipation. Followthrough brukar vara lite lättare att använda beroende på animation och hur lång tid man kan avvara i slutet av en animation. Oftast vill man ge spelaren kontroll av karaktären så fort som möjligt.

Andra begränsningar kan vara att man är begränsad till vissa grundposer. Ett exempel är att om en karaktär ska lada om sitt vapen måste han avluta rörelsen in i samma pose som han började rörelsen i. Ett annat är att animationerna inte får vara för långa eftersom de sparas i minnet på den datorenhet som spelet spelas upp på.

Något som mer är en utmaning än en begränsning är att man använder sig av en fri kamera i spelet. Animationerna måste då se någorlunda bra ut från alla tänkbara vinklar.

Detta medför att det kan vara en aning klurigt att få till det där lilla extra som gör en bra pose i den vinkeln som används mest.

(11)

5 Programval

Programvaran som används kan skilja sig ganska mycket från företag till företag. De vanligaste programmen man animerar i för spel är Maya, 3D Studio Max och

Motionbuilder. Alla program är från samma företag, Autodesk. På Grin använder vi oss av Motionbuilder 7.5, ett program dedikerat för animation. Anledningen till att Grin använder Motionbuilder är främst att programmet kan spela upp animationerna i realtid och den unika IK-solvern. Realtidsuppspelning spar oerhört mycket tid. I andra program blir man tvungen att rendera ut sekvenserna för att se hur det kommer spelas upp i spelet.

IK refererar till Inverse Kinematics där uträkningen av lederna i en kedja bestäms av ändpunkternas positioner. Det skiljer sig från den andra metoden som kallas FK, Forward Kinematics, där lederna i en kedja ärver sin position från föregående led. Grins exporter för animationer fungerar endast med Motionbuilder.

Motionbuilder använder sig även av ”takes”, tagningar. I stället för att spara oändligt många filer av en animation räcker det att man gör en ny take i programmet. Man kan välja att kopiera animationen från den take man precis jobbat i eller skapa en helt blank take. På detta sätt kan man lätt och snabbt testa nya saker med sin animation.

Det simpla systemet att flytta animationer från olika karaktärer och det utmärkta motion- capture stödet är även de anledningar till att Grin använder Motionbuilder.

(12)

6 Exportering

Exportern som Grin använder sig av är kodad på företaget eftersom de använder sig av en egenutvecklad grafikmotor. Innan exporteringen förbereder man animationen. Beroende vad det är för animation och vad den ska användas för behöver man göra lite olika saker.

Man kan dela upp animationen i flera bitar eller generera en punkt på olika sätt för kameran, kallad root_point.

En root_point måste alltid exporteras eftersom det är den punkten som gör att spelet vet var karaktären är i rymden. Rooten kan genereras av valfri led i karaktären.

Man kan dela upp samma animation på flera olika sätt. Allt beror på hur den kommer att användas i spelet. Figuren nedan illustrerar ett animerat hopp.

I figur 1 ser vi ett hopp som är uppdelat i fyra delar. Dessa drivs av script och fysik som bestämmer hur snabbt, högt och långt hoppet kommer vara i spelet. Vägen upp till toppen är en loop, sen spelar själva hänget upp som sedan går över till en fallande loop. När karaktären når marken spelas landningen upp. Figur 2 illustrerar ett hopp som drivs helt av animationen, det vill säga att hoppet kommer spelas upp exakt som det är animerat. Man behåller

landningen för sig eftersom man inte vet exakt vilken höjd

spelaren kommer hoppa ifrån.

Själva fallet är också utsträckt så att man har en unik animation så länge som möjligt utan att behöva gå över till en loop.

I hoppet genererar vi rooten från en led i höften. Höften roterar med största sannolikhet en hel del i animationen och eftersom rooten fått exakt samma rörelse som höftleden kommer kameran att rotera vilt om man exporterar sin animation i det här skedet.

Eftersom man bara vill att kameran ska följa rooten tar man bort all rotation från rooten och roterar den så att den pekar åt rätt håll. En annan sak man måste tänka på när man

(13)

7

delar upp sin animation är att rooten måste vara på exakt samma ställ i förhållande till höftleden vid alla animationsbyten. Är den inte det är bieffekten att man får en ryckig kamera precis i växlingsögonblicket.

När man väl exporterat animationerna får man två filer. En som slutar på .oil och en som slutar på .diesel. Det är bara .diesel filen som används av spelmotorn och den är kraftigt komprimerad och strippad på information som inte behövs för att animationen ska spelas upp. .Oil filen däremot är full av information som till exempel sparade inställningar för exporteraren i Motionbuilder.

Testa animationerna i spelet

Nästa steg blir att testa animationen lokalt i spelet innan man lägger in den i spelet så att alla kan ta del av den. De problem som kan uppstå är till exemepl att växlingen mellan animationer inte stämmer överens och att rooten är felaktigt exporterad.

Har man svårt att lokalisera problemet finns det ett program som spelar upp

animationerna där man lätt kan se om till exempel rooten uppför sig som den ska eller om en loopad animation spelas korrekt.

Efter att speldesignern på Grin godkänt animationerna måste de bli godkända från förläggaren. Förläggaren får uppdateringar av projektet vid milstensinlämningarna.

(14)

8 Motion-capture

Inom spelbranschen används ofta motion-capture och Grin är inget undantag. Hur mycket och vad som behövs spelas in kan bero på flera olika saker. Dels vad det är för typ av spel och dels på hur stor budget man har till motion-capture. Det är större chans att man spelar in motion-capture data för ett realistiskt krigsspel än ett spel som handlar om påhittade figurer med unik anatomi.

När man spelar in motion-capture göra man det genom att flera kameror spelar in positionerna av små reflekterande markörer man placerat på en skådespelaren. Man placerar markörerna nära varje led så att man kan identifiera ledernas rotationer.

Utrustningen som behövs är oftast väldigt dyr och man kan behöva dedikerad personal som sköter allt från inspelning till upprensning av animationerna. Man vänder sig ofta till specialiserade företag.

Grin hyr motion-capture lokal och kompetens av Northern Light Studios (NLS) när de behöver spela in motion-capture. Northern Light Studios är ett företag som specialiserar sig på motion-capture och animation. Grin planerar noggrant ut vilka rörelser som

kommer behöva spelas in. Grin väljer varsamt ut den skådespelare eller stuntman som ska utföra dem. Det är Grin som styr allt under inspelningen. Inspelningen sker under ett par dagar sedan tar NLS över och ser till att förbereda rörelseinformationen så att vi kan använda den i Motionbuilder.

Det är väldigt sällan motion-capture data används utan att den bearbetas. Man lägger till och tar bort rörelser tills animationen blir precis så som man vill ha den.

(15)

9

Samarbetet mellan gameplay och animatörerna

Det är gameplay programmerarens jobb att bland annat se till att animationerna spelas upp korrekt i spelet. Ju bättre samarbete man har med programmerarna desto bättre blir animationerna. Det har ofta hänt att vi tagit animationerna ett steg längre tack vare att vi hela tiden kommunicerar med varandra. Man bollar idéer fram och tillbaka tills man kommer på den bästa lösningen för båda parterna.

Vi kan åter igen ta hoppet som ett exempel. I och med att hela hoppet nu är

animationsdrivet får animatörerna större frihet att göra snyggare animationer medan programmerarna slipper gå in och ändra koden om tajmingen, höjd och lite större förändringar i animationen skulle ske.

Andra saker man kan diskutera om är vilken typ av blendning som ska användas. I vissa fall fungerar det bra att göra en vanlig blend mellan animationerna. Data som spelas upp från den första animationen minskar i samma takt som data från den senare animationen ökar tills det bara är den senare som spelas. I vissa fall där man vet i vilka animationer en rörelse kommer sluta i kan det dock vara fördelaktigt att ta bort blenden helt. Då ger man animatören full kontroll.

Transition är en annan metod vi använder oss av när vi växlar animation. Skillnaden mot vanlig blend är att man lägger in en kort animation mellan den animationen man går från och den man byter till. Transitions använder man till fördel om man har lite tid mellan växlingen. Givetvis blendas det till och från transition animationen.

Ännu en metod är beats som nämns senare i rapporten.

(16)

10 Triggers och Beats

Trigger används för att kalla på effekter under olika skeden i animationen. Förut fick gameplay programmerarna en lista med olika bildnummer som animatören vill att olika ljud och effekter ska spelas upp på. Nu när vi har triggers sätter vi ut en key för den triggern vi vill ha precis som när vi animerar och effekten anropas automatiskt när animationen spelas i spelet. Det finns oändligt många användningsområden för triggers.

Att sätta en ljudtrigger för karaktären när han sätter ner sin fot och en trigger som gör att han trampar upp lite rök är bara en bråkdel av vad man kan göra.

Beats sätts ut på liknande sätt som triggers men har ett helt annat användningsområde.

Beats används för att man ska få snygga övergångar i animationer som till exempel från en gångcykel till en springcykel. I vanliga fall skulle man kanske bara blenda in den första posen i springcykeln och resultatet skulle bli att karaktärens fötter glider över på ett onaturligt sätt om inte spelaren börjar springa på exakt rätt ställe där foten i slutet av gångcykeln och i början av springcykeln är på exakt samma ställe. Med beats räknar spelet ut till vilket steg som kommer härnäst och blendar naturligt från den ena animationen till den andra.

(17)

11

Resultat

Animation för spel kan i vissa fall vara mer teknisk än vad man önskar. Dock är det väldigt tillfredsställande att animera för spel eftersom det ofta handlar om korta animationer. Metoderna man använder sig av skiljer sig inte så mycket från när man animerar ”vanligt”. Man måste för det mesta bara tänka på de tekniska begränsningar som finns och det är en utmaning i sig.

Företagets pipeline är väldigt flexibel. Animatörer kan börja animera i ett tidigt skede på grund av att vi använder motionbuilder och det är väldigt lätt att föra över animationer till nya eller uppdaterade riggar om de skulle behöva.

(18)

12

Diskussion

Jag har fått större förståelse hur det går till att skapa animationer som ska fungera för ett spel. Vilka begränsningar man kan tänka hållas inom och vad man bör tänka på för att få ut så mycket som möjligt av sina animationer.

Det har varit väldigt intressant att utveckla en ny animationsstil och lära sig alla verktyg som används här på Grin. Användandet av lager i Motionbuilder är väldigt tacksamt. I mitt arbete med hoppet för huvudkaraktären behövdes ett stillastående hopp och ett hopp framåt om karaktären är i rörelse. För att spara tid började jag med göra hoppet rakt upp.

Sedan animerar jag rörelsen framåt i ett nytt lager. Med den metoden behöver jag inte oroa mig för att ändra animationen. Jag behöver bara kopiera över lagret till den nya animationen.

Takes är också en gåva från gudarna nu när man vant sig vid dem. Man kan ha en hel serie animationer i en och samma fil och vill man snabbt prova något speciellt med en viss animation är det bara att kopiera animationen till en ny take. Exportern stöder också takes och man kan välja att exportera flera takes åt gången.

I vissa fall känns det inte som att man animerar på riktigt. Man kan fråga sig vad man vill förmedla min sina animationskunskaper. Animerar man för en film berättar man en berättelse genom sin animation och det är något som saknas i spel. Har man

filmsekvenser i spelet finns det chans att få in den typen av animation men oftast är ens animationer bara en liten del av hela berättandet som man inte tar del av när man animerar.

(19)

13

Referenser

Richard Williams.(2001). The Animator’s Survival Kit. 1:a uppl. London : Faber and Daber Limited. ISBN 0-571-20228-4

http://en.wikipedia.org/wiki/Motion_capture

References

Related documents

Beskriv hur projektresultaten och erfarenheterna från projektet kommer att dokumenteras, tas till vara inom organisationen och spridas vidare till andra aktörer... 19

Ett projekt kan leda till effekter på individnivå, direkt för de personer som deltar i eller nås av projektet, organisationsnivå, det vill säga för den egna organisationen

Skälen för regeringens förslag: Det övergripande målet för transportpolitiken föreslås även fortsatt vara att säkerställa en samhällsekonomiskt effektiv och

För en icke-initierad kan det vara svårt att se skillnad på anställd och kund, alla i lokalen viker kläder, samtalar med någon vän i närheten, på grund av värmen är också

Tydligt och klart framhäver Stråle, att rytt- mästare von Schewen själv direkt spjärnade emot rollen såsom angivare vid vare sig polis­ förhöret eller en

Resonemanget leder till att påminnelsefunktionalitet skulle behöva bryta mot krav 2, att påminnelsen inte får störa användaren, för att ens uppfattas som en

Nationellt resurscentrum för biologi och bioteknik • extra material till Bi-lagan nr 3 december 2012 • Får fritt kopieras i icke-kommersiellt syfte om källan anges..

1) … inte var till någon större hjälp för de kämpande läsarna att gå in i, vara i och röra sig genom olika föreställningsvärldar. Däremot tycks det vara viktigt hur