Animacija kinematičkih struktura korištenjem BVH zapisa

  • Početna
  • Uvod
  • BVH format
  • Aplikacija
  • Rezultati
  • Literatura
  • Preuzimanje

SVEUČILIŠTE U ZAGREBU

FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA

DIPLOMSKI RAD br. 1724

ANIMACIJA KINEMATIČKIH STRUKTURA KORIŠTENJEM BVH ZAPISA

Goran Mržljak

Mentor: prof. dr. sc. Željka Mihajlović

Zagreb, svibanj 2008.

Uvod

Zadatak ovog diplomskog rada je prikaz animacija spremljenjih u BVH (Biovision Hierarchy) formatu. Takvi podaci dobivaju se metodom uzorkovanja pokreta (engl. motion capture).

Uzorkovanje pokreta

Uzorkovanje pokreta je metoda digitalnog snimanja pokreta. Počela se koristiti kao alat za biomehanička istraživanja 1970-ih i 1980-ih, a zatim se primjena proširila na obrazovanje, sport i treniranje, a kasnije i na računalne animacije u filmovima i igrama.

Snimanje se radi tako da se na snimanu osobu postave markeri uz one zglobove čije pokrete želimo zabilježiti. Ti markeri se prate i njihove se pozicije spremaju u memoriju, dok se sama vizualna pojava osobe ne može na ovaj način spremiti. Ovisno o opremi i potrebama, mogu se bilježiti i druge informacije, kao što su kutovi, brzine, akceleracije i impulsi sile, ili neka kombinacija toga. Nakon snimanja dobijemo animaciju zapisanu u nekom obliku. Animacija ima svoj broj okvira u sekundi (engl. frames per second, frame rate), a poželjno je da je brzina uzorkovanja sustava dvostruko veća od željenog broja okvira u sekundi (npr. za 30 okvira u sekundi trebamo sustav koji može uzorkovati pokrete 60 puta u sekundi).

Ako je potrebno, može se mijenjati položaj i orijentacija kamere (drugim riječima, perspektiva) i tu promjenu zabilježiti. Na taj se način kasnije mogu dodati računalno stvoreni objekti sa istom perspektivom kao i snimana osoba.

Primjena

  • Animacije - snimanje pokreta za izradu animacija u filmovima, računalnim igrama itd.
  • Analiza pokreta - u medicini za diagnostiku neuroloških i muskulo-skeletalnih problema, izradu programa rehabilitacije. Analiza pokreta koristi se i u sportu za evaluaciju pokreta sportaša i poboljšavanje njihove efikasnosti, sprečavanje ozljeda i kod tretmana ozlijeđenih sportaša.
  • Mjerenja i upravljanje - u kontroli robota i procesa, mjerenjima dinamičkih opterećenja na vozilima, zgradama, opremi i ljudima, dizajnu vozila i aviona itd.

Sustavi za snimanje

  • Optički
  • Inercijski
  • Mehanički
  • Magnetski
  • Akustični

BVH format

BVH jedan od formata u koje se mogu spremati podaci dobiveni uzorkovanjem pokreta. Postoje binarni i tekstualni formati - BVH je tekstualni format.

Ovo je jedan vrlo jednostavan primjer BVH datoteke:

HIERARCHY
ROOT korijen
{
  OFFSET 0.00 0.00 0.00
  CHANNELS 6 Xposition Yposition Zposition Zrotation Xrotation Yrotation
  JOINT zglob
  {
    OFFSET 0.00 5.45 0.00
    CHANNELS 3 Zrotation Xrotation Yrotation
    End Site
    {
      OFFSET 0.00 3.87 0.00
    }
  }
}

MOTION
Frames: 2
Frame Time: 0.033333
8.03 35.01 88.36 -3.41 14.78 -164.35 13.09 40.30 -24.60
7.81 35.10 86.47 -3.78 12.94 -166.97 12.64 42.57 -22.34

Opis formata

BVH je kratica za Biovision Hierarchical Data. Kao što mu ime kaže, razvila ga je tvrtka Biovision. Razvijen je kao zamjena za BVA format koji za razliku od BVH nije sadržavao informacije o hijerarhiji (kosturu) promatrane strukture, nego samo podatke o pokretima. BVH datoteka sastoji se od dva dijela. Prvi definira hijerarhiju u nekoj osnovnoj pozi, a drugi dio sadrži podatke o pokretima hijerarhije, tj. samu animaciju. Početak prvog dijela označen je ključnom riječi HIERARCHY, a drugog s MOTION.

ROOT, JOINT i End Site čvorovi i način na koji su ugniježđeni definiraju "roditelj-dijete" odnose u hijerarhiji, a brojevi uz ključnu riječ OFFSET definiraju veličinu segmenta hijerarhije (tj. "kosti u kosturu"). Sam čvor ne predstavlja segment, nego početak ili kraj segmenta. Npr. ROOT korijen predstavlja početak jednog segmenta, JOINT zglob predstavlja kraj tog segmenta, i taj kraj je od početka udaljen za vektor (0.00, 5.45, 0.00), tj. za 5.45 po globalnoj y-osi. Da ROOT korijen ima više ugniježđenih JOINT čvorova, svaki od tih JOINT čvorova predstavljao bi kraj jednog segmenta (kosti) i svaki od tih segmenata počinjao bi u ROOT korijen.
End Site čvor predstavlja kraj segmenta koji počinje sa JOINT zglob.

