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

相关推荐
添砖java‘’5 小时前
vim高效编辑:从入门到精通
linux·编辑器·操作系统·vim
非得登录才能看吗?10 小时前
VScode 入门(设置篇)
ide·vscode·编辑器
AlphaFinance13 小时前
Windows下Vscode连接到WSL的方法
ide·vscode·编辑器
开发游戏的老王17 小时前
虚幻引擎虚拟制片入门教程 之 Sequencer 常用技巧
游戏引擎·虚幻
空影星21 小时前
Tablecruncher,一款轻量级CSV编辑器
python·编辑器·电脑·智能硬件
开发游戏的老王1 天前
虚幻引擎入门教程:虚幻编辑器的基本操作
编辑器·游戏引擎·虚幻
AA陈超1 天前
虚幻引擎5 GAS开发俯视角RPG游戏 P05-08 UI 部件数据表
c++·游戏·ue5·游戏引擎·虚幻
止观止1 天前
如何开发 VSCode 内置扩展:从零开始构建最简扩展
ide·vscode·编辑器
future_studio1 天前
聊聊 Unity(小白专享、C# 小程序 之 播放器)
unity·小程序·c#
楚韵天工1 天前
宠物服务平台(程序+文档)
java·网络·数据库·spring cloud·编辑器·intellij-idea·宠物