Unity3D中Blendshapes之间的过渡方式

https://blog.csdn.net/a117653909/article/details/48052309?utm_source=blogxgwz3

环境Unity3D 4.6.2f1 Win7 64bit
同事从Maya中用blendshape方式做了一个动画,一个球匀速向前移动一段距离。但导出fbx放进Unity3D后,感觉球是在一颤一颤地移动,而不是匀速移动。
效果是这样子:http://v.youku.com/v_show/id_XMTMyMjQyNTE2NA==.html
同事解释了下:
假设那个动画是24帧,每一帧中球的位置都已经确定好了。但假设Unity3D运行时是48帧,第1帧时取的是动画的第1帧,第2帧的时候,它取的是动画的第1帧呢,还是第2帧,还是第1帧和第2帧的平均,还是其它值,所以这个地方的相关设置如果没有顺利从Maya里导到Unity3D,就会出现问题。我这次就是Maya里的相关设置信息没有顺利地导到Unity3D。
相关源码在:http://vdisk.weibo.com/s/dSGcg5j06Dgy
或 http://download.csdn.net/detail/a117653909/9062143
在Unity3D中打开Animation窗口,选中Hierarchy中的test3,Animation窗口中会显示test3相关的blendshapes,点击Animation窗口中的curve,可以看到如下图:
这里写图片描述
Blendshapes的序列没有按顺序排,你按10,20,30……230,240这样一个个点过去,就可以看到值是在一直向右边在移的。
这个动画的帧率是24,可以看到上图是不同的曲线经过关键点,所以这里是用曲线来插值相邻关键点之间的值。如果要取两个关键点之间的值,就是取这此曲线上的值了。这就导致球是一颤一颤地移动。
解决办法是:
修改Blendshapes之间值的过渡方式。
由于这个Animation是Read Only,所以我们把Take001动画Duplicate一个出来,命名为aaa,将aaa拖给Hierarchy中的test3的Animation,然后在Animation窗口中左上角,切换为aaa,全选,在某个关键点上右键,选择Both Tangents,Constant。这样问题就解决了。

————————————————
版权声明:本文为CSDN博主「虎纠印象」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/a117653909/article/details/48052309

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值