fbx模型動畫提取教程附帶一個用程式碼提取的方法

星塵發表於2014-06-11

角色已經人形化(Humanoid)了,那它的動畫可以用在其它的模型上了也就是可以共用一套模型動畫了但是你有沒有發現那動畫是和fbx模型綁在一起的,沒關係你可以選中這幾個動畫檔案按Contrl+D就可以提取出來了,然後你可以把整個fbx模型都刪掉了,新生成的動畫已經不再基於fbx了,這樣可以大大減小資源大小,如果是一個程式設計師的話你可能會想那這個實現程式碼是怎樣的呢,於是我下午進行了測試終於弄出來了,看見圖上的選單欄多了個
AnimationClip了嗎,那個就是程式碼生成的了,同樣選中動畫剪輯然後按AnimationClip裡的一個項就可以實現同樣的功能了,而我寫的程式碼動畫剪輯會生成在Assets/AnimationClip資料夾下,好了貼程式碼

 

using UnityEngine;
using UnityEditor;
using System.Collections;
using System.IO;


public class AnimationClipTool{


[MenuItem("AnimationClip/GetFilteredtoAnim",true)]
static bool NotGetFiltered()
{
return Selection.activeObject;
}


[MenuItem("AnimationClip/GetFilteredtoAnim")]
static void GetFiltered()
{
string targetPath = Application.dataPath + "/AnimationClip";
if(!Directory.Exists(targetPath))
{
Directory.CreateDirectory(targetPath);
}
Object[] SelectionAsset = Selection.GetFiltered(typeof(Object),SelectionMode.Unfiltered);
Debug.Log(SelectionAsset.Length);
foreach(Object Asset in SelectionAsset)
{
AnimationClip newClip = new AnimationClip();
EditorUtility.CopySerialized(Asset,newClip);
AssetDatabase.CreateAsset(newClip,"Assets/AnimationClip/"+Asset.name+".anim");
}
AssetDatabase.Refresh();
}
}

 

相關文章