您当前的位置: 首页 > 

开发游戏的老王

暂无认证

  • 4浏览

    0关注

    803博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

虚幻引擎图文笔记:如何让角色可以蹲着走(Crouch Walk) 方法一 :使用BlendNode实现

开发游戏的老王 发布时间:2020-12-28 19:03:46 ,浏览量:4

引擎版本 UE4

文章目录
      • 效果预览
      • 实现思路
      • 实现步骤
        • 0. 项目准备
        • 1. 构造CrouchIdle/CrouchWalk的混合空间
        • 2. 动画蓝图
        • 3. 角色蓝图
      • 运行一下
      • 小结

效果预览

在这里插入图片描述

本文使用引擎自带的横板游戏模板(下文简称模板)为起点开发(其它类型的模板实现原理相同),为角色加入下蹲和蹲走的技能。玩家按住Ctrl键为下蹲,再按方向键即为蹲走,松开Ctrl键角色站起来。

实现思路

本文假定你已经了解混合空间以及动画蓝图的基本使用方法

模板已经实现了“空闲/走/跑/跳”四个动作,其中“空闲/走/跑”是使用一个BlendSpace_1D实现的,它们也是和蹲/蹲走相互切换关系最密切的状态。所以我们也可以采用类似的思路处理蹲/蹲走,把它们融合成一个动作,然后通过动画蓝图中的BlendNode来进行切换。

实现步骤 0. 项目准备

使用模板生成初始项目,然后我们需要一个下蹲动画和一个蹲走动画

老王使用的是虚幻免费动画包“MCO Mocap Basics”,导入项目以后需要重定向一下,重定向方法请参考《虚幻引擎图文笔记:彻底搞懂UE4骨骼动画的重定向(Retargeting)》

在这里插入图片描述

重定向完毕以后红框中的动画就是蹲和蹲走

在这里插入图片描述

1. 构造CrouchIdle/CrouchWalk的混合空间

新建一个Blend Space 1D并更名为“CrouchIdle_Walk_1D”,参数设置如下:

在这里插入图片描述

效果示意

在这里插入图片描述

2. 动画蓝图

当前的状态机如下图所示

在这里插入图片描述 先把Idle/Run改名为GroundMovement

在这里插入图片描述 双击进入GroundMovement,按照下图所示连接节点

IsCrouching?是一个布尔型变量,默认值设为false

在这里插入图片描述 在这里插入图片描述

3. 角色蓝图

首先要在Project Settings的Input中添加一个Crouch事件

在这里插入图片描述

在角色蓝图中发出下蹲指令

在这里插入图片描述

CharacterMovement组件的细节面板上勾选下面两个选项:

  • Can Walk Off Ledges when Crouching: 是否可以蹲着走到沟里(这个选项根据需要选择)
  • Can Crouch:是否能蹲下(必选)

在这里插入图片描述

运行一下

运行之前,先在Character蓝图中暂时将取消CapsuleComponent组件中Hidden in Game的勾选,这样我们可以观察到角色包围盒的状态变化

在这里插入图片描述 运行

请注意观察角色的胶囊碰撞体,当角色蹲下的时候,碰撞体也变成了原来的一半,这是宝藏组件CharacterMovement,在接收到Crouch指令时默默为我们完成的工作

在这里插入图片描述

小结

这种方法把“蹲”和“站”合并成了一个大的状态,优点是连线比较简单;缺点是,如果“蹲”和“站”有不同的逻辑或者在状态机上要出现不同的分支,就不方便了。

关注
打赏
1656935939
查看更多评论
立即登录/注册

微信扫码登录

0.0383s