Add Movement Input 是虚幻引擎中处理角色移动的核心节点。下面是一个从零开始的完整操作指南,包含了在虚幻引擎5中的具体步骤。
1. 节点概述:它是什么?
Add Movement Input 节点用于向一个“Pawn”(可被控制的对象,如角色)添加世界空间中的移动输入。
-
核心原理:这个节点本身不直接移动角色,而是“累积”移动指令。它需要与角色的移动组件(如
Character Movement Component)协同工作,在每一帧将这些累积的指令转化为实际的位移。 -
关键参数:
-
Target(目标): 要移动的Pawn对象,通常连接Self。 -
World Direction(世界方向): 一个向量,指定移动的方向(例如,角色的“前”向量Get Actor Forward Vector)。 -
Scale Value(缩放值): 一个浮点数,控制移动的速度/幅度。值为1.0表示全速,0.5为半速,-1.0则反向移动。 -
Force(强制): 布尔值,若为True,则无视“是否忽略移动输入”的设置强制移动。
-
2. 完整操作步骤(蓝图实现)
以下是创建一个可使用WASD键控制移动的角色的完整流程。
第一步:准备工作:创建角色蓝图
-
在内容浏览器中,右键点击,选择 蓝图类 (Blueprint Class)。
-
在拾取父类窗口中,选择
Character并命名(例如BP_MyCharacter)。注意:
Character类自带Character Movement Component,能自动处理Add Movement Input节点的输入。如果使用更基础的Pawn类,则需手动编写移动逻辑。
第二步:配置输入(增强输入系统)
虚幻引擎5推荐使用增强输入系统(Enhanced Input System)。
-
创建输入操作(Input Actions):
-
在内容浏览器中右键,选择 输入 (Input) -> 输入操作 (Input Action),创建两个资产:
IA_Move和IA_Look。 -
分别打开它们,将 值类型 (Value Type) 都设置为
Axis2D (Vector2D)。这样,一个操作就能同时处理前后(X轴)和左右(Y轴)的移动。
-
-
创建输入映射上下文(Input Mapping Context):
-
在内容浏览器中右键,选择 输入 (Input) -> 输入映射上下文 (Input Mapping Context),命名为
IMC_Default。 -
双击打开,点击
+号添加映射。-
将
IA_Move映射到键盘的 W, A, S, D 键。 -
将
IA_Look映射到鼠标的 2D 轴 (Mouse 2D-Axis)。
-
-
-
将输入上下文赋予玩家控制器:
-
打开你的角色蓝图
BP_MyCharacter,在事件图表中。 -
在
BeginPlay事件后,拖出节点Get Player Controller->Cast To Player Controller(或者直接获取)。 -
从该控制器拖出节点
Get Enhanced Input Local Player Subsystem。 -
调用
Add Mapping Context节点,将IMC_Default赋予给它,并设置优先级(Priority)。
-
第三步:编写移动逻辑
在 BP_MyCharacter 的事件图表中:
-
获取输入值:从
IA_Move的Triggered执行引脚拖出(Triggered会在按键被按下并持续时触发)。然后拖出IA_Move的返回值引脚Action Value,并调用Get Vector 2D Value来获取一个2D向量。 -
分解输入值:右键点击
Get Vector 2D Value节点的返回值引脚,选择Split Struct Pin,将向量分解为独立的X和Y值。 -
处理前后移动(X轴):
-
从
Triggered引脚拖出执行线,添加Add Movement Input节点。 -
Target:设置为Self。 -
World Direction:添加Get Actor Forward Vector节点并连接,这代表角色的“前”方向。 -
Scale Value:连接分解出来的X值。
-
-
处理左右移动(Y轴):
-
从
Triggered引脚再拖出一条执行线,添加第二个Add Movement Input节点。 -
Target:设置为Self。 -
World Direction:添加Get Actor Right Vector节点并连接,这代表角色的“右”方向。 -
Scale Value:连接分解出来的Y值。
-
第四步:设置摄像机视角(可选但推荐)
为了让移动更直观,通常需要设置跟随角色的摄像机。
-
在
BP_MyCharacter的组件 (Components) 面板中,点击 添加组件 (Add Component),添加一个SpringArmComponent(弹簧臂)和一个CameraComponent(摄像机),并将摄像机附在弹簧臂下。 -
调整弹簧臂和摄像机的位置到角色身后。
-
在弹簧臂的细节面板中,勾选
Use Pawn Control Rotation,让弹簧臂跟随鼠标/控制器的旋转。 -
在角色蓝图的 类默认值 (Class Defaults) 中,找到
Pawn栏目,勾选Use Controller Rotation Yaw,让角色面向摄像机方向。
完成以上步骤后,编译并保存蓝图。将其拖入关卡,运行游戏即可使用WASD控制角色前后左右移动。
3. 蓝图节点连接示意图
4. 常见问题与解决方案
-
角色无法移动?
-
检查
Add Movement Input节点的Scale Value是否为0。 -
确保
IMC_Default已通过Add Mapping Context正确添加。 -
运行游戏时,确保鼠标点击了游戏视口,键盘输入被正确捕获。
-
确认你的角色蓝图继承自
Character,而非基础的Pawn。
-
-
如何让移动速度与帧率无关?
如果你是在Event Tick中手动处理移动(非Character类),需要将移动值乘以Delta Seconds(帧时间),以确保在不同帧率的电脑上移动速度一致。 -
如何实现冲刺(Sprint)?
可以在按住Shift键时,将Scale Value乘以一个大于1的系数(如2.0)。 -
Add Movement Input的Force参数有什么用?
当角色因为某些原因(如被眩晕)被设置为“忽略移动输入”时,将Force设为True可以强制执行一次移动,常用于不可打断的击退或强制位移效果。
总结
Add Movement Input 节点的标准用法是:在角色蓝图中,通过“增强输入系统”获取玩家的2D输入,然后分别使用角色的“前”向量和“右”向量作为方向,将输入值作为缩放值,传递给两个 Add Movement Input 节点。 配合 Character Movement Component,即可实现流畅的标准角色控制。
感谢您的来访,获取更多精彩文章请收藏本站。

![图片[1]-虚幻引擎 Add Movement Input 节点-虚幻引擎](https://test.xuhuanyinqing.com/wp-content/uploads/2026/06/蓝图节点连接示意图1.png)






暂无评论内容