Unity项目-黑魂复刻(四)玩家控制器(翻滚以及跳跃操作改动)

翻滚以及跳跃操作改动

黑魂游戏中,翻滚的触发条件:1.走路按跳跃键 2.助跑按跳跃键 3.高处掉落
所以之前的跳跃键需要改成翻滚键

  • 翻滚动画以及触发逻辑:

注意:由于翻滚的动画会出现y方向的根tranform位移,我们需要bake into pose,可以参考下面的链接
如何做好角色的移动动画?(Root Motion详解)
https://zhuanlan.zhihu.com/p/151387595
在这里插入图片描述
添加roll动画,过渡条件分为两种情况
第一种情况:正常走路按下跳跃键(翻滚键),直接中ground->roll,条件是触发roll(按下j键)
第二种情况:加速按下跳跃键(翻滚键),触发条件是ground->jump->fall->roll->ground或者ground->jump->roll->ground
第三种情况:自然下落,触发条件sGround 为 false
在这里插入图片描述
在这里插入图片描述

需要调整ground过渡的优先级:自然降落先,再到冲刺翻滚,最后是正常翻滚
配合roll和jump的相关代码,优先级如下。
在这里插入图片描述
roll和jump的相关代码如下,首先是roll的时候需要和之前的jump一样将输入关闭,平面移动锁死。

 // 进入动画节点roll时执行的方法 通过PlayerController动画机中的roll节点上挂载的FSMOnEnter调用
    void OnRollEnter() {
        // 关闭输入并且锁定平面移动
        Disable_Move();
    }

翻滚的向前速度
翻滚时锁死了平面移动,我们就需要一个翻滚的速度来让动画显得不那么奇怪(位移和动画不匹配)。思路:我们要在锁死平面前根据上一帧的速度量乘以一个向前的滚动速度,有助于玩家体验到不同的速度有不同的滚动速度

 // 进入动画节点roll时执行的方法 通过PlayerController动画机中的roll节点上挂载的FSMOnEnter调用
    void OnRollEnter() {
        // 关闭输入并且锁定平面移动
        Disable_Move();
        // 翻滚向前的位移
        planarVec = planarVec+model.transform.forward *rollVelocity;


    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值