• Unity3D骨骼动画的分解(CleanData.Ani详解)


    http://www.cnblogs.com/crazylights/p/4312211.html

    CleanData是什么

    CleanData以前没有特定的名字,(在easydown这个开源项目中,作为一个GameObjParser模块存在)。
    在某三国项目中,我们使用GameObjParser将NGUI 的预设保存为自定义格式(替代了assetbundle方案),以实现不论任何平台都可以使用同一份资源。
    在easydown的演示中GameObjParser也将一个简单的模型场景保存为自定义格式并加载。
    so.CleanData是想去做AssetBundle的工作,但是格式是我们自定义的,细节更透明。这些信息,甚至可以用到别的引擎里。

    假如有一天我们要离开U3D的话。

    CleanData.Ani 是CleanData中针对骨骼动画的部分

    以一个角色为例,CleanData.Ani有一些辑器脚本,导入CleanData之后。在Animator组件上就会出现一些工具
    "Create FBAniclip" 会把Animator的 controller中配置的动画(.anim)存为(".fbani.asset")。
    这已经是一种自定义的动画格式
    它使用一个新的组件来控制动画播放,这个组件支持在editor模式中直接预览动画。

    此处的这个".fbani.asset"还是属于unity的 asset格式,只能用于在unity编辑器中操作,和使用ab打包。
    这里还没展现出我们自己写一套动画数据,自己写一个动画播放组件的意义所在。
    不过你如果比较一下播放性能,你会发现,我们自己写的动画播放组件居然比原生的快。
    (除了我们做的事情可能更少以外,这也说明unity原生动画性能还有很大的提升空间,坐等官方优化)。

    然后关键的部分来了,unity的.anim 你没有办法运行时加载,所以你也不能运行时下载一个骨骼动画,给角色加上去。
    但是fbani可以,注意那个"export bin",这会把当前动画保存为".fbani.bytes"文件,放在streamingassets目录下。

    然后就可以实现运行时载入骨骼动画了

    另外,还有个数字你可能也有兴趣关注一下

    我们自定义格式存储动画的容量只有.anim文件的十分之一左右。

    配合CleanData,已经可以实现整个角色模型和动画一起保存为自定义格式并还原,你是不是开始脑洞大开了呢?

    ByTheWay,如果连Anim文件也不从Max里来,行不行呢,也是可能的。
    Skele.UserEcho.com

    提供了一个插件。可以在untiyeditor里直接修改角色动画,并保存.anim文件。

    这个扭曲的动画是我用他的插件扭的,我也实在没有扭动作的天赋和耐心


    我们可以使用他,或者对他进行改造,直接编辑.fbani 文件,跳过.anim都是可行的。
    这将是一个愿景型的工作,FB引擎希望有一天可以做到MUGEN那个程度,角色,招数随便编辑。
    到那一天,脱离MAX直接来修改动画,就会变得有用了。

  • 相关阅读:
    渡一 5-1、2 条件语句补充,初识引用值,typeof,类型转换
    渡一 3-2 js基础知识
    渡一 25 正则表达式
    渡一 15-1 数组去重(上下)
    渡一 14-3 数组,类数组
    渡一 14-1&2 三目运算符,数组,类数组
    3_Guess Fingers
    2_Cat Years
    27_Blog Reader
    26_Json_Example
  • 原文地址:https://www.cnblogs.com/alps/p/5609088.html
Copyright © 2020-2023  润新知