http://www.cnblogs.com/crazylights/p/4312211.html
CleanData是什么
CleanData以前沒有特定的名字,(在easydown這個開源項目中,作為一個GameObjParser模塊存在)。
在某三國項目中,我們使用GameObjParser將NGUI 的預設保存為自定義格式(替代了assetbundle方案),以實現不論任何平台都可以使用同一份資源。
在easydown的演示中GameObjParser也將一個簡單的模型場景保存為自定義格式並加載。
so.CleanData是想去做AssetBundle的工作,但是格式是我們自定義的,細節更透明。這些信息,甚至可以用到別的引擎里。
假如有一天我們要離開U3D的話。
CleanData.Ani 是CleanData中針對骨骼動畫的部分
以一個角色為例,CleanData.Ani有一些輯器腳本,導入CleanData之后。在Animator組件上就會出現一些工具
"Create FBAniclip" 會把Animator的 controller中配置的動畫(.anim)存為(".fbani.asset")。
這已經是一種自定義的動畫格式
它使用一個新的組件來控制動畫播放,這個組件支持在editor模式中直接預覽動畫。
此處的這個".fbani.asset"還是屬於unity的 asset格式,只能用於在unity編輯器中操作,和使用ab打包。
這里還沒展現出我們自己寫一套動畫數據,自己寫一個動畫播放組件的意義所在。
不過你如果比較一下播放性能,你會發現,我們自己寫的動畫播放組件居然比原生的快。
(除了我們做的事情可能更少以外,這也說明unity原生動畫性能還有很大的提升空間,坐等官方優化)。
然后關鍵的部分來了,unity的.anim 你沒有辦法運行時加載,所以你也不能運行時下載一個骨骼動畫,給角色加上去。
但是fbani可以,注意那個"export bin",這會把當前動畫保存為".fbani.bytes"文件,放在streamingassets目錄下。
然后就可以實現運行時載入骨骼動畫了
另外,還有個數字你可能也有興趣關注一下
我們自定義格式存儲動畫的容量只有.anim文件的十分之一左右。
配合CleanData,已經可以實現整個角色模型和動畫一起保存為自定義格式並還原,你是不是開始腦洞大開了呢?
ByTheWay,如果連Anim文件也不從Max里來,行不行呢,也是可能的。
Skele.UserEcho.com
提供了一個插件。可以在untiyeditor里直接修改角色動畫,並保存.anim文件。
這個扭曲的動畫是我用他的插件扭的,我也實在沒有扭動作的天賦和耐心
我們可以使用他,或者對他進行改造,直接編輯.fbani 文件,跳過.anim都是可行的。
這將是一個願景型的工作,FB引擎希望有一天可以做到MUGEN那個程度,角色,招數隨便編輯。
到那一天,脫離MAX直接來修改動畫,就會變得有用了。