虚幻引擎5-Unreal Engine笔记之Default Pawn与GamMode、Camera的关系

虚幻引擎5-Unreal Engine笔记之Default Pawn与GamMode、Camera的关系

code review!

文章目录

  • [虚幻引擎5-Unreal Engine笔记之Default Pawn与GamMode、Camera的关系](#虚幻引擎5-Unreal Engine笔记之Default Pawn与GamMode、Camera的关系)
    • [1.`Default Pawn`与`Camera`的关系](#1.Default PawnCamera的关系)
      • [1.1. Default Pawn 是什么?](#1.1. Default Pawn 是什么?)
      • [1.2. Default Pawn 的主要组件](#1.2. Default Pawn 的主要组件)
      • [1.3. DefaultPawn 的常见应用场景](#1.3. DefaultPawn 的常见应用场景)
      • [1.4. 如何使用 Default Pawn?](#1.4. 如何使用 Default Pawn?)
      • [1.5. Default Pawn 与 Character 的区别](#1.5. Default Pawn 与 Character 的区别)
      • [1.6. 常见问题](#1.6. 常见问题)
    • [2.Default Pawn 和GamMode Override的关系](#2.Default Pawn 和GamMode Override的关系)
      • [2.1. GameMode 的作用](#2.1. GameMode 的作用)
      • [2.2. GameMode Override None 的含义](#2.2. GameMode Override None 的含义)
      • [2.3. Default Pawn 与 GameMode 的关系](#2.3. Default Pawn 与 GameMode 的关系)
      • [2.4. 实际举例](#2.4. 实际举例)
      • [2.5. 常见误区](#2.5. 常见误区)
    • 3.DefaultPawn的蓝图可以查看吗?

1.Default PawnCamera的关系

在Unreal Engine 5(UE5)中,Default Pawn 是引擎自带的一种默认角色类,主要用来快速实现基本的玩家控制和摄像机跟随。下面详细介绍一下 Default Pawn 在 UE5 中的作用、特点以及常见用法。

1.1. Default Pawn 是什么?

DefaultPawn 是 Unreal Engine 提供的一个基础 Pawn(棋子/角色)类,继承自 APawn。它带有一些内置的功能,比如:

  • 内置的球体碰撞体(Sphere Collision)
  • 内置的移动组件(Floating Pawn Movement)
  • 默认的摄像机和弹簧臂(Camera + Spring Arm)
  • 支持 WASD(或手柄)移动和鼠标(或右摇杆)控制视角

它广泛用于快速原型开发和测试。

  • Pawn:Pawn 是游戏世界中的一个可以被玩家或 AI 控制的实体。

  • Default Pawn:GameMode 中设置的 Default Pawn Class,决定了游戏开始时玩家默认拥有和控制的 Pawn 类型。

  • PlayerController:玩家输入通过 PlayerController 控制 Pawn。

  • DefaultPawn 适合用来做摄像机自由移动、测试、上帝视角等不需要复杂动画和物理的场景。

  • 如果项目需要角色动画、物理碰撞、AI 行为,请用 Character 类型。

1.2. Default Pawn 的主要组件

  • Root Component:通常是一个球体碰撞体(USphereComponent)。
  • Movement Component:UFloatingPawnMovement,让 Pawn 能在场景中自由移动。
  • Camera & Spring Arm:用于第三人称或自由视角观察。

Default Pawn 结构示意

1.3. DefaultPawn 的常见应用场景

  • 第三人称自由摄像机(如编辑器视角、上帝视角)
  • 过渡/临时 Pawn(比如用来调试关卡时快速飞行)
  • 最基本的玩家控制器,不涉及人物动画或复杂逻辑

1.4. 如何使用 Default Pawn?

1.4.1.蓝图方式
  1. 在"内容浏览器"中新建蓝图类,父类选择 DefaultPawn
  2. 打开蓝图,编辑或扩展其功能(比如添加自定义组件或逻辑)。
  3. 在"世界设置"中,将 Default Pawn Class 设为自己的 Pawn 蓝图。
  4. 运行游戏,可以用 WASD 控制移动,鼠标控制视角。
1.4.2.C++ 方式
cpp 复制代码
// 继承 DefaultPawn
class AMyPawn : public ADefaultPawn
{
    GENERATED_BODY()
    // 可添加自定义组件或逻辑
};

然后在 GameMode 里设置:

cpp 复制代码
DefaultPawnClass = AMyPawn::StaticClass();

1.5. Default Pawn 与 Character 的区别

  • DefaultPawn:没有角色骨骼和动画系统,只有简单移动和摄像机。
  • Character:继承自 Pawn,带有角色骨骼、动画蓝图、碰撞胶囊体、角色移动组件,适用于需要动画和物理的角色。
Default Pawn Character
动画 有(支持骨骼动画)
移动 简单(浮空移动) 复杂(行走、跳跃、蹲伏等)
用途 摄像机、自由移动 真实角色控制

1.6. 常见问题

  1. 为什么镜头会穿墙?
    因为默认的摄像机碰撞体积较小,可能需要自定义 SpringArm 的碰撞参数。
  2. 如何添加鼠标控制?
    默认已内置基础鼠标控制,可以通过蓝图或输入映射修改。
  3. 如何让 DefaultPawn 悬浮/飞行?
    默认带有 FloatingPawnMovement,支持六自由度飞行

2.Default Pawn 和GamMode Override的关系

在**Unreal Engine 5(UE5)**中,Default PawnGameMode(尤其是 GameMode Override None)之间的关系,是许多新手开发者经常困惑的问题。下面详细解释它们的作用与相互关系:

2.1. GameMode 的作用

  • GameMode 决定了关卡的基本规则,包括:

  • 玩家使用的 Pawn(Default Pawn Class)

  • 玩家使用的 PlayerController

  • 游戏的胜负条件、重生机制等

  • 每个关卡可以指定自己的 GameMode,也可以继承全局的 GameMode。

2.2. GameMode Override None 的含义

  • 在关卡的 World Settings 里有一项 GameMode Override。
  • 如果设置为 None,意思是本关卡不会覆写项目默认的 GameMode,会使用项目设置(Project Settings > Maps & Modes)里的 Default GameMode。
  • 如果选择了某个 GameMode(比如 MyGameMode),那么本关卡就会采用这个 GameMode 的 Default Pawn、PlayerController 等设置。

2.3. Default Pawn 与 GameMode 的关系

  • GameMode 决定 Default Pawn
  • GameMode 有一个设置项叫 Default Pawn Class。
  • 游戏开始时,GameMode 会为每个玩家生成一个 Pawn,类型就是 Default Pawn Class。
  • 如果 GameMode Override 为 None
  • 关卡会用项目设置里的 Default GameMode。
  • 也就用那个 GameMode 里的 Default Pawn Class 生成 Pawn。
  • 如果 GameMode Override 为自定义 GameMode
  • 则用自定义 GameMode 的 Default Pawn Class。

2.4. 实际举例

假设项目设置如下:

  • Project Settings > Maps & Modes
  • Default GameMode = MyGameMode
  • MyGameMode 里 Default Pawn Class = MyPawn

现在有两个关卡:

  • LevelA
  • GameMode Override = None
  • → 开始游戏时,玩家会控制 MyPawn
  • LevelB
  • GameMode Override = AnotherGameMode
  • AnotherGameMode 里 Default Pawn Class = AnotherPawn
  • → 开始游戏时,玩家会控制 AnotherPawn

2.5. 常见误区

  • 不能单独设置 Default Pawn,而忽略 GameMode 的影响。

  • 只要想要更换玩家默认控制的 Pawn,应该新建一个 GameMode 并设置其 Default Pawn Class,再在关卡里指定 GameMode Override。

  • Default Pawn Class 是由 GameMode 控制的。

  • GameMode Override = None,就用项目默认的 GameMode 及其 Default Pawn。

  • GameMode Override = 自定义GameMode,就用那个 GameMode 的 Default Pawn。

  • Default Pawn 和 GameMode 是紧密关联的,不能分开单独设置。

3.DefaultPawn的蓝图可以查看吗?

3.1.答案

可以,但有区别:

  • DefaultPawn 是引擎自带的 C++ 类,不是蓝图类,因此不能直接在内容浏览器中看到它的蓝图文件。
  • 可以创建自己的 DefaultPawn 派生蓝图类,然后完全可视化修改和查看!
  • 内置 DefaultPawn 不是蓝图,但可以自定义蓝图派生类来"查看"和拓展它。
  • 实际开发中推荐创建自己的蓝图 Pawn,这样可视化操作、扩展性最好。

3.2. 引擎自带的 DefaultPawn

  • DefaultPawn 是 Unreal Engine 内置的 C++ 类,位于引擎源码中。
  • 它的C++源码在 Engine/Source/Runtime/Engine/Classes/GameFramework/DefaultPawn.h
  • 它本身不是蓝图类,所以在内容浏览器里直接找不到 "DefaultPawn"的蓝图。

3.3. 如何"查看"或"修改"DefaultPawn的蓝图?

方法A:派生自己的蓝图类
  1. 在内容浏览器里,右键 > 蓝图类 > 搜索并选择 DefaultPawn 作为父类。
  2. 命名并创建蓝图类(比如 BP_MyDefaultPawn)。
  3. 打开这个蓝图类,就能看到和编辑它的所有组件、变量、事件、函数等。
  4. 在 GameMode 里把 Default Pawn Class 设置成蓝图类。
方法B:查看引擎C++源码(可选)
  • 如果对C++感兴趣,可以在引擎安装目录下查看 DefaultPawn 的 C++ 实现,了解它的默认行为。
相关推荐
致***锌2 小时前
期货与期权市场基本原理是什么?
笔记
幻奏岚音4 小时前
统计学(第8版)——假设检验学习笔记(考试用)
笔记·学习·算法
nenchoumi31195 小时前
UE5 学习系列(一)创建一个游戏工程
c++·学习·游戏·ue5
泽韦德5 小时前
【Redis】笔记|第10节|京东HotKey实现多级缓存架构
redis·笔记·缓存
2301_790225885 小时前
unity加载资源学习笔记
笔记·学习
小前端大牛马6 小时前
java教程笔记(十四)-线程池
java·笔记·python
寻丶幽风7 小时前
论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
论文阅读·笔记·深度学习·网络安全·差分测试
KENYCHEN奉孝7 小时前
Django 5 学习笔记总纲
笔记·学习·django
teeeeeeemo8 小时前
Vue数据响应式原理解析
前端·javascript·vue.js·笔记·前端框架·vue
蒙奇D索大8 小时前
【11408学习记录】考研数学攻坚:行列式本质、性质与计算全突破
笔记·学习·线性代数·考研·机器学习·改行学it