MoCap plugin

Realizační tým: Pavel Sedlák, Kryštof Valenta

Zadání projektu – plugin MoCap

  • Nečíslovaný seznamProstudujte způsob digitálního záznamu pohybů - Motion Capturing.
  • Popište postup při zpracování dat v Motion Builderu.
  • Navrhněte plugin pro aplikaci autodesk Motion Builder, který z velké části zautomatizuje čištění MoCap dat přenášených z aplikace Vicon IQ prostřednictvím formátu C3D.
    • Vstupem bude import animovaných transformací markerů (reflexních značek), které budou odpovídat předem stanovené jmenné konvenci. Jmenná konvence by měla být konfigurovatelná.
    • Výstupem bude korektně přiřazený objekt Actor, na který jsou v čase přenášeny transformace z markerů.
  • Předmětem zautomatizování by mohlo být
    • proces přiřazení pojmenovaných markerů  k Actorovi
    • zautomatizování natáčení vložených markerů do správné pozice
    • automatické generování rigidních těles podle jmené konvence markerů (např. hlava_1, hlava_2, hlava_3 mohou být rigidní těleso hlava)

Plán realizace

  • Nastudování způsobu digitálního záznamu pohybů – Motion Capturing z dostupných zdrojů.
  • Zpracování dat v Motion Builderu
  • Načtení ukázkových dat (Trial008.c3d) s nasnímanými a čistými daty z Vicon iQ
  • Zpracování dat (podle pipeline.pdf)
  • Dokumentace postupu
  • Návrh funkčnosti pluginu – co bude předmětem zautomatizování
  • Vývoj pluginu
  • Tvorba dokumentace

Zdroje informací

PIPELINE PDF

Dokument piperine.pdf obsahuje kompetní postup, jak nasnímat mocap data (postavu) se systémem v IIM až po dostání dat do 3DS Maxe. Je důležité aby jste alespoň orientačně znali proces, který je i před prací s Motion Builderem.

HELP Motion builder

Další velmi užitečnou literaturou pro vás bude nápověda Motion Builderu (V motion builderu v menu Help → Motion Builder help), kde doporučuji pročíst si stromy:

  • Animating Characters → Actor assets
  • Animating Characters → Actor assets → Marker sets
  • Animating Characters → Actor assets → Optical Motion data
  • MotionBuilder Tutorials → 3DS Max-MotionBuilder Interoperability

Python

Další pro vás asi důležitou literaturou bude dokumentace k sdk přes Python. V motion builder v menu Help → Python Scripting Help Pokud by jste se rozhodli, že python není ideální jazyk, můžete pagin klidně udělat v C++ pomocí Open Reality SDK. Dokumentace je opět v menu Help. ==== Aplikace motion builder ====

Tak a ještě kde vůbec můžete stáhnout Motion Builder a případně i 3DS Max, který vám bude v mnohém užitečný. Nejlepší bude, když se zaregistrujete se školním emailem na:

http://students.autodesk.com/

Kde si pak poslední verzi Motion Builderu můžete stáhnout a nainstalovat s licencí pro nekomerční použití na 3 roky.

Nejprve bude třeba prostudovat možnosti Python editoru v Motion builderu. Lépe řečeno půjde o to zjistit, ke všemu budeme mít přístup přes funkce tohoto programovacího jazyka a s čím vším budeme schopni ve scéně manipulovat. Prvním verze pluginu pouze načte prvotní testovací data od Michala a natvrdo podle mapy přiřadí jednotlivé markery částem actora. Takovéto přiřazení však způsobí oddělování částí těla actora a trhané pohybz, neboť se actor s optickými daty vhodně nespojí. Bude tedy potřeba před spojením ještě actora vhodně posunout a nastavit jednotlivé končetiny tak, aby pokud možno splýval s T-pozicí na počátku MOCAP dat.

Prezentace výsledků

Nejrve jsme se věnovali zkoumání prostředí Motion Builderu a ručnímu zpracování dat. Pak přišel na řadu postupný vývoj pluginu resp. Python skriptu.

Načtení MOCAP dat a vytvoření actora

