Giriş animasyon dosyası biçimi

Genel yapı

Giriş animasyonu ikili dosyası, 64 bitlik bir tamsayı sihirli numarasıyla başlar. Bu sayının onaltılık gösterimde değeri, 0x6a8faf6e0f9e42c6 geçerli giriş animasyon dosyalarını belirlemek için kullanılabilir.

Sonraki sekiz bayt, dosyanın büyük ve küçük sürüm numarasını bildiren iki Int32 değeri.

Dosyanın geri kalanı animasyon verileri tarafından alınır ve bu, sürüm numaraları arasında değişebilir.

Section Tür
Sihirli sayı Int64
Ana sürüm numarası Int32
İkincil sürüm numarası Int32
Animasyon verileri bkz. sürüm bölümü

Sürüm 1,1

Giriş animasyon verileri, animasyonun kamera, el ve gözle veri içerip içermediğini belirten üç Boolean değerden oluşur ve ardından bir animasyon eğrileri sırası izler. Var olan eğriler bu Boole değerlerinin değerlerine göre değişir. Her eğri farklı sayıda ana kareye sahip olabilir.

Section Tür Notlar
Kamera poz içeriyor Boole
BT verileri mevcut Boole
Göz Yorutu Boole
Kamera Poz eğrileri Yalnızca kamera poz değeri true ise
Sol Izlenen Boole eğrisi Yalnızca, el verisi geçerliyse
Sağ Izlenen Boole eğrisi Yalnızca, el verisi geçerliyse
Sol tarafta Boole eğrisi Yalnızca, el verisi geçerliyse
Sağ taraftaki Boole eğrisi Yalnızca, el verisi geçerliyse
Sol taraftaki Birleşik poz eğrileri Yalnızca, el verisi geçerliyse
Sağ taraftaki Birleşik poz eğrileri Yalnızca, el verisi geçerliyse
Göz yorutu Işın eğrileri] Yalnızca göz Kagaze doğruysa

Sürüm 1,0

Giriş animasyon verileri bir animasyon eğrileri sırasından oluşur. Animasyon eğrilerinin sayısı ve anlamı sabittir, ancak her bir eğrinin farklı sayıda ana karesi olabilir.

Section Tür
Kamera Poz eğrileri
Sol Izlenen Boole eğrisi
Sağ Izlenen Boole eğrisi
Sol tarafta Boole eğrisi
Sağ taraftaki Boole eğrisi
Sol taraftaki Birleşik poz eğrileri
Sağ taraftaki Birleşik poz eğrileri

Birleşik poz eğrileri

Her el için bir dizi Birleşik animasyon eğrileri depolanır. Birleşme sayısı sabittir ve her bir ek için bir poz eğrileri kümesi depolandı.

Section Tür
Hiçbiri Poz eğrileri
Bilek Poz eğrileri
Palm Poz eğrileri
Parmak Metacarpaljoint Poz eğrileri
ThumbProximalJoint Poz eğrileri
Parmak Distaljoint Poz eğrileri
Parmak Ipucu Poz eğrileri
Indexmetacarpal Poz eğrileri
Indexknucun Poz eğrileri
IndexMiddleJoint Poz eğrileri
IndexDistalJoint Poz Eğrileri
IndexTip Poz Eğrileri
MiddleMetacarpal Poz Eğrileri
MiddleKnuckle Poz Eğrileri
MiddleMijoint Poz Eğrileri
MiddleDistalJoint Poz Eğrileri
MiddleTip Poz Eğrileri
RingMetacarpal Poz Eğrileri
RingKnuckle Poz Eğrileri
RingMijoint Poz Eğrileri
RingDistalJoint Poz Eğrileri
RingTip Poz Eğrileri
PinkyMetacarpal Poz Eğrileri
PinkyKnuckle Poz Eğrileri
PinkyMijoint Poz Eğrileri
PinkyDistalJoint Poz Eğrileri
PinkyTip Poz Eğrileri

Poz eğrileri

Poz eğrileri, konum vektörü için 3 animasyon eğrisi dizisi ve ardından döndürme quaternion için 4 animasyon eğrisi.

Section Tür
Konum X Float Eğrisi
Konum Y Float Eğrisi
Konum Z Float Eğrisi
Döndürme X Float Eğrisi
Döndürme Y Float Eğrisi
Rotasyon Z Float Eğrisi
Döndürme W Float Eğrisi

Ray eğrileri

Ray eğrileri, başlangıç vektörü için 3 animasyon eğrisi dizisi ve ardından yön vektörü için 3 animasyon eğrisi dizisidir.

Section Tür
Kaynak X Float Eğrisi
Kaynak Y Float Eğrisi
Kaynak Z Float Eğrisi
Yön X Float Eğrisi
Yön Y Float Eğrisi
Yön Z Float Eğrisi

Kayan eğri

Kayan nokta eğrileri, değişken sayıda ana kareye sahip tam olarak yeni Bézier eğrileridir. Her ana kare bir saat ve eğri değerinin yanı sıra her anahtar çerçevenin sol ve sağ tarafında tanjgent'ları ve ağırlıkları depolar.

Section Tür
Sarmalayıcı Öncesi Modu Int32, Sarmala Modu
Sarmala Sonrası Modu Int32, Sarmala Modu
Ana kare sayısı Int32
Ana kareler Kayan Ana Kare

Kayan ana kare

Kayan ana kare, temel zaman ve değerle birlikte tanjgent ve ağırlık değerlerini depolar.

Section Tür
Saat Float32
Değer Float32
InTangent Float32
OutTangent Float32
InWeight Float32
OutWeight Float32
WeightedMode Int32, Ağırlıklı Mod

Boole eğrisi

Boole eğrileri, açık/kapalı değerlerin basit dizileridir. Her ana karede eğrinin değeri hemen çevirir.

Section Tür
Sarmalayıcı Öncesi Modu Int32, Sarmala Modu
Sarmala Sonrası Modu Int32, Sarmala Modu
Ana kare sayısı Int32
Ana kareler Boole Anahtar Çerçevesi

Boole anahtar çerçevesi

Boole anahtar çerçevesi yalnızca bir zamanı ve değeri depolar.

Section Tür
Saat Float32
Değer Float32

Sarmala modu

Ön ve Son Sarmalama modlarının semantiği Unity WrapMode tanımını takip eder. Bunlar aşağıdaki bitlerin bir birleşimidir:

Değer Anlamı
0 Varsayılan: Daha yüksek ayarlanmış varsayılan yineleme modunu okur.
1 Bir kez: Zaman animasyon klibinin sonuna ulaştığında, klibin çalması otomatik olarak durur ve zaman klibin başına sıfırlanır.
2 Döngü: Zaman animasyon klibinin sonuna ulaştığında, süre başlangıçta devam eder.
4 PingPong: Zaman animasyon klibinin sonuna ulaştığında, başlangıç ile bitiş arasında zaman ping atılır.
8 AnimationForever: Animasyonu oynat. Sona erer, son kareyi oynatır ve hiçbir zaman durdurmaz.

Ağırlıklı mod

Ağırlıklı modun semantiği Unity WeightedMode tanımını takip eder.

Değer Anlamı
0 Hiçbiri: Eğri segmentleri hesaplanırken hem inWeight hem de outWeight dışlama.
1 In: Önceki eğri segmentini hesaplarken inWeight dahil.
2 Out: Sonraki eğri segmentini hesaplarken outWeight'i dahil etmek.
3 Her ikisi: Eğri segmentlerini hesaplarken inWeight ve outWeight dahil edin.