ue4中物体碰撞规则总结

本文总结了UE4中的物体碰撞规则,包括阻挡、重叠和忽略的设定,强调了模拟生成命中事件和生成重叠事件的重要性,以及如何在蓝图中处理碰撞和重叠事件。对于碰撞检测,讲解了不同碰撞类型下的行为,如阻挡、重叠和忽略的相互作用,并提供了测试和场景检视的注意事项。

物体碰撞规则

碰撞概述

关于碰撞的处理方式,需要记住几点规则:

1.阻挡 会设置为阻挡的两个(或更多)Actor之间自然发生。但是,需要启用 模拟生成命中事件(Simulation Generates Hit Events) 才能执行 事件命中,该功能在蓝图、可破坏物Actor、触发器等处使用。
2.将Actor设置为 重叠 往往看起来它们彼此 忽略,如果没有 生成重叠事件(Generate Overlap Events),则二者基本相同。
3.对于彼此阻挡的两个或更多模拟对象,它们都需要设置为阻挡相应的对象类型。
4.对于两个或更多模拟对象:如果一个设置为重叠对象,另一个设置为阻挡对象,则发生重叠,而不会发生阻挡。
5.即使一个对象会 阻挡 另一个对象,也 可以 生成重叠事件,尤其是高速运行的对象。
6.不建议一个对象同时拥有碰撞和重叠事件。虽然可以,但需要手动处理的部分太多。
7.如果一个对象设置为忽略,另一个设置为重叠,则不会触发重叠事件。

对于测试关卡和检视场景目的:

(1)默认的 在编辑器中运行 摄像机是一个Pawn。因此可以被设置为阻挡Pawn的任何对象阻挡。
(2)在编辑器中模拟 摄像机在处理任何事务之前不是Pawn。它可以自由穿过任何对象,不会造成任何碰撞或重叠事件。

碰撞和模拟生成命中事件**

通过将球体设置为 模拟生成命中事件(Simulation Generates Hit Events),球体就会告诉自己发生了碰撞。它会触发球体蓝图中的事件,
例如 ReceiveHit 或 OnComponentHit。

报告刚性碰撞的对象将汇报所有报告,包括它们坐在某个对象上

<think>嗯,用户这次问的是UE5中如何在Pawn蓝图中设置碰撞。结合引用内容来看,用户应该是个UE5开发者,正在处理角色或物体碰撞问题。 从引用[1]和[2]能提取关键信息:碰撞设置主要涉及两个层面——组件层级(如CapsuleComponent)和通道响应设置。用户特别提到"蓝图"操作,说明ta可能更倾向可视化方案而非纯代码方案。 需要区分几个概念:Character自带的胶囊体碰撞和普通Pawn的碰撞设置逻辑不同。引用[1]提到Character自带Capsule作为Root节点,而普通Pawn可能需要手动添加碰撞体。引用[2]则展示了C++中设置碰撞通道响应的代码逻辑,这在蓝图里对应Collision Presets功能。 用户可能遇到的典型场景是:Pawn与相机穿模(需要忽略相机通道),或是Pawn与环境物体错误交互(需要调整物体类型通道)。特别要注意引用[2]提到的ECC_Camera通道处理方案,这对第三人称游戏很重要。 考虑到用户使用蓝图,应该强调组件树的操作顺序:先添加碰撞组件作为根节点,再挂载网格体。引用[3]提到的控制器输入虽然无关碰撞,但暗示用户可能在制作可控角色,因此需要补充Pawn移动时的碰撞注意事项。 最终回复要突出三点:基础碰撞体创建路径(Box/Capsule/Sphere组件)、通道预设下拉菜单的位置、特定通道覆写方法。引用[1]末尾提到的CollisionPresets关键字正是蓝图里的核心设置项。 有点意外用户没问Character的碰撞处理,引用[1][2]都涉及Character组件,但问题明确指向Pawn。可能需要提醒Pawn与Character的碰撞差异——后者自动处理根组件碰撞,前者需手动设置。 </think>在UE5中对Pawn蓝图进行碰撞设置,可通过以下步骤实现(结合引用内容优化): --- ### **核心步骤** #### **1. 添加碰撞组件** - **操作路径**: 在Pawn蓝图的组件面板 → 添加 `Box Collision`/`Capsule Collision`/`Sphere Collision` 作为根组件 ```markdown * 优先选择胶囊体(Capsule)模拟角色体积 [^1] * 网格体(Mesh)应挂载在碰撞组件下方 ``` #### **2. 配置碰撞预设** - **关键设置位置**: 选中碰撞组件 → 细节面板 → `Collision Presets` 下拉菜单 ```markdown * 默认预设:选择 `Pawn` 或自定义规则 * 通道覆写:按需修改特定通道的响应(如忽略相机碰撞)[^2] ``` #### **3. 通道响应定制(高级)** - **屏蔽相机碰撞示例**: 在碰撞组件的细节面板中: ```markdown Collision Responses → Camera → 设置为 "Ignore" ``` * 作用:防止相机穿墙时被阻挡 [^2] * 等效代码:`SetCollisionResponseToChannel(ECC_Camera, ECR_Ignore)` #### **4. 网格体碰撞分离** - **注意事项**: ```markdown * 网格体(Skeletal Mesh)需单独设置碰撞响应 * 选中Mesh组件 → 重复步骤2/3,避免与角色主碰撞体冲突[^2] ``` #### **5. 碰撞调试** - **验证方式**: 场景中选中Pawn → 按 `' '` (空格键) 可视化碰撞体积 ```markdown * 红色:阻挡碰撞 * 绿色:重叠碰撞 ``` --- ### **重要补充** 1. **Character与Pawn差异** - Character类自带胶囊体碰撞,Pawn需手动添加 [^1] 2. **碰撞层级管理** - 在 `Project Settings → Collision` 中自定义通道和预设 3. **动态碰撞更新** - 运行时可通过蓝图节点 `Set Collision Enabled` 切换状态 > 提示:若使用头发组件(UGroomComponent),需在Build.cs添加 `HairStrandsCore` 模块并重新生成工程 [^1] ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值