我是使用Unity的新手。在我的游戏中,模型和动画从3DMAX导出为.fbx文件,动画在Unity中被剪辑,但是没有生成.anim文件,我需要分开.anim文件,因为即使我已经剪辑动画“下面的代码也无法运行” “:
var clip = animation["run"];
有人能帮助我吗?提前谢谢。
答案 0 :(得分:10)
我终于找到了答案,在.fbx文件中按动 CTRL + D 动画片段会创建一个单独的.anim文件,这是多么奇怪的操作!
答案 1 :(得分:1)
您必须在导入中设置动画。在Unity中选择 .fbx 模型,然后转到动画标签。你必须定义剪辑。 .anim 文件将在模型下生成。
如果您没有在动画标签中看到剪辑,请将 Rig 下的“动画类型”更改为Legacy
。
答案 2 :(得分:0)
我写了一个脚本来轻松做到这一点
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();
}
}