【UE5.8零基础入门】5.0 实战项目-3D闯关游戏-角色基本移动

UE5 3D动作闯关游戏 ChallengeGame 完整搭建教程

本项目为3D动作闯关游戏,基于UE5增强输入系统完成角色移动、鼠标视角操控。

一、项目创建与素材配置

蓝图节点的英文名称可以鼠标悬浮在节点上按住alt键查看。

游戏整体界面预览


image.png
  1. 新建UE5项目,项目命名为:ChallengeGame
  1. 将游戏素材导入项目中
  • 素材获取:简书私信本文作者我 / B站搜索「星露Studio」


    image.png
  1. 若导入素材后资源不加载,重启项目即可恢复正常。


    image.png

二、增强输入资源创建

创建三组核心输入资源(增强输入三剑客):

  • IA_Look:二维轴捕获,用于鼠标视角控制
  • IA_Move:二维轴捕获,用于角色移动控制
  • IMC_Challenge:输入映射上下文,统一绑定所有输入按键

原理:鼠标、移动均通过屏幕二维坐标系换算控制游戏三维动作。

image.png

image.png

image.png

2.1 输入按键绑定配置

将创建的 IA 输入动作挂载至 IMC_Challenge 映射上下文,并配置对应键盘、鼠标键值。

image.png

image.png

2.2 轴向数值校正

屏幕坐标系左下为负值:

  • A、S 按键对应负值轴向移动
  • 开启拌合输入轴值,可自由切换 X/Y/Z 轴向向量,方便后续蓝图从默认X轴向切换到Y轴向(支持XYZ任意组合)
image.png

三、基础蓝图搭建

创建两个核心蓝图资源:

  • BP_ChallengeCharacter(角色蓝图):控制角色模型、组件、移动逻辑
  • BP_ChanllenmgeMode(游戏模式蓝图):控制游戏运行规则、角色生成规则

模式基础决定角色怎么个玩法,角色决定玩家长啥样。

3.1 项目全局模式配置

打开 编辑 → 项目设置 → 地图和模式

  • 默认游戏模式修改为:BP_ChanllenmgeMode
image.png

3.2 角色模型与骨骼绑定

  1. 将玩家的骨骼体绑定游戏基础模式


    image.png
  2. 绑定骨骼网格体资产


    image.png
  3. 调整模型方向和游戏模型方向保持一致,并且贴底部


    image.png
image.png

3.3 初步运行测试

运行游戏查看初始效果


image.png

四、角色相机组件搭建

为角色蓝图添加基础组件:

  • 弹簧臂组件(SpringArm)
  • 摄像机组件(Camera)
image.png

根据项目参数调整位置、旋转数值,完成基础视角搭建。


image.png

image.png

五、角色输入控制蓝图逻辑

在角色事件图表中,配置鼠标视角控制与 ASWD键盘移动控制
节点搜索提示词:get player ->get input local -> add context

5.1 初始化输入映射(BeginPlay)

角色生成、开始运行时触发,只执行1次。
运行逻辑:角色出生后自动加载输入映射上下文
流程:

  1. Get Player Controller
    • Player Index = 0,获取0号本地玩家控制器(本机玩家)
  2. 增强输入本地玩家子系统
    • 从玩家控制器取出增强输入子系统接口,给后面节点当目标
  3. Add Mapping Context(添加输入映射上下文)
    • Mapping Context:填入IMC_Challenge输入映射资源,绑定键盘鼠标按键与IA输入动作
    • Priority = 0:输入上下文优先级,数字越大优先级越高,普通游戏填0
    • Options:默认留空

💡整体流程:角色出生 → 获取本地玩家 → 加载IMC输入映射表 → 激活整套增强输入,蓝图里IA_Move、IA_Look才能接收到按键鼠标信号。
⚠️不执行这一步:所有增强输入事件完全没有反应。

image.png

image.png

5.2 键盘 ASWD 移动逻辑

镜头朝向哪,角色就往哪跑,第三人称闯关游戏标准逻辑。鼠标转动镜头,W 永远向着屏幕前方走。

基于 IA_Move 输入动作:

  • Action Value:玩家输入了什么值
  • Break Vector2D:二维向量拆分,输出X、Y输入强度
  • Add Movement Input:角色移动核心节点
    • World Direction:世界空间移动方向向量
    • Scale Value:移动倍率,默认1.0
    • Force:勾选=强制移动,无视 IsMoveInputIgnored() 禁用状态

