Unity3d的模型自動匯入幀數表

2022-03-28 20:03:34 字數 2238 閱讀 5859

開發中經常需要,對美術模型進行一些處理。(以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。

public

class

cliparraylistcreater

public

modelimporterclipanimation getarray()

}

5、設定模型型別和動作誤差

modelimporter中幾個引數一般都在匯入時需要處理,animationtype ,animationcompression,animationpositionerror ,

animationrotationerror,

animationscaleerror 。

一般根據需要設定即可。

有幾點需要說明

1、幀數表的命名需要一定規範,如,模型名+「幀數表」,

2、模型應該都放到指定目錄,方便管理和工具集中處理。

把**放到工程裡,路徑按照自己的來,等待轉菊完成,就duang的一下幀數表自動匯入了。

using

system.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軸則以模型本身的 區域性座...