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

相关推荐
隔窗听雨眠7 分钟前
从零开始的游戏开发入门指南
unity
sinat_3845031124 分钟前
【无标题】
unity·webgl
caimouse27 分钟前
Godot 引擎官方常见问题(FAQ)整理
游戏引擎·godot
一锅炖出任易仙1 小时前
创梦汤锅学习日记day29
学习·ai·ue5·游戏引擎
隔窗听雨眠1 小时前
Unity与Simulink联合仿真:实现无人机目标追踪系统
unity·无人机·cocos2d·simulink
winlife_1 小时前
全程用 AI 做一款商业级手游 · EP10 道具系统:让三个按钮真正改变棋盘
windows·算法·unity·ai编程·游戏开发·mcp·玩法系统
九皇叔叔2 小时前
VSCode + Vue3 常用组件
ide·vscode·编辑器
晓13133 小时前
【Cocos Creator 3.x】篇——第三章 脚本编程
前端·javascript·游戏引擎
♡来年秋风起♡3 小时前
Claude Code VSCode 插件历史记录不显示问题修复记录
ide·vscode·编辑器
无足鸟ICT4 小时前
【RHCA+】移动光标快捷键
linux·编辑器·vim