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

本文使用引擎自带的横板游戏模板(下文简称模板)为起点开发(其它类型的模板实现原理相同),为角色加入下蹲和蹲走的技能。玩家按住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) 收藏 举报
浙公网安备 33010602011771号