unity animator动画融合时的上下半身速度分离控制
2017-08-30 15:23
225 查看
游戏中要实现一边走一边攻击, 移动还分八方向的,所以使用了半身混合。
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);
相关文章推荐
- 【Unity】通过AnimatorController更改其中某个动画片断的速度
- Unity3D 新版动画状态机Animator中的动画速度控制
- Unity里用Animator控制3dmax里制作的动画
- Unity用程序给Animator控制的某一个动画(AnimationClip)加一个动画事件(AnimationEvent)
- 上下半身的动画融合技术
- unity 长按按钮控制播放animator播放速度
- unity animator controller做半身动画
- Unity5.5+easytouch5双摇杆控制角色移动及挂上Animator的方法
- Android Animation动画 控制动画的执行效果,速度等
- unity animator动画学习(1)
- 【Unity 3D学习】获取鼠标滑动方向(上下左右)-控制摄像机围绕物体旋转
- Unity (二) Animator:Events - 动画事件案例(呐喊出现字幕)
- 通过滑动手势控制摇杆移动并且通过移动的速度控制能量条的增长 Unity
- 自学unity之人物动画控制(第一篇)
- Unity Animator 动画没切换
- jquery缓动swing liner控制动画过程不同时刻的速度
- 关于Unity中Mecanim动画的动画状态代码控制与代码生成动画控制器
- Unity 据手势滑动速度 控制能量条的增长
- ios动画图片的插入,并使用UISloder控制图片的动画速度
- unity之按键控制移动,及按键之后,走动动画才能播放(正常行走)