Formát souboru vstupní animace – MRTK2
Celková struktura
Vstupní binární soubor animace začíná 64bitovým celočíselným číslem. Hodnota tohoto čísla v šestnáctkovém zápisu je 0x6a8faf6e0f9e42c6
a dá se použít k identifikaci platných vstupních animačních souborů.
Dalších osm bajtů jsou dvě hodnoty Int32 deklarující číslo hlavní a podverze souboru.
Zbytek souboru je převzat daty animace, která se mohou měnit mezi čísly verzí.
Sekce | Typ |
---|---|
Kouzelné číslo | Int64 |
Číslo hlavní verze | Int32 |
Číslo podverze | Int32 |
Data animace | viz část verze. |
Verze 1.1
Vstupní animační data se skládají ze tří logických hodnot, které označují, jestli animace obsahuje data Kamera, Ruka a Pohled zrakem, následovaná posloupností animačních křivek. Přítomné křivky závisí na hodnotách těchto logických hodnot. Každá křivka může mít jiný počet klíčových snímků.
Sekce | Typ | Poznámky |
---|---|---|
Má pózu fotoaparátu | Logická hodnota | |
Obsahuje data rukou | Logická hodnota | |
Má pohled z očí | Logická hodnota | |
Camera | Křivky pozice | Pouze v případě, že má pózu z fotoaparátu pravdivou |
Ručně sledované doleva | Logická křivka | Pouze v případě, že má údaje o rukou hodnotu true |
Hand Tracked Right | Logická křivka | Pouze v případě, že má údaje o rukou hodnotu true |
Stažení rukou doleva | Logická křivka | Pouze v případě, že má údaje o rukou hodnotu true |
Stažení rukou doprava | Logická křivka | Pouze v případě, že má údaje o rukou hodnotu true |
Levé klouby rukou | Společné křivky pozice | Pouze v případě, že má údaje o rukou hodnotu true |
Pravé klouby | Společné křivky pozice | Pouze v případě, že má údaje o rukou hodnotu true |
Pohled na oči | Paprskové křivky] | Pouze v případě, že Má pohled na oči je pravdivý |
Verze 1.0
Vstupní animační data se skládají z posloupnosti animačních křivek. Počet a význam animačních křivek je pevný, ale každá křivka může mít jiný počet klíčových snímků.
Sekce | Typ |
---|---|
Camera | Křivky pozice |
Ručně sledované doleva | Logická křivka |
Hand Tracked Right | Logická křivka |
Stažení rukou doleva | Logická křivka |
Stažení rukou doprava | Logická křivka |
Levé klouby rukou | Společné křivky pozice |
Pravé klouby | Společné křivky pozice |
Společné křivky pozice
Pro každou ruku je uložena posloupnost společných animačních křivek. Počet spojů je pevný a pro každý spoj je uložena sada křivek pozice.
Sekce | Typ |
---|---|
Žádné | Křivky pozice |
Zápěstí | Křivky pozice |
Palm | Křivky pozice |
ThumbMetacarpalJoint | Křivky pozice |
ThumbProximalJoint | Křivky pozice |
ThumbDistalJoint | Křivky pozice |
Popis palce | Křivky pozice |
IndexMetacarpal | Křivky pozice |
IndexKnuckle | Křivky pozice |
IndexMiddleJoint | Křivky pozice |
IndexDistalJoint | Křivky pozice |
Tip indexu | Křivky pozice |
MiddleMetacarpal | Křivky pozice |
Střední kloub | Křivky pozice |
MiddleMiddleJoint | Křivky pozice |
MiddleDistalJoint | Křivky pozice |
Střední tip | Křivky pozice |
RingMetacarpal | Křivky pozice |
Prstencový kloub | Křivky pozice |
RingMiddleJoint | Křivky pozice |
RingDistalJoint | Křivky pozice |
Vyzváněcí tip | Křivky pozice |
PinkyMetacarpal | Křivky pozice |
PinkyKnuckle | Křivky pozice |
PinkyMiddleJoint | Křivky pozice |
PinkyDistalJoint | Křivky pozice |
PinkyTip | Křivky pozice |
Křivky pozice
Křivky pozice jsou posloupnosti 3 křivky animace pro vektor pozice, následované 4 animačními křivkami pro kvaternion otáčení.
Sekce | Typ |
---|---|
Pozice X | Plovoucí křivka |
Pozice Y | Plovoucí křivka |
Pozice Z | Plovoucí křivka |
Otočení X | Plovoucí křivka |
Otočení Y | Plovoucí křivka |
Otočení Z | Plovoucí křivka |
Otočení W | Plovoucí křivka |
Paprskové křivky
Paprskové křivky jsou posloupnosti 3 animačních křivek pro původní vektor, následované 3 animačními křivkami pro směrový vektor.
Sekce | Typ |
---|---|
Origin X | Plovoucí křivka |
Origin Y | Plovoucí křivka |
Původ Z | Plovoucí křivka |
Směr X | Plovoucí křivka |
Směr Y | Plovoucí křivka |
Směr Z | Plovoucí křivka |
Plováková křivka
Křivky s plovoucí desetinou čárkou jsou plnohodnotné Bézierovy křivky s proměnlivým počtem klíčových snímků. Každý klíčový snímek ukládá čas a hodnotu křivky a také tečny a váhy na levé a pravé straně každého klíčového snímku.
Sekce | Typ |
---|---|
Režim předběžného zabalení | Int32, Režim zabalení |
Režim následného zabalení | Int32, Režim zabalení |
Počet klíčových snímků | Int32 |
Klíčových snímků | Plovoucí klíčový snímek |
Plovoucí klíčový snímek
Plovoucí klíčový snímek ukládá hodnoty tangens a váhy spolu se základním časem a hodnotou.
Sekce | Typ |
---|---|
Čas | Plovoucí 32 |
Hodnota | Plovoucí 32 |
Intangentní | Plovoucí 32 |
Odsazení | Plovoucí 32 |
Váha | Plovoucí 32 |
Outweight | Plovoucí 32 |
Vážený režim | Int32, Vážený režim |
Logická křivka
Logické křivky jsou jednoduché posloupnosti hodnot zapnutí/vypnutí. Na každém klíčovém snímku se hodnota křivky okamžitě překlopí.
Sekce | Typ |
---|---|
Režim předběžného zabalení | Int32, Režim zabalení |
Režim následného zabalení | Int32, Režim zabalení |
Počet klíčových snímků | Int32 |
Klíčových snímků | Logický klíčový snímek |
Logický klíčový snímek
Logický klíčový snímek ukládá pouze čas a hodnotu.
Sekce | Typ |
---|---|
Čas | Plovoucí 32 |
Hodnota | Plovoucí 32 |
Režim obtékání
Sémantika režimů Před a Po zabalení se řídí definicí Unity WrapMode . Jedná se o kombinaci následujících bitů:
Hodnota | Význam |
---|---|
0 | Výchozí: Přečte výše nastavený výchozí režim opakování. |
1 | Jednou: Když čas dosáhne konce klipu animace, klip se automaticky přestane přehrávat a čas se obnoví na začátek klipu. |
2 | Smyčka: Když čas dosáhne konce animačního klipu, bude čas pokračovat na začátku. |
4 | PingPong: Když čas dosáhne konce animačního klipu, čas se vrátí zpět mezi začátkem a koncem. |
8 | ClampForever: Přehraje animaci. Když dosáhne konce, bude pokračovat v přehrávání posledního snímku a nikdy se nepřestane přehrávat. |
Vážený režim
Sémantika váženého režimu se řídí definicí Unity WeightedMode .
Hodnota | Význam |
---|---|
0 | Žádné: Při výpočtu segmentů křivky vylučte jak váhou, tak i váhou. |
1 | V: Při výpočtu předchozího segmentu křivky uveďte váhou. |
2 | Out (Out): Při výpočtu dalšího segmentu křivky uveďte odlehčení. |
3 | Obojí: Při výpočtu segmentů křivky zahrňte hodnoty váhou a odlehčení. |