节点说明:

  1. EnhancedInputAction IA_Move:绑定W/S/A/D键盘按键
  2. Get Actor Forward Vector【获取Actor自身向前向量】
    • Target填Self,获取角色物体自身朝向的向前方向向量(物体蓝色箭头)
  3. Get Actor Right Vector【获取Actor自身向右向量】
    • Target填Self,获取角色物体自身朝向的向右方向向量(物体红色箭头)
  4. Add Movement Input(调用两次)
    • 第一个节点:处理前后W/S移动
    • 第二个节点:处理左右A/D移动
image.png

image.png

5.3 鼠标视角控制逻辑

基于 IA_Look 二维轴输入:

  1. EnhancedInputAction IA_Look

    • 对应输入资源 IA_Look,Value Type 设置为 Axis2D
    • 绑定鼠标 X(左右移动)、鼠标 Y(上下移动)
    • Triggered 执行引脚:鼠标发生移动时就触发执行这一串蓝图
    • Action Value:输出 Vector2D,X = 鼠标左右偏移量,Y = 鼠标上下偏移量
  2. Break Vector2D(拆解二维向量)

    • 接收 Action Value 的 Vector2D,拆开得到 X、Y 两个浮点数
    • X → 鼠标左右移动量
    • Y → 鼠标上下移动量
  3. Add Controller Yaw Input【左右摇头】

    • Yaw = 水平旋转(左右转头)
    • Val 引脚接入 Break Vector2D 的X
    • 作用:告诉控制器,水平方向旋转多少角度。
  4. Add Controller Pitch Input【上下抬头低头】

    • Pitch = 垂直旋转(抬头低头)
    • Val 引脚接入 Break Vector2D 的Y
    • 作用:告诉控制器,垂直方向旋转多少角度。

Target 全部填Self,代表操控当前这个玩家角色控制器。

image.png

image.png

Use Controller Rotation Yaw(取消勾选/取消控制器旋转Yaw)

参数位置:角色蓝图 → 选中Self(Pawn) → 细节面板 → Pawn分类下
Yaw:水平偏航旋转,也就是角色原地左右转身(绕Z轴旋转)

作用

  1. 解除【玩家控制器PlayerController】与【角色本体】水平旋转的硬绑定

    • ✅勾选开启:鼠标左右转动,角色本体直接跟着一起原地转身(第一人称FPS默认配置)。
    • ❌取消勾选:鼠标转动只旋转摄像机/弹簧臂,角色本体不会直接跟着鼠标原地转身,实现第三人称自由环绕镜头效果。
  2. 镜头和人物朝向解耦:鼠标可以随便转视角绕人物转圈,人物不会被动扭头。

⚠️注意:取消本项不等于人物不能转身。人物转身由另外两个参数控制:

  • Orient Rotation to Movement【旋转朝向运动】:勾选后,角色跑动时自动转向移动方向(RPG/闯关第三人称必备)
  • SpringArm弹簧臂组件开启 Use Pawn Control Rotation:保证鼠标依然可以正常转动相机,仅仅不让人物跟着转

勾选/取消效果对比

状态 表现场景 适用游戏
✅勾选 Use Controller Rotation Yaw 鼠标动,人物立刻水平转身;镜头和人物朝向强制同步 第一人称FPS
❌取消勾选 Use Controller Rotation Yaw 鼠标只转动镜头,人物不跟随鼠标转身;跑动时依靠Orient Rotation to Movement转向移动方向 第三人称TPS、动作闯关、开放世界

常见踩坑

  1. 如果取消Yaw勾选,但弹簧臂没有开启Use Pawn Control Rotation → 鼠标转动镜头完全无反应。
  2. 取消Yaw同时Orient Rotation to Movement也关闭:人物永远保持初始朝向,跑向哪个方向身体都不转。
  3. 第一人称必须勾选此项;第三人称几乎都要取消此项。
image.png

image.png

弹簧臂组件:使用Pawn控制旋转(Use Pawn Control Rotation)

设置位置:弹簧臂组件 → 摄像机设置 → 使用Pawn控制旋转,配套:继承Pitch、继承Yaw、继承Roll全部勾选。

