当前位置: 首页 > backend >正文

虚幻引擎5-Unreal Engine笔记之Pawn与胶囊体的关系

虚幻引擎5-Unreal Engine笔记之Pawn与胶囊体的关系

在这里插入图片描述

code review!

文章目录

  • 虚幻引擎5-Unreal Engine笔记之Pawn与胶囊体的关系
    • 1. 什么是Pawn?
    • 2. 什么是胶囊体(Capsule Component)?
    • 3. Pawn与胶囊体的具体关系
      • (1)Pawn通常会包含一个胶囊体组件
      • (2)胶囊体通常是Pawn的根组件
      • (3)为什么选择胶囊体?
      • (4)Pawn必须有胶囊体吗?
    • 4. 代码示例
    • 5. 总结

1. 什么是Pawn?

  • Pawn 是UE中的一种Actor,代表可以被玩家或AI控制的角色或实体。
  • Pawn 本身并不包含具体的外形或碰撞体,需要通过组件(如Mesh、碰撞体等)来实现。

2. 什么是胶囊体(Capsule Component)?

  • 胶囊体(CapsuleComponent) 是UE常用的碰撞组件,形状像药丸(圆柱体两头带半球)。
  • 主要用于角色的物理碰撞检测,因为其形状适合大多数站立的人物、动物等。

3. Pawn与胶囊体的具体关系

(1)Pawn通常会包含一个胶囊体组件

  • 在UE5中,尤其是Character类(继承自Pawn)会在其根组件(Root Component)上添加一个UCapsuleComponent
  • 这个胶囊体用于:
    • 碰撞检测(防止角色穿墙、掉下地面等)
    • 物理模拟(推动、阻挡等)
    • 触发事件(如被击中、进入特定区域)

(2)胶囊体通常是Pawn的根组件

  • 在大多数情况下(如ACharacter),胶囊体是根组件,所有其他组件(如Mesh、摄像机等)都附着在它上面。
  • 这样,无论胶囊体如何移动,整个Pawn都会跟着动。

(3)为什么选择胶囊体?

  • 性能高:胶囊体计算效率高,适合实时游戏。
  • 形状适中:对人形角色来说,胶囊体既能覆盖大部分体积,又不会出现卡住角落的问题。

(4)Pawn必须有胶囊体吗?

  • 不是所有Pawn都必须有胶囊体,但如果希望Pawn能与世界有物理交互(碰撞、阻挡等),通常会添加一个碰撞体(最常见就是胶囊体)。
  • 也可以使用Box、Sphere等其他碰撞体,但胶囊体是角色类(Character)默认的选择。

4. 代码示例

// 以Character为例(Character继承自Pawn)ACharacter::ACharacter()
{// 创建胶囊体并设置为根组件CapsuleComponent = CreateDefaultSubobject<UCapsuleComponent>(TEXT("CapsuleComponent"));RootComponent = CapsuleComponent;// 添加Mesh并附着在胶囊体上Mesh = CreateDefaultSubobject<USkeletalMeshComponent>(TEXT("Mesh"));Mesh->SetupAttachment(CapsuleComponent);
}

5. 总结

  • Pawn是可被控制的实体,胶囊体是常见的碰撞体组件。
  • 胶囊体一般作为Pawn/Character的根组件,负责物理碰撞和触发检测。
  • 选择胶囊体是因为其适合角色形状、性能高、易于处理。

简化理解

UE5的Pawn通常“穿”着一个胶囊体,胶囊体负责碰撞检测和物理交互,是Pawn与世界互动的物理壳子。

http://www.xdnf.cn/news/7019.html

相关文章:

  • 【android bluetooth 协议分析 01】【HCI 层介绍 5】【SetEventMask命令介绍】
  • Elasticsearch 初步认识
  • 用 UniApp 构建习惯打卡 App —— HabitLoop 开发记
  • 【cursor】有效解决
  • Denoising Score Matching with Langevin Dynamics
  • 【HarmonyOS 5开发入门】DevEco Studio安装配置完全指南
  • Flink 的窗口机制
  • 【ant design】ant-design-vue 4.0实现主题色切换
  • 【软考 McCabe度量法】
  • 深入理解指针(6)
  • 基因编辑根治胰腺癌-陈墨仙
  • Raft 协议:分布式一致性算法的核心思想
  • 欢乐熊大话蓝牙知识4:GATT 协议全解:蓝牙传数据到底怎么传?
  • 费马小定理
  • 数学复习笔记 16
  • 【Linux网络编程】Socket编程:协议理论入门
  • 数据库的规范化设计方法---3种范式
  • AIStarter Windows 版本迎来重磅更新!模型插件工作流上线,支持 Ollama / ComfyUI 等多平台本地部署模型统一管理
  • FPC连接器的未来趋势:柔性时代的核心桥梁
  • 【Redis】Hash 哈希
  • opencv4.11生成ArUco标记 ArUco Marker
  • IP68防水Type-C连接器实测:水下1米浸泡72小时的生存挑战
  • CodeBuddy 开发 JSON 可视化工具实录:JsonVision 的诞生之旅
  • 广东省省考备考(第十三天5.17)——言语:接语选择题(听课后强化练习)
  • 永磁同步电机公式总结——反电动势、磁链、转矩公式;三项、两项电压方程;坐标表换方程
  • 通过多线程获取VENC的H264码流数据
  • 11.1 LangGraph生产级AI Agent开发:状态管理与多智能体系统构建全解析
  • RAID学习笔记
  • USB和串口软件编程控制继电器通断
  • windows系统各版本下载