整了一個晚上終于解決了動畫關鍵幀的讀取,主要問題是3ds max 不單只有旋轉/縮放/位置的動畫控制器,還有另外3個不常用的是不會導出的,而旋轉/縮放/位置的控制器,又包含了很多種,例如注視目標啊、音頻控制運動啊、路徑約束啊.....因此要自己規定一下導出規則,都使用默認的控制器。而縮放部分也暫時先忽略。
而物體的運動和系統里面的biped人體骨骼運動又有不同,biped骨骼的運動是強制采樣的(即每隔n幀采樣一次,記錄到xml中),而其它運動則是可以選擇按關鍵幀記錄,也可以采樣。為了支持強大的biped體形蒙皮運動,只好把這2種控制器方式都寫了。
四元數、矩陣、歐拉角的轉換、插值等知識,可以參考http://www.euclideanspace.com/maths/,我是直接把代碼搬下來了,感謝
導出暫時這么規定:
<導出設置中:>
選擇max坐標系
不選擇Save Mesh XML File
Controller Options:
選擇 Relative
不選擇 Force Sample
選擇 Export Quaternions
Modifiers:
選擇Skin
Normals:
選擇 Per Vertex
Geom Options:
選擇 Object Space
-------------------------------------------------
<3ds max中>:
關鍵幀位置要在開始和結束中
所有關鍵幀不能包含有縮放動畫
如果有蒙皮,只能有一個mesh導出
可以有多個bone導出
bone的根結點不能有位移動畫
物體暫時不能用多個貼圖channel,不能有多重材質
關鍵幀測試下載(關閉程序時,在命令行里面輸入“System.ShutDown”,按回車即可)
下一步應該弄蒙皮了,不過要把shader部分做好先
posted on 2010-01-10 23:29
陳昱(CY) 閱讀(1508)
評論(1) 編輯 收藏 引用 所屬分類:
游戲編程