目录

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

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
ZKY_243 小时前
【Unity】处理文字显示不全的问题
unity·游戏引擎
快乐非自愿15 小时前
Netty源码—10.Netty工具之时间轮
java·unity·.net
虾球xz15 小时前
游戏引擎学习第195天
c++·学习·游戏引擎
2501_9068014818 小时前
BY组态-低代码web可视化组件
前端·物联网·低代码·数学建模·编辑器·web
周Echo周18 小时前
5、vim编辑和shell编程【超详细】
java·linux·c++·后端·编辑器·vim
hvinsion19 小时前
Unity启动画面去除教程:如何去除Unity的Splash Screen和水印
unity·游戏引擎
徐小夕@趣谈前端19 小时前
从零到一开发电子病历编辑器(源码+教程)
前端·javascript·vue.js·编辑器·ecmascript
虾球xz20 小时前
游戏引擎学习第193天
c++·学习·游戏引擎
Liudef0621 小时前
deepseek v3 0324实现工作流编辑器
前端·css·编辑器·deepseek
txz20351 天前
CMake在Windows环境下Visual Studio Code的使用
ide·vscode·编辑器