核心作用

  1. 让弹簧臂接收玩家控制器(PlayerController)的鼠标旋转输入
    当角色Use Controller Rotation Yaw(Pawn细节面板)取消勾选后,角色本体不再跟随鼠标转动;开启本选项,鼠标旋转信号依然传递给弹簧臂,实现镜头环绕旋转。

这是第三人称的必备配对设置:

  • Pawn:取消「使用控制器旋转Yaw」→人物身体不跟着鼠标转头
  • SpringArm弹簧臂:勾选「使用Pawn控制旋转」→鼠标依然可以转动镜头
  1. 子项「继承Pitch / Yaw / Roll」
  • 继承Pitch:鼠标上下俯仰,控制镜头抬头低头,第三人称必须勾选
  • 继承Yaw:鼠标左右水平旋转,镜头绕人物水平转圈,第三人称必须勾选
  • 继承Roll:镜头翻滚,一般保留勾选,游戏中几乎不会触发

✅完整第三人称配对配置

对象 参数设置
角色Pawn本体 取消 Use Controller Rotation Yaw,人物身体不跟随鼠标旋转
弹簧臂SpringArm ✅勾选「使用Pawn控制旋转」;Pitch/Yaw/Roll全部勾选
角色Pawn本体 ✅开启 Orient Rotation to Movement(朝向运动旋转),跑动时身体自动转向移动方向

故障排查

  1. 弹簧臂不勾选【使用Pawn控制旋转】:鼠标移动镜头完全不动,即便写好了鼠标视角蓝图也无效。
  2. 弹簧臂勾选,但Pawn没有取消控制器Yaw:鼠标转动时,镜头+人物身体会一起原地转头,不是第三人称环绕镜头。
  3. 关闭继承Pitch,鼠标上下移动镜头不会俯仰;关闭继承Yaw,鼠标左右移动镜头不会转圈。

通俗理解

把鼠标的旋转信号“转接给弹簧臂”,不让人物本体接收,只让镜头接收。鼠标只转摄像机,人物身体只在跑动的时候才转向移动方向。


image.png

image.png

视角移动上下是反的。可以如下操作:


image.png

或者如下操作,选其中一种即可:


image.png
image.png

这时候运行,人物是朝前的。
设置将旋转朝向运动勾选即可。

image.png

image.png

六、项目运行效果

配置完成编译蓝图运行项目,实现效果:

  • WASD键盘控制角色移动
  • 鼠标控制视角旋转


    image.png
image.png

运动动画

动画蓝图的思路是:
混合空间1D:2D包含1D,但这里1D完全足够了,玩家只有前后动画移动,不需要平面8个方向的移动动画,比如斜向翻滚。每个动画配一个方案。
设置用户动画的参数
动画蓝图:绑定多个动画参数(混合空间1D),比如这里是拿到速度参数去执行基本移动动画。
拿速度:胖类主体-获取移动组件-获取速度(向量)-只需要向量的长度-转成变量输出给其他节点用。

/Game/Code/Character/Animation下面新建动画蓝图,命名ABP_ChallengeCharacter。
ABP_ChallengeCharacter。

image.png

image.png
image.png

创建混合空间1D,命名为BS1D_Challenge。

image.png

image.png

双击进入,设置水平坐标名称Speed,最小轴值0,最大600(移动速度0-600),网格划分选择2。与网格对齐勾选,平滑时间0.2(s,秒),平滑类型设置为“立方”。


image.png
image.png

将资产浏览器站立的动画拖到最左边,“MM_Idle”。


image.png

image.png

将MM_Run_Fwd拖到最右边。(Fwd就是forward缩写)。


按住Ctrl,然后鼠标在轴线上滑动可以预览每一帧效果。

ctrl+空格打开内容侧滑菜单,打开ABP_ChallengeCharacter。
在右侧资产浏览器将BS1D_Challenge拖入到AnimGraph中。

image.png

在事件列表绑定参数提供速度。


image.png
image.png
image.png

往上脱出一条线。选择“提升为变量,命名为”Speed“。


image.png
image.png

动画加载后就执行这个Set。


image.png

编译后有动效显示:


image.png

速度变量赋值。


image.png

编译后有动效显示:


image.png

动画蓝图和角色蓝图绑定。


image.png

image.png

image.png

编译运行:


image.png
image.png
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容