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:

Promjena izgleda segmenta
Za promjenu izgleda (modela) segmenta koristite "Mesh" podizbornik u glavnom izborniku.
Ovako izgledaju mogući modeli:
![]() |
![]() |
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:

Literatura
- Igor S. Pandžić: “Virtualna okruženja”, 1. izdanje, Element, Zagreb, 2004
- Siniša Srbljić: “Jezični procesori 2“, 2. Izdanje, Element, Zagreb, 2003
- Scott Bilas: “Game Programming Gems I“, članak “Automatic Singleton Utility“, Charles River Media, 2000
- Ogre Wiki, s Interneta, link veljača 2008
- CEGUI Wiki, s Interneta, link, veljača 2008
- Motion Analysis, s Interneta, link, veljača 2008
- Motion Analysis Studios, s Interneta, link, veljača 2008
- Wikipedia: Motion capture, s Interneta, link, veljača 2008
- Wikipedia: List of motion and gesture file formats, s Interneta, link, veljača 2008
- Wikipedia: Ogre engine, s Interneta, link, veljača 2008
- Wikipedia: CEGUI, s Interneta, link, veljača 2008
- Biovision BVH, s Interneta, link, veljača 2008
- Falagard skinning system for CEGUI: A tutorial and reference, s Interneta, link, veljača 2008
- LGPL, s Interneta, link, veljača 2008
- A Critical History of Computer Graphics and Animation, s Interneta, link, veljača 2008
Preuzimanje
Dokumenti
BVH Viewer aplikacija
- Binarne datoteke - exe i dll datoteke BVH Viewer aplikacije
- Izvorni kod
- Vezane biblioteke - biblioteke i dodatne datoteke potrebne za kompajliranje i izvršavanje verzije sa izvornim kodom
Instrukcije za verziju s izvornim kodom
- Preuzmi zip datoteku sa izvornim kodom.
- Extraktiraj dobivenu zip datoteku u neki direktorij.
- Preuzmi vezane biblioteke i dodatne datoteke potrebne za komajliranje/izvršavanje verzije sa izvornim kodom.
- Extraktiraj dobivenu zip datoteku u neki direktorij.
- 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.