如何在Unity中从.fbx文件创建.anim文件?

时间:2014-03-26 13:06:55

标签: unity3d fbx

我是使用Unity的新手。在我的游戏中,模型和动画从3DMAX导出为.fbx文件,动画在Unity中被剪辑,但是没有生成.anim文件,我需要分开.anim文件,因为即使我已经剪辑动画“下面的代码也无法运行” “:

var clip = animation["run"];

有人能帮助我吗?提前谢谢。

rig model animations import settings

3 个答案:

答案 0 :(得分:10)

我终于找到了答案,在.fbx文件中按动 CTRL + D 动画片段会创建一个单独的.anim文件,这是多么奇怪的操作!

答案 1 :(得分:1)

您必须在导入中设置动画。在Unity中选择 .fbx 模型,然后转到动画标签。你必须定义剪辑。 .anim 文件将在模型下生成。

如果您没有在动画标签中看到剪辑,请将 Rig 下的“动画类型”更改为Legacy

答案 2 :(得分:0)

我写了一个脚本来轻松做到这一点

enter image description here

using System.IO;
using UnityEditor;
using UnityEngine;

public class AnimationExtractor: MonoBehaviour
{
    [MenuItem("Assets/Extract Animation")]
    private static void ExtractAnimation()
    {
        foreach (var obj in Selection.objects)
        {
            var fbx = AssetDatabase.GetAssetPath(obj);
            var directory = Path.GetDirectoryName(fbx);
            CreateAnim(fbx, directory);     
        }
    }

    static void CreateAnim(string fbx, string target)
    {
        var fileName = Path.GetFileNameWithoutExtension(fbx);
        var filePath = $"{target}/{fileName}.anim";
        AnimationClip src = AssetDatabase.LoadAssetAtPath<AnimationClip>(fbx);
        AnimationClip temp = new AnimationClip();
        EditorUtility.CopySerialized(src, temp);
        AssetDatabase.CreateAsset(temp, filePath);
        AssetDatabase.SaveAssets();
    }
}