Filledukkefysikk

Filledukkefysikk (engelsk Ragdoll Physics) er prosedyrisk animasjon som lar fysikken i større grad kontrollere karakteren heller enn spilleren. Denne fysikken blir for eksempel ofte brukt når spilleren er i luften, har falt, eller har blitt paralysert.

Introduksjon
I tidlige videospill ble det brukt animasjoner laget manuelt for figurenes dødssekvenser. Fordelen var at dette brukte lite CPU-kraft, siden alt som måtte gjøres var å animere en «døende» figur ble valgt fra et satt nummer av tidligere tegnede animasjoner.

Stadig kraftigere datamaskiner gjorde begrensede fysikksimuleringer mulige i sanntid. En filledukke er derfor en samling av flere stive legemer. Disse er igjen vanligvis knyttet til et bein i grafikkmotorens skjelettanimasjonssystem. Legemene er bundet til restriksjoner som begrenser hvordan beina kan bevege seg i forhold til hverandre. Disse begrensningene blir brukt når figuren dør, og bestemmer bevegelsen til leddene for figuren, noe som oftest ser mer realistisk ut.

På grunn av begrensninger i programvaren vil leddene til figurene ha liten eller ingen ledd/skjelettmuskulatursstivhet. Dette fører til at figuren faller på samme måte som en lekedukke eller filledukke, og ender ofte i usannsynlige posisjoner. Herfra kommer begrepet.

Det første spillet som brukte filledukkefysikk var det Jurassic Park-lisensierte spillet Jurassic Park: Trespasser. Spillet fikk sprikende kritikker, de fleste negative. Det inneholdt et stort antall «bugs», men ble husket som en pionér i fysikkmotorer for videospill.

Bruk av filledukkefysikk i dag strekker seg utover dødssekvenser — det finnes slåssespill der spilleren kontrollerer en del av kroppen av figuren og resten følger etter, som Rag Doll Kung Fu, og til og med racingspill som FlatOut-serien.

Metoder
Filledukker har blitt implementert ved hjelp av Featherstones algoritme og fjærdemper-kontakter. En alternativ metode benytter seg av restriksjonsløser og idealiserte kontakter.
Selv om begrenset-stiv-kropp-metoden for filledukker er mest vanlig, finnes det andre «pseudo-filledukke»-teknikker i bruk.

 Verlet integration: brukt av Hitman: Codename 47 og gjort populær av Thomas Jakobsen . Denne teknikken modellerer hvert av beina til figuren som et punkt koblet til et vilkårlig antall andre punkter via enkle begrensninger. Verlet-begrensninger er mye enklere og raskere å beregne enn de fleste av de andre fullt modellerte rigide kroppssystemene, som fører til mye mindre bruk av CPU for figurene.
 Inverse kinematics etterbehandling: brukt i Halo. Denne teknikken er avhengig av å spille av en forhåndssinnstilt dødsanimasjon og så bruke omvendt kinematikk for å tvinge figuren inn i en mulig posisjon etter at animasjonen er avspilt. Dette betyr at en figur kan ende opp med å klippe gjennom verdenen under en animasjon, men etter at animasjonen er avsluttet vil alle bein være på et gyldig sted.
 Blended ragdoll: Denne teknikken (brukt i Halo 2) fungerer ved å spille av en forhåndslaget animasjon, men begrenser animasjonen til det et fysisk system vil tillate. Dette letter på den slarkete filledukke-følelsen, men tilbyr korrekt interaksjon med omgivelsene. Dette krever både animasjonsprosessering og fysikkprosessering, noe som gjør den enda tregere enn kun tradisjonell filledukketeknikk, men dette blir overskygget av den ekstra realismen dette tilbyr.

Fordeler / ulemper 
Siden utføringen av simuleringer er krever mye av en CPU, benytter de fleste spill seg av tilnærmede filledukker for sine figurer.
 Bein i ekstremitetene, som fingre, blir som oftest ikke simulert.
 Enkle ledd blir brukt i stedet for ekte begrensninger som blir gitt av et ekte skjelett. For eksempel, blir et menneskelig kneledd ofte modellert som et stivt hengsel, selv om et ekte kne vil tillate noe rotasjon.
 Forenklede kollisjonshylster er brukt for å oppdage kontakt med andre rigide kropper, i stedet for å oppdage kollisjoner med rutenettet.

Hovedfordelen med filledokker over tradisjonell animasjon er at de åpner for mye mer korrekt samhandling med omgivelsene. Der det ville ha vært uoverkommelig tidskrevende å prøve å håndlage egendefinerte animasjoner for alle mulige omstendigheter, genererer filledukker en akseptabel tolkning av hendelser på direkten.

Se også
 Spillfysikk
 Fysikkmotor
 Prosedyrisk animasjon
 Featherstones algoritme

Referanser

Eksterne lenker
 Trespasser postmortem i Game Developer
 GDC 2001 Proceedings Archive Arkivert versjon av Advanced Character Physics

Eksempler
 Rag Doll Kung Fu
 Ragdoll Masters, et slåssespill med filledukker
 Skistuntsimulator (java)
 Falling woman (flash)
 Thomas Jakobsen's artikkel om integreringen av Verlet Physics
 Stair Dismount og Truck Dismount
 Mona the Ragdoll (krever flashplayer 9) laget med The FisixEngine (en AS3 fysikkmotor for flash)
 Sumotori Dreams
 Toribash
 
 TrueBones.Com Filledukkeeksempel

Videospillterminologi
Datagrafikk