Kompletterande post 2: Problem och lösningar

februari 3, 2010

I den här sista posten har jag tänkt redogöra för en del problem som vi stötte på i utvecklingen av Jordlingar samt de lösningar vi hittade på dessa.

Problem:

Brist på grafiker
Från början var jag tillsammans med en ytterligare person designerade grafiker på Jordlingar. Omständigheter ledde dock till att denne hoppade av projektet och jag lämnades således ensam med ansvar för samtliga grafiska assets. Detta var minst sagt ett problem för oss då jag är specielaiserad på animation, och därmed inte lika slipad vad gäller modellering och texturering. Vidare hjälper det oerhört att ha någon att bolla med och få en andra åsikt från när man jobbar. Slutligen skulle jag själv inte kunna producera lika mycket innehåll om jag jobbade ensam som om vi var flera. Goda råd var dyra.

Exporteringar till XNA
Exporteringar: ett lika klassiskt återkommande som frustrerande problem. I vårat fall bestod problemen av flera olika aspekter. När jag exporterade vår enda karaktär, Utomjordlingen, så förvreds hans ben så fort de rörde på sig i animationen. Detta syntes endast i Motionbuilder och i spelmotorn. Den enda temporära lösningen jag hittade på detta var att helt enkelt ta bort riggen för benen så att de inte rörde på sig alls och sedan placera karaktären så att endast överkroppen syntes i bild.
Vissa objekt som exporterades, inklusive Utomjordlingen, snedställdes i motorn. Postionen och rotationen varierade från objekt till objekt, men återkommande var att de på något vis var skevt placerade eller förvreds på något sätt i sin animation.

Flaskhals för programmerare
I vår produktionslinje skapade vi assets utifrån de designdokument som designerna gav oss. Vi skickade sedan dessa till vår programmerare som implementerade dem i spelet. Här uppstod ganska ofta en del problem. Saker och ting kunde vara i fel skala, sakna rätt material etc. När sådana saker uppstod fick assets skickas tillbaks till oss och vi rättade till problemen. Detta innebar dels att vi var tvungna att avbryta arbetet med assets till nästa spel som vi höll på med och dels att vår programmerare inte kunde fortsätta med sitt arbete förrns vi var klara.

Lösningar:

Brist på grafiker
Vi insåg snart efter avhoppet att vi behövde en grafiker till. Vi såg oss om i de andra projektgrupperna för att se om det fanns någon som skulle kunna tänka sig att byta projekt. Ett till en början lite långsökt mål, men då vi hittade Linda Andersson ansåg vi att det förmodligen skulle bli bäst för både henne och oss om hon hoppade på vår grupp. Än bättre blev det av att hon är modellerare och således skulle kompetensfördelningen bli bättre i gruppen. Sagt och gjort, vi frågade henne och efter en kort tid bytte hon grupp. Väl var detta för utan henne hade vi aldrig kunnat producera ett såpass komplett spel som vi gjorde.

Exporteringar till XNA
Tekniska problem kallar på tekniska lösningar. Anledningen till varför Utomjordlingens ben vreds runt och betedde sig som hashrökande cirkusclowner var att mellan vissa frames i maya så vreds lederna inte åt rätt håll. Istället för att t. ex. vridas +90° så vreds de -270°. När man stegade mellan frames i Maya såg det fortfarande rätt ut, men i motorn och i Motionbuilder, där man såg så många bilder som datorn hann rendera, märkte man tydligt av dessa bakvända rotationer. Lösningen blev att först baka ut animationerna på samtliga leder i karaktären. Gjorde man detta kunde man tydligt se de uppkomna felen i graferna. Efter detta var det en enkel sak att applicera det s.k. Euler-filtret på kurvorna, vilket fixade till rotationerna i en enda knapptryckning. Exporteringen gick nu utmärkt och modellerna rörde sig normalt.
Problemet med skeva positioner kom sig av att fbx-filerna, som var vårt exporteringsformat, definierar en bindpose som animationer utgår ifrån. Denna bindpose kan inte manuellt specificeras någonstans. Idioti. I stället blir bindpose den position som modellen är i det ögonblick den exporteras. När jag inte tänkte på detta, utan bara exporterade modellen från en slumpmässg position blev rotationer och positioner på leder skeva och ur synk. Lösningen var helt enkelt att alltid se till att föremålet befann sig i bindpose när man tryckte på exporterings-knappen. Det gick till och med så långt att vi i varje fbx-fil hade en separat animation som bara befann sig i bindpose som man kunde ha aktiverad när man exporterade modellen.

Flaskhals för programmerare
Det här var ett problem som vi inte hittade en konkret lösning på. Allt eftersom vi arbetade lärde vi grafiker oss hur vi var tvungna att exportera saker, vilka värden som behövde specificeras och hur filer skulle placeras. Bland annat tenderade en del filer att få absoluta sökvägar istället för relativa. En enkel omplacering av de exporterade filerna löste detta.
Mot slutet av produktionen uppstod det nästan inga problem alls, utan arbetet flöt på lätt och smidigt. Det gick såpass bra att det var svårt att hitta relevanta problemställningar att ta upp i blogginläggen.
Allt som allt var projektet enligt mig väldigt lyckat. Vi producerade ett färdigt spel till en nöjd beställare. Den grafiska stilen blev väldigt konsekvent och genomgående och jag är nöjd med både min egen och min grafikerkollegas prestation. De resterande gruppmedlemmarna bidrog väl med sina delar och tillsammans lyckades vi åstadkomma det för mig mest lyckade projektet hittills på högskolan.

3 Responses to “Kompletterande post 2: Problem och lösningar”

  1. balmania Says:

    Vad har ni för planer framöver? ska ni arbeta på något nytt ihop? var museumet glada över vad de hade fått av er. Hur ser framtiden ut är väll det jag försöker fråga =)

    • skabben Says:

      Nu kommer jag och svarar här, men jag vet kanske inte riktigt. :P Hur som helst så tror jag inte det blir något mer med det förrän museet hojtar till eller vill något. Jag har iaf inte fått någon info om att det skulle bli någon fortsättning. Hur som helst så tror jag att det skulle bli svårt att få ihop alla och motivationen att fortsätta jobba med spelet igen.

  2. Tobias Möllstam Says:

    Euler — King of kings!

    Jag funderar lite över det här med flaskhalen. Jag undrar om man skulle kunna modda processen till en mer iterativ natur. Typ små jävla loopar där objekten i pipelinen studsar mellan områden lite mer än en linjär stafett. Nu låter det ju mycket abstrakt, men det hade varit intressant att se om det funkat. Man kanske skulle programmera en spelutvecklargrupp-AI som man kunde testa sånthär på, great success! \o/

    Det gick bra med att fånga upp Linda, då det kunde gått väldigt dåligt när vi förlorade 50% av våra grafiker. Undrar vilket antal grafiker som skulle vara optimalt i vårt team, eller snarare så skulle vi behöva typ en till proggare, en till ljude och kanske två till grafiker för att kunna hantera fyra designers i gruppen? Det gick ju ganska bra ändå, men nog mest för att Oscar och Tim hade mycket tid på sig att slänga på prototyper. : )


Lämna en kommentar

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Logga ut / Ändra )

Twitter-bild

You are commenting using your Twitter account. Logga ut / Ändra )

Facebook-foto

You are commenting using your Facebook account. Logga ut / Ändra )

Ansluter till %s

Follow

Get every new post delivered to your Inbox.