虚幻游戏引擎如何让角色可以蹲着走?

效果预览

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

实现思路

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

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

实现步骤

0. 项目准备

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

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

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

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

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

效果示意

该图片来源:网页游戏http://www.laoshoucun.com/网页游戏排行榜。

2. 动画蓝图

当前的状态机如下图所示

先把Idle/Run改名为GroundMovement

双击进入GroundMovement,按照下图所示连接节点

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


3. 角色蓝图

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

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

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

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

运行一下

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

运行

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


该图片来源:网页游戏http://www.laoshoucun.com/网页游戏排行榜

posted on 2020-12-29 16:49  laoshoucun  阅读(831)  评论(0)    收藏  举报

导航