4.關鍵幀塊
關鍵幀塊:
ID 描述
B00A unknown
7001 看該塊的第一個描述而定(譯者:完全不知道什麼用,從來沒在.3ds文件中見過這個塊)
B008 幀數量
B009 unknown
B002 開始對象描述
其中,B008幀數量塊:由8字節組成(unsigned long X 2),開始4個字節描述了開始幀,最後4個字節描述了結束幀。
B002物體信息塊:
ID 描述
B010 名稱與層次結構
B011* 啞元物體命名(譯者:也就是不在場景中顯示的對象,一般用來對對象分組)
B013 unknown
B014* unknown
B015 unknown
B020 物體轉軸(中心點)
B021 unknown
B022 unknown
B010名稱與層次結構塊:
該塊由一個以0結尾的字符串開始,中間4個字節(unsigned short X 2)未知,最後2個字節(unsigned short)表示了物體層次結構。物體的層次結構並不複雜,場景中的沒一個物體被給予一個數字以表示其在場景樹中的順序。3ds文件中也使用了這種方法來表示在場景中出現的對象在場景樹中的位置。作爲根的物體被給予數字-1(FFFF)作爲其數字標識。當讀取文件的時候,就會得到一系列的物體數字標識。如果當前數字標識比前一個大,那麼當前物體是前一個物體的子物體;如果當前數字標識比前一個小,那麼又回到了上層結構。例如:
物體名稱 層次結構
A -1
B 0 這個例子來自
C 1 50pman.3ds
D 2
E 1
F 4
G 5
H 1
I 7
J 8
K 0
L 10
M 11
N 0
O 13
P 14
即:
A
+-----------------+----------------+
B K N
+----+----+ | |
C E H L O
| | | | |
D F I M P
| |
G J
然而該塊並沒有結束!
如果一個物體被叫做:$$$DUMMY的話,他就是一個啞元物體!因此你就需要一些額外的數據塊了。
B011:啞元物體名稱,一個以0結尾的字符串。
B020:物體轉軸,仍然不知道前5個浮點數是做什麼用的。
開始 結束 大小 類型 描述
0 3 4 float unknown
4 7 4 float unknown
8 11 4 float unknown
12 16 4 float unknown
16 19 4 float unknown
20 23 4 float unknown
24 27 4 float 轉軸Y
28 32 4 float 轉軸X
代碼佔時不貼出來,等我寫好demo測試了再貼吧,感覺這個3ds文件挺麻煩的,數據太多了。。。。。嗚嗚,頭大厄!