unity3d 动作会产生抖动的问题

把外部软件制作的动画文件,导入到untiy3d里面的时候,你会发现很多动画文件会一抖一抖的,特别是动画比较精细的部分,诸如腿部,手部末端。

这个问题困扰了很久,然后某天把动作文件在Animation中打开,一帧一帧的观看,一个骨骼一个骨骼的看位移和旋转,发现抖动的时候,这个骨骼的数字都非常的小,很多时候都到了小数点后面很多位。这个时候,我把动画文件拷出来,通过修改帧里数值到一个比较大的数值后,发现不抖动了。此时,想到了一个问题,那就是精度丢失。

unity3d里将导入的动画文件,每帧数的位移,旋转和缩放都存放为一个个的浮点型的数据。然后在播放的时候,是基于世界缩放的,也就是把这些数值,都会乘以上层的缩放,然后改变骨骼的数据信息,赋予数值上去,如果要乘以的缩放比较小,就会导致小数位占比较多,浮点型的精度是有限的,就会导致动画的一些精度丢失。这个时候,将上层缩放乘以10倍,就好了很多,基本上抖动幅度非常小了,如果乘以100,那就不会有任何的抖动了。

这个只是在unity3d里做文章,会有一个坏处就是,模型的比例和场景的比例对不上,还要调整场景的缩放。所以比较好一些的做法,应该是美术那边,调动作的时候,尽量保证精度,避免出现这个问题

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值