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里处理,这样每次导入的时候就能自动创建了

相关推荐
龚子亦2 小时前
【Unity开发】热更新学习——HybridCLR框架
学习·unity·游戏引擎·热更新
IMPYLH2 小时前
Lua 的 OS(操作系统) 模块
开发语言·笔记·后端·游戏引擎·lua
墨客希3 小时前
好用的小工具
编辑器
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ4 小时前
vscode快捷键配置
ide·vscode·编辑器
龚子亦4 小时前
【GameFramework框架】FSM使用
学习·unity·游戏开发·游戏框架
龚子亦5 小时前
【Unity开发】安卓应用开发中,用户进行权限请求
android·unity·安卓权限
他是龙5515 小时前
48:文件上传漏洞进阶(中间件/CMS/第三方编辑器)
中间件·编辑器
liujing102329295 小时前
Cursor编辑器的使用技巧
编辑器
君莫愁。6 小时前
【Unity】相机与UI的自适应
ui·unity·c#·游戏引擎
feiduoge14 小时前
教程 44 - 相机系统
windows·游戏引擎·图形渲染