3D Visualisering av menneskelige bevegelser ved bruk av Java og Coin3D. En presentasjon av: Øivind Hoff Johansen og Jon Kåre Sørensen LocMoC Low Cost Motion Capture. Avatar ( definisjon fra Store Norske Leksikon ) avatar IT, representasjon, legemliggjørelse; symbol eller bilde som brukes (f.eks. i chatteprogrammer på Internett eller i virtual reality) til å representere en person. 1
Vizlabben ved AiTeL Jobber med å utvikle et system for lavkostnads bevegelsesgjengivelse i 3D, basert på synkrone videoopptak. Kontaktpersoner Tomas Holt Veileder Peder Blekken (Kongsberg SIM) Ekstern Veileder Bakgrunn Bk for oppgaven Vizlabben trenger en ny modul for grafisk visning av 3D koordinater som styrer bevegelsene til en avatar, dette skal skje fra fil eller via en datastrøm. Denne modulen skal benytte seg av hierarkisk oppbygning av avataren, d.v.s. at hvert ledd arver egenskaper fra sin foreldre foreldre. For å gjøre modulen så fleksibel som mulig skal Avataren bruke vektorer for å bestemme bevegelsene i stedet for å bruke romkoordinatene direkte. 2
Vi valgte denne oppgaven, fordi vi hadde lyst til å videreføre høstprosjektet. Temaet 3D er noe vi begge har interesse for, og denne oppgaven virket som en god mulighet til å få praktisk erfaring med bruk av 3D teknologi. Teknologier vi brukte Coin 3D Grafikk API utviklet av Kongsberg SIM. Basert på OpenInventor som igjen benytter seg av OpenGL Brukes til å bygge opp Avataren og tegne den i et 3D miljø. Vi valgte å bruke Jivy som er et Java grensesnitt til Coin3D. Lar oss bruke Coin API-et selv om vi jobber i Java. Utviklet av studenter her på HiST. 3
Java Objektorientert programmeringsspråk g p Det språket gruppas medlemmer har mest er erfaring med. Substance Java Bibliotek for å endre på standard GUI utseende. Qualisys Motion Capture System Kamerautstyr og markører. ( Infrarød ) Software for tolkning, forbedring og redigering av data. Gjennomføring Vi benyttet oss av erfaringene som ble gjort av fjorårets prosjektgruppe. Dette ga oss tidlig en oversikt over problemområdet. Programmet tolker data fra en fil med 3d-koordinater, eller fra en datastrøm, og bruker det til å lage en rekke vinkler som tilegnes de forskjellige delene av figuren. Dette skjer for hver bildeoppdatering av animasjonen. 4
Avataren er bygd opp av mange mindre deler som mottar koordinater fra 2-3 markører som brukes til å lage vinkelen som bestemmer rotasjonen til delen. Oppbygginga og sammenhengen mellom disse delene blir bestemt i ei xml-fil som også definere hierarkiet til delene. Underarm Overarm 5
Modulen består av 3 uavhengige applikasjoner NodeStrukturBygger (NSB) En enkel applikasjon for å lage egne nodestrukturer som kan brukes av FilFremviseren og Navn 3 Her kan man også koble avatar-delene sammen med de markørene og 3d-modell filene som hører sammen. Modulen består av 3 uavhengige applikasjoner FilFremviser ( FiF ) Spiller av filer som inneholder 3d koordinater, og gjengir disse i form av en avatar av ønsket utseende og oppbygging. Av funksjonalitet tilbyr fremviseren skalering av modellene. 6
Modulen består av 3 uavhengige applikasjoner DatastrømFremviser ( DsF ) Har tilsvarende funksjonalitet som FiF, men får koordinatene fra en gitt datastrøm. Automatisere nodestrukturbyggeren i større grad Gjøre prosessen med å lage egne avatarer mer brukervennlig. Per dags dato skjer dette ved at brukeren selv må lage fila som inneholder translasjonene som bestemmer posisjonen til de individuelle delene av avataren. Plassering av delene til avataren bør skje via et GUI eller være automatisert. Muligheten til å ta inn en hel avatar, i stedet for i deler. Grunnet nevnt ustabilitet kan en mulig løsning være å skrive det hele i C++ / C #. 7
8