Unity 编辑器中动画分割/创建动画剪辑

就是代替下面这个功能:

直接上代码

cs 复制代码
    private static void CreatePoseClips()
    {
        var modelImporter = AssetImporter.GetAtPath(AssetDatabase.GUIDToAssetPath(Selection.assetGUIDs[0])) as ModelImporter;
        var animation = modelImporter.defaultClipAnimations[0];
        var list = new List<ModelImporterClipAnimation>();
        for(int i = 0; i < animation.lastFrame; i+=2)
        {
            //创建剪辑
            var ani = new ModelImporterClipAnimation();
            ani.firstFrame = i;
            ani.lastFrame = i + 1;
            ani.name = $"ABC {i}";
            list.Add(ani);
        }
        modelImporter.clipAnimations = list.ToArray();
        modelImporter.SaveAndReimport();
    }

defaultClipAnimations

Unity - Scripting API: ModelImporter.defaultClipAnimations

defaultClipAnimations就是根据TakeInfo创建的默认动画。建模软件编辑的时候动画都是在一个轨道上的,导出的时候也是一个动画。但是可以通过指定开始和结束帧创建剪辑,这个数据在ModelImporter.importedTakeInfos里面。

Unity - Scripting API: ModelImporter.importedTakeInfos

模型自带动画总共有多少帧

可以遍历importedTakeInfos,或者遍历defaultClipAnimations来获取最大的lastFrame,就是结束帧了。一般最后一个元素就是最后一个动画,用最后一个元素的lastFrame就行了

其他

在AssetPostProcessor里处理,这样每次导入的时候就能自动创建了

相关推荐
沟通QQ:6882388631 分钟前
基于Matlab的简单数字验证码识别系统:从图像降噪到字符识别的全流程解析及远程调试应用
编辑器
UX201743 分钟前
Unity中的Color.HSVToRGB
unity·游戏引擎
TO_ZRG1 小时前
Unity PackageManager
unity·gitlab
jtymyxmz3 小时前
《Unity Shader》10.1.2 创建用于环境映射的立方体纹理
unity·游戏引擎
怣疯knight5 小时前
unity上传git需要上传哪些文件
git·unity
世洋Blog5 小时前
Unity开发微信小游戏-合理的规划使用YooAsset
unity·c#·微信小游戏
hashiqimiya5 小时前
unity配置外部编辑器rider
unity·编辑器·游戏引擎
山峰哥7 小时前
沉浸式翻译插件深度评测:打破语言壁垒的黑科技利器
数据结构·科技·算法·编辑器·办公
c***87197 小时前
Node.js使用教程
node.js·编辑器·vim
jtymyxmz8 小时前
《Unity Shader》10.1.3 反射
unity·游戏引擎