Svaka linija s brojevima u MOTION dijelu predstavlja translacije i rotacije segmenata u jednom okviru (engl. frame) animacije. CHANNELS djelovi definiraju kako se ti brojevi apliciraju na segmente. Linija
CHANNELS 6 Xposition Yposition Zposition Zrotation Xrotation Yrotation
u ROOT korijen kaže da će se prvih 6 brojeva u svakom okviru animacije aplicirati na segmente (tj. samo jedan segment u ovom primjeru) koji započinju u ROOT korijen čvoru. Prva 3 broja u ovom slučaju predstavljaju translaciju, a preostala 3 rotacije oko koordinatnih osi. Linija
CHANNELS 3 Zrotation Xrotation Yrotation
kaže da će se slijedeća 3 broja aplicirati na segmente (tj. samo jedan segment u ovom primjeru) koji započinju u JOINT zglob čvoru.
U konačnom izračunu transformacija segmenata uzima se u obzir ne samo transformacija tog segmenta već i svih segmenata roditelja. Npr. translacija i rotacija na korijenskom čvoru će translatirati/rotirati cijelu hijerarhiju, a ne samo segmente koji su direktno vezani na taj čvor. Dakle, u ovom primjeru, gdje imamo dva segmenta (ROOT - JOINT i JOINT - End Site), prvih 6 brojeva će zapravo u konačnici transformirati oba segmenta, a zatim će preostala 3 broja dodatno transformirati JOINT - End Site segment.

Aplikacija

Kratak opis mogućnosti BVH Viewer aplikacije i linkovi na biblioteke korištene pri izradi aplikacije.

Vanjske biblioteke

Za izradu BVH Viewer aplikacije korišteni su:

  • Ogre 3D grafički pogon (engl. engine) za prikaz grafike
  • CEGUI biblioteka za izradu korisničkog sučelja

Mogućnosti aplikacije

Učitavanje BVH datoteke

U glavnom izborniku odaberite "File->Open..."

Upravljanje animacijom

Koristite kontrole na dnu ekrana:

AnimationControls

Promjena izgleda segmenta

Za promjenu izgleda (modela) segmenta koristite "Mesh" podizbornik u glavnom izborniku.

Ovako izgledaju mogući modeli:

DoublePyramidSegment EllipsoidSegment

Upravljanje kamorom

Kamerom je moguće upravljati pomoću tipkovnice i miša. Kontrole se mogu naći u dijalog koji se otvara odabirom "Help->Controls" u glavnom izborniku:

ControlsDialog

Rezultati

Ovako izgleda BVH Viewer aplikacija.

Galerija

Video

Literatura

  1. Igor S. Pandžić: “Virtualna okruženja”, 1. izdanje, Element, Zagreb, 2004
  2. Siniša Srbljić: “Jezični procesori 2“, 2. Izdanje, Element, Zagreb, 2003
  3. Scott Bilas: “Game Programming Gems I“, članak “Automatic Singleton Utility“, Charles River Media, 2000
  4. Ogre Wiki, s Interneta, link veljača 2008
  5. CEGUI Wiki, s Interneta, link, veljača 2008
  6. Motion Analysis, s Interneta, link, veljača 2008
  7. Motion Analysis Studios, s Interneta, link, veljača 2008
  8. Wikipedia: Motion capture, s Interneta, link, veljača 2008
  9. Wikipedia: List of motion and gesture file formats, s Interneta, link, veljača 2008
  10. Wikipedia: Ogre engine, s Interneta, link, veljača 2008
  11. Wikipedia: CEGUI, s Interneta, link, veljača 2008
  12. Biovision BVH, s Interneta, link, veljača 2008
  13. Falagard skinning system for CEGUI: A tutorial and reference, s Interneta, link, veljača 2008
  14. LGPL, s Interneta, link, veljača 2008
  15. A Critical History of Computer Graphics and Animation, s Interneta, link, veljača 2008

Preuzimanje

Dokumenti

BVH Viewer aplikacija

Instrukcije za verziju s izvornim kodom

  1. Preuzmi zip datoteku sa izvornim kodom.
  2. Extraktiraj dobivenu zip datoteku u neki direktorij.
  3. Preuzmi vezane biblioteke i dodatne datoteke potrebne za komajliranje/izvršavanje verzije sa izvornim kodom.
  4. Extraktiraj dobivenu zip datoteku u neki direktorij.
  5. Direktorije i datoteke iz korijenskog direktorija dobivenog iz druge zip datoteke ("BVHViewerDependenciesEtc") kopiraj u korijenski direktorij dobiven iz prve zip datoteke ("BVHViewerSource"). Kod kopiranja potvrdite prepisivanje postojećih datoteka/direktorija.