unity animator动画融合时的上下半身速度分离控制



游戏中要实现一边走一边攻击, 移动还分八方向的,所以使用了半身混合。
Animator 半身混合的处理,可以另外看资料。  
简单来说 就是分2层:0层 播放基础移动动作,比如“Run”, 1层设了Mask(配置了上半身节点),weight设1(会完全覆盖0层的上半身动作),播放"Attack"

就能满足要求了。


不过,策划又有需求,需要玩家移动快时, 脚走路的动画要变快, 但上半身攻击不能变快。

结果Animator 只有一个speed属性, 会影响所有当前动画。

找了一下资料,参考如下链接,有好几种方案,作者帮忙踩过坑了,我就选择最后一种方案。

http://blog.sina.com.cn/s/blog_13c4bf4b40102wup6.html


就是里用Animator 可以定义一些自定义参数(Parameters子页签), 控制动画的播放

上图左侧,可以看到动画的播放速度除了可以固定一个值外,还可配置Multiplier 乘以一个自定义系数。

这样,我们就不用在程序里一个动画一个动画调速度了,直接整个animator 设一次参数就行。
animator.SetFloat("USpeed", value);     
然后把9个移动的动作都做了一下配置。

就基本满足要求了。



不过个人也遇到了一个坑:

Animator所在节点如果 禁用又被启用时(比如怪物远离隐藏,后面又显示), 参数就被重置了。(Animitor主控切换参数当然也会被重置)
所以我在该节点挂的脚本里OnEnable函数里 每次都设一下 animator.SetFloat("USpeed", value);



  • 10
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值