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 sanntids fysikksimuleringer mulige. En filledukke er derfor en samling av flere stive legemer. Disse er igjen vanligvis knyttet til et bein i grafikkmotorens skjelettanimasjonssystem. Legemene er forbundet 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, noe som fører til en figur med en hofte som faller på samme måte som en  lekedukke eller filledukke, og ender ofte i usannsynlige posisjoner. Herfra kommer begrepet.
Det første spillet som gjorde seg bruk av filledukkefysikk var det Jurassic Park lisensierte spillet Jurassic Park: Trespasser, som fikk sprikende kritiker; de fleste negative. Spillet inneholdt et stort antall "bugs", men ble husket som en pioneer 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 [1], modellerer denne teknikken hvert av beina til figuren som et punkt koblet til et vilkårlig antall andre punkter via enkle begrensninger. Verletbegrensninger er mye enklere og raskere å beregne enn de fleste av de andre fullt modellerte rigide kroppssystemene, noe som fører til mye mindre bruk av CPU for figurene.
Inverse kinematics etterbehandling: brukt i Halo. Denne teknikkene er avhengig av å spille av en forhåndssinnstilt dødsanimasjon og siden 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øre simuleringer er dyrt CPU-messig, benytter de fleste spill seg av tilnærmelsesvise filledukker for sine figurer.

Bein i ekstremitetene, som fingre, blir som oftest ikke simulert.
Enkle ledd blir brukt i sted 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 omstendiger, overtar filledukker og genererer 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
[2]
TrueBones.Com Filledukkeeksempel