開發中經常需要,對美術模型進行一些處理。(以fbx為例)
例如,需要把動作的名字、start和end加入animations的clips。
如果手動操作,就是在模型的inspector視窗,乙個動作點一次加號,然後編輯start和end。乙個模型往往十幾個動作,這樣做很明顯浪費人力。
因此需要乙個可以自動匯入幀數表的工具,工具應該具備一下功能。
1、根據配置(txt或者json)自動設定模型引數
配置的格式根據使用習慣,txt、json都可以,這裡使用txt。用file.readalllines(「路徑」),可以獲取配置的每一行資訊,只要按照規定方式填寫,就可以解析出我們想要的引數。
例如 動作名+製表符+start+製表符+end。
2、每次匯入模型時,自動生效
繼承了assetpostprocessor,並且放到editor目錄下,每次資源發生改變時會自動呼叫裡面的方法。
3、批量處理每乙個動作。
如下,將第一步取出來的引數,用下面方法填入clip列表中,然後複製給模型的modelimporter的clipanimations。
publicclass
cliparraylistcreater
public
modelimporterclipanimation getarray()
}
5、設定模型型別和動作誤差
modelimporter中幾個引數一般都在匯入時需要處理,animationtype ,animationcompression,animationpositionerror ,
animationrotationerror,
animationscaleerror 。
一般根據需要設定即可。
有幾點需要說明
1、幀數表的命名需要一定規範,如,模型名+「幀數表」,
2、模型應該都放到指定目錄,方便管理和工具集中處理。
把**放到工程裡,路徑按照自己的來,等待轉菊完成,就duang的一下幀數表自動匯入了。
usingsystem.collections.generic;
using
system.io;
using
unityeditor;
using
unityengine;
public
class
assetsimporttools : assetpostprocessor
string modellist =file.readalllines(lode);
editorimporterutil.cliparraylistcreater creater = new
editorimporterutil.cliparraylistcreater();
for (int i = 0; i < modellist.length; i++)
檔案的第
".eformat(lode) + (i + 1) + "
行出錯", "確定"
))
}bool isloop = false
;
if (s[0] == "
idle
")//迴圈的動作可以在這裡設定,也可以在配置中設定
isloop = true
;
else
isloop = false
;
if (s.length==4
)
}if(isloop)
creater.addclip(s[
0], int.parse(s[1]), int.parse(s[2]), false
, wrapmode.loop);
else
creater.addclip(s[
0], int.parse(s[1]), int.parse(s[2]), false
, wrapmode.default);
modelimporter.clipanimations =creater.getarray();}}
}}namespace
editorimporterutil
public
modelimporterclipanimation getarray()
}}
Unity3d模型匯入技巧
unity 3d匯入3dmax模型 會產生若干問題,按照官方 的說明,將max 模型導成fbx檔案 匯入untiy似乎也不能解決 1 x軸向偏轉 3dmax模型匯入後自動有乙個x軸270度的偏轉,巧合的是,在unity中旋轉模型的時候,你會發現y軸參照方向永遠朝上,而x和z軸則以模型本身的區域性座標...
Unity 3D模型動畫匯出為幀序列
1.要引用的命名空間 using system.io using unityengine using system.collections.generic using system.collections 2.擷取當前螢幕,儲存為texture2d物件,存入檔名 字典中。存入字典會占用較高的記憶體,...
Unity 3d匯入3dMax模型 產生若干問題
unity 3d匯入3dmax模型 會產生若干問題,按照官方 的說明,將max 模型導成fbx檔案 匯入untiy似乎也不能解決 1 x軸向偏轉 3dmax模型匯入後自動有乙個x軸270度的偏轉,巧合的是,在unity中旋轉模型的時候,你會發現y軸參照方向永遠朝上,而x和z軸則以模型本身的 區域性座...