Od Michala Červenky jsme dostali vzčištěná data, stačí je tedy nahrád do motion builderu, v tomto případě jako optická data. Dalším krokem je vložení actora.

Spojení s actorem

Jednotlivé prvky optických dat, tzv. Markery je třeba přiřadit jednotlivým částem actora.

Spojení s modelem

Před exportováním animace z MOCAP je třeba ještě přiřadit grafický model s kostrou, který se bude podle animačních dat pohybovat.

Jednoduchá verze pluginu

Jde o neobecnou verzi. Je šitá na míru jedněm konkrétním datům. Mapa markerů bude někdy v budoucnu v XML souboru vedle, aby šla lehce měnit podle potřeby. Dále bude potřeba zobecnit posuny a rotace actora ve scéně, aby lépe seděla na MOCAP data.

Zdrojový kód: marker.zip

Plugin v 3.0

Podařilo se nám sehnat nějaká další testovací data od Michala. Na internetu jdou C3D MOCAP data sehnat také. Například na serveru http://mocapdata.com/ kde po registraci lze s určitou licencí stahnout s denním limitem kvalitní data. Kvalitní jsou proto, že obsahují větší množství markerů, což je pro zpětnou iterpretaci pohybu osoby velmi žádoucí.

Měli bychom podotknout, že nejde vesměs o plugin, ale spíše o skript. Python je skriptovací jazyk.

Tato nová verze uchovává mapu přiřazení markerů v externím XML souboru, který je skriptem načten. Dále pak lépe vkládá actora do scény a umožní uživateli manuální korekci před finálním spojením marker-setu s actorem. Po importování dat do scény je nutné posunout animaci markerů do času, kdy je snímaná osoba v základní-T pozici. Archiv s novou verzí obsahuje jak samotný skript, tak potřebný modul pro načtení XML souboru. V neposlední řadě je přiložen návod k použití. Dále jsou další obrázky zachycující použití skriptu, ale jelikož vypadají podobně jako ty předešlé, dovolili jsme si nahrát také video.

Archiv obsahuje také C3D MOCAP data použité ve videu. Na ně je také nastavena mapa přiřazení v souboru „map.xml“

Popis skriptu po krocich

  1. Načtení „map.xml“ souboru
  2. Kontrola jestli je vybrán kořen optických dat. Pokud není, nebo je vybráno něco jiného než má být, uvědomím uživatele pomocí message boxu.
  3. Kontrola jestli ve scéně je Actor nebo ne
  4. Pokud není žádný Actor ve scéně, podívám se do optických dat a přes mapu přiřazení ze souboru „map.xml“ sestavím geometrických střed všech markerů přiřazených do FBSkeletonNodeId.kFBSkeletonHipsIndex = pánevní oblast, která odpovída kořeni Actora. Do toho místa pak umístím noveho Actora. Uvědomím uživatele, že byl vložen nový Actor a skript ukončím.
  5. Pokud už ve scéně je Actor, sestavím z markerů přes mapu nový marker-set a ten přiřadím Actorovi.
  6. Provedu přepočítání pozic markerů = „Snap“
  7. Ukončím skript

Zdrojový kód: mocaptoactor.zip

Video: http://www.youtube.com/watch?v=ObR62JbQ_rI

Seznam zdrojů

Webové portály:

Knihy:

Midori Kitagawa, Brian Windsor: MoCap for Artists: Workflow and Techniques for Motion Capture, ISBN-13: 978-0-240-81000-3

Jedna bakalářská práce vhodně popisující problematicu MOCAP: pospiji9_2010bach.pdf

Zdrojový kód pluginu atd.:

Plugin verze 1.0:marker.zip

Plugin verze 3.0:mocaptoactor.zip

Testovací data:trial008.zip - prvotní od Michala

 
a4m39mma/11.txt · Poslední úprava: 2010/12/11 12:20 (upraveno mimo DokuWiki)
 
Kromě míst, kde je explicitně uvedeno jinak, je obsah této wiki licencován pod následující licencí: GNU Free Documentation License 1.3
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki