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

news/2024/7/19 11:23:17 标签: 游戏, 爬虫

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直接来修改动画,就会变得有用了。

转载于:https://www.cnblogs.com/alps/p/5609088.html


http://www.niftyadmin.cn/n/1667558.html

相关文章

nginx压力测试及防止恶意压力测试的方法

nginx压力测试及防止恶意压力测试的方法 http://blog.csdn.net/apache0554/article/details/46942169 https://www.cnblogs.com/gumuzi/p/5617232.htmlab -kc 20000 -n 40000 http://tesh.bouncebank.com/indexAB连接数最多目前只能测20000,并发数目前不限。如果连…

全排列(递归)--C++实现

题目描述 给定一个由不同的小写字母组成的字符串&#xff0c;输出这个字符串的所有全排列。 我们假设对于小写字母有a < b < ... < y < z&#xff0c;而且给定的字符串中的字母已经按照从小到大的顺序排列。 输入描述: 输入只有一行&#xff0c;是一个由不同的小…

Spotify开源其Cassandra编排工具cstar

Spotify最近开源了其Cassandra编排工具cstar。Cstar是一个命令行工具&#xff0c;用于在Cassandra集群中的所有主机上运行脚本。\\Cstar的出现是为了在Cassandra节点中运行shell命令。这些shell命令通常与性能、安全性、一致性、升级等相关。\\据Spotify称&#xff0c;2017年&a…

如何在Chrome下使用Postman进行rest请求测试

如何在Chrome下使用Postman进行rest请求测试 https://jingyan.baidu.com/article/90808022ff18defd91c80f9a.html 在web和移动端开发时&#xff0c;常常会调用服务器端的restful接口进行数据请求&#xff0c;为了调试&#xff0c;一般会先用工具进行测试&#xff0c;通过测试后…

Fullnat

FullnatLVS当前应用主要采用DR和NAT模式,但这2种模式要求RealServer和LVS在同一个vlan中,导致部署成本过高;TUNNEL模式虽然可以跨vlan,但RealServer上需要部署 ipip 模块等,网络拓扑上需要连通外网,较复杂,不易运维。为了解决上述问题,我们在LVS上添加了一种新的转发模式:FULLN…

Java设计模式之策略模式(Strategy Pattern)

目录 定义 使用场景 定义 Define a family of algorithms,encapsulate each one,and make them interchangeable.&#xff08;定义一组算法&#xff0c;将每个算法都封装起来&#xff0c;并且使它们之间可以 互换。&#xff09; ● Context 封装角色 它也叫做上下文角色&#x…

“微信指数”上线

来自望月的博客的消息&#xff1a;微信正式上线“微信指数”&#xff0c;这是微信官方提供的基于微信大数据分析的移动端指数。微信官方给出了微信指数的三种应用场景&#xff1a;捕捉热词&#xff0c;看懂趋势监测舆情动向&#xff0c;形成研究结果洞察用户兴趣&#xff0c;助…

N阶楼梯上楼问题(递推问题)--C++实现

题目描述 N阶楼梯上楼问题&#xff1a;一次可以走两阶或一阶&#xff0c;问有多少种上楼方式。&#xff08;要求采用非递归&#xff09; 输入描述: 输入包括一个整数N,(1<N<90)。 输出描述: 可能有多组测试数据&#xff0c;对于每组数据&#xff0c; 输出当楼梯阶数…