7

我是使用 Unity 的新手。在我的游戏中,模型和动画从 3DMAX 导出为 .fbx 文件,动画在 Unity 中被剪辑,但没有生成 .anim 文件,我需要单独的 .anim 文件,因为即使我剪辑了动画“运行”,以下代码也不起作用“:

var clip = animation["run"];

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

钻机 模型 动画 导入设置

4

3 回答 3

15

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

于 2014-04-26T06:37:09.673 回答
1

您必须在导入时设置动画。在 Unity 中选择.fbx模型并转到Animations选项卡。在那里你必须定义剪辑。.anim文件将在模型下生成

如果您在动画选项卡中看不到剪辑,请将Rig下的“动画类型”更改为Legacy

于 2014-03-26T13:33:35.227 回答
1

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

在此处输入图像描述

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();
    }
}
于 2021-06-29T12:27:58.990 回答