UE4 碰撞(Collsion)

简介:在场景中,碰撞是无时无刻都存在的,有些时候我们需要碰撞,有些时候我们不需要碰撞,想要把碰撞关闭,虚幻就提供了碰撞机制。能够很好的解决碰撞问题。

一、查看碰撞

二、删除和添加碰撞

三、碰撞属性介绍

四、碰撞事件和碰撞响应的工作原理

五、自定义碰撞

接下来就开始分析虚幻的碰撞机制:

1.查看碰撞:点开模型点开collsion

2.删除和添加碰撞

一般不推荐使用自动生成碰撞(不太是我们想要的碰撞)

3.碰撞属性介绍

 

4.碰撞事件

在了解碰撞事件之前,我们需要了解阻挡和重叠的含义。

阻挡:是指两个含有碰撞的物体只要接触就是阻挡,但是,需要启用 模拟生成命中事件(Simulation Generates Hit Events) 才能执行 事件命中,该功能在蓝图、可破坏物Actor、触发器等处使用。

重叠:两个含有碰撞的物体重叠到了一起,会发生重叠事件。

那么如何设置Hit事件和Overlap事件

参考案列:

 Hit事件:

一参数设置如下

 

Overlap事件:

如果禁用了 生成重叠事件(Generate Overlap Events),则不管目的为何,重叠 和 忽略 的效果完全相同。在此情况下,球体设置为重叠或忽略箱体:确保Generate Overlap Events处于开启状态。两个碰撞物体只要有一个是重叠就会生成重叠事件(Generate Overlap Events)。

 

 5.碰撞响应

 碰撞预设值:

默认(Default)

使用已在静态网格体编辑器中应用给静态网格体的设置。

自定义...(Custom...)

为此实例设置所有自定义碰撞设置。

NoCollision

无碰撞。

BlockAll

在默认情况下阻挡所有Actor的WorldStatic对象。所有新自定义信道都将使用其本身的默认响应。

OverlapAll

在默认情况下与所有Actor重叠的WorldStatic对象。所有新自定义信道都将使用其本身的默认响应。

BlockAllDynamic

在默认情况下阻挡所有Actor的WorldDynamic对象。所有新自定义信道都将使用其本身的默认响应。

OverlapAllDynamic

在默认情况下与所有Actor重叠的WorldDynamic对象。所有新自定义信道都将使用其本身的默认响应。

IngoreOnlyPawn

忽略Pawn和载具的WorldDynamic对象。所有其他信道都将设置为默认值。

OverlapOnlyPawn

与Pawn、摄像机和载具重叠的WorldDynamic对象。所有其他信道都将设置为默认值。

Pawn

Pawn对象。可用于任意可操作角色或AI的胶囊体。

Spectator

忽略除WorldStatic以外的所有其他Actor的Pawn对象。

CharacterMesh

用于角色网格体的Pawn对象。所有其他信道都将设置为默认值。

PhysicsActor

模拟Actor。

Destructible

可破坏物Actor。

InvisibleWall

不可见的WorldStatic对象。

InvisibleWallDynamic

不可见的WorldDynamic对象。

Trigger

用于触发器的WorldDynamic对象。所有其他信道都将设置为默认值。

Ragdoll

模拟骨架网格体组件。所有其他信道都将设置为默认值。

Vehicle

阻挡载具(Vehicle)、WorldStatic和WorldDynamic的载具对象。所有其他信道都将设置为默认值。

 碰撞启用:

属性

说明

无碰撞(No Collision)

在物理引擎中此形体将不具有任何表示。不可用于空间查询(光线投射、Sweep、重叠)或模拟(刚体、约束)。此设置可提供最佳性能,尤其是对于移动对象。

仅查询(Query Only)

此形体仅可用于空间查询(光线投射、Sweep和重叠)。不可用于模拟(刚体、约束)。对于角色运动和不需要物理模拟的对象,此设置非常有用。通过缩小物理模拟树中的数据来实现一些性能提升。

仅物理(Physics Only)

此形体仅可用于物理模拟(刚体、约束)。不可用于空间查询(光线投射、Sweep、重叠)。对于角色上不需要按骨骼进行检测的模拟次级运动,此设置非常有用。通过缩小查询树中的数据来实现一些性能提升。

启用碰撞(Collision Enabled)

此形体可用于空间查询(光线投射、Sweep、重叠)和模拟(刚体、约束)。

碰撞类型:

属性

说明

WorldStatic

应用于不移动的任意Actor。静态网格体Actor是类型可能为"WorldStatic"的Actor的良好示例。

WorldDynamic

WorldDynamic用于受到动画或代码的影响而移动的Actor类型;运动学。电梯和门是WorldDynamic Actor的典型例子。

Pawn

任何由玩家控制的实体的类型都应为Pawn。玩家角色是"对象类型(Object Type)"应为"Pawn"的Actor的典型例子。

PhysicsBody

由于物理模拟而移动的任意Actor。

载具(Vehicle)

此为载具的默认类型。

可破坏物(Destructible)

此为可破坏物网格体的默认类型。

碰撞响应:

追踪响应用于追踪(光线投射),例如蓝图节点 按信道进行线迹追踪(Line Trace by Channel)

属性

说明

可视性(Visibility)

泛型可视性测试信道。

摄像机(Camera)

通常用于从摄像机到某个对象的追踪。

对象响应:

属性

说明

WorldStatic

当与WorldStatic物理形体对象类型交互时,此物理形体应如何做出反应。

WorldDynamic

当与WorldDynamic物理形体对象类型交互时,此物理形体应如何做出反应。

Pawn

当与Pawn物理形体对象类型交互时,此物理形体应如何做出反应。

PhysicsBody

当与PhysicsBody物理形体对象类型交互时,此物理形体应如何做出反应。

载具(Vehicle)

当与"载具(Vehicle)"物理形体对象类型交互时,此物理形体应如何做出反应。

可破坏物(Destructible)

当与"可破坏物(Destructible)"物理形体对象类型交互时,此物理形体应如何做出反应。

6.自定义碰撞类型

打开项目设置->Collsion->添加检测

总结:碰撞需要根据实际情况来选择,不同的场景选择不通的碰撞。 

参考资料:虚幻官方https://docs.unrealengine.com/5.0/zh-CN/collision-response-reference-in-unreal-engine/

猜你喜欢

转载自blog.csdn.net/qq_43021038/article/details/125059696