Unity实现FBX模型动画提取的示例

角色已经人形化(Humanoid)了,那它的动画可以用在其它的模型上了也就是可以共用一套模型动画了,但是你有没有发现那动画是和fbx模型绑在一起的,没关系你可以选中这几个动画文件按Contrl+D就可以提取出来了,然后你可以把整个fbx模型都删掉了,新生成的动画已经不再基于fbx了,这样可以大大减小资源大小。

如果是一个程序员的话你可能会想那这个实现代码是怎样的呢

using UnityEngine;
using UnityEditor;
using System.Collections;
using System.IO;
 
public class AnimationClipTool
{
    [MenuItem("AnimationClip/GetFilteredtoAnim &1", true)]
    static bool NotGetFiltered()
    {
        return Selection.activeObject;
    }
 
    [MenuItem("AnimationClip/GetFilteredtoAnim &1")]
    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();
    }
}

选中动画剪辑,点击菜单栏上AnimationClip/GetFilteredtoAnim选项(快捷键ALT+1),代码生成的动画剪辑会出现在Assets/AnimationClip文件夹下

(如果选择的不是动画剪辑而是其他资源文件,会出现 Source and Destination Types do not match 错误)

 

未经允许不得转载:第一Unity3D » Unity实现FBX模型动画提取的示例

赞 (1)