Skip to main content

碰撞预设编辑器

概述

碰撞预设编辑器提供了新建、修改碰撞预设配置的功能。

image-20230316150930737

编号名称说明
1碰撞通道(Collision Channel)面板显示已有碰撞通道的名称以及响应类型;在该面板中可创建新碰撞通道或编辑、删除已有碰撞通道。
2碰撞预设(Collision Preset)面板显示已有碰撞预设的名称(Name)、碰撞类型(启用碰撞(Collision Enabled))、碰撞通道(Collision Channel)以及预设描述(Description);在该面板中可创建新碰撞预设或编辑、删除已有碰撞预设。

默认碰撞预设类型

在创建项目时,引擎默认创建10种碰撞预设类型。

image-20230316132633843

预设名说明
NoCollision与所有的游戏对象(Game Object)都无碰撞。
BlockAll通常用于阻挡所有游戏对象的静态对象。
默认碰撞通道(Collision Channel) = 世界静态(WorldStatic), 对所有通道碰撞响应为阻挡(Block)。
BlockAllDynamic通常用于与场景中所有游戏对象碰撞的动态对象。
默认碰撞通道(Collision Channel)= 世界动态(WorldDynamic),对所有通道碰撞响应为阻挡(Block)。
OverlapAll通常用于与场景中所有游戏对象产生重叠的静态对象。
默认碰撞通道(Collision Channel) = 世界静态(WorldStatic), 对所有通道碰撞响应为重叠(Overlap)。
OverlapAllDynamic通常用于与场景中所有游戏对象产生重叠的动态对象。
默认碰撞通道(Collision Channel) = 世界动态(WorldDynamic),对所有通道碰撞响应为重叠(Overlap)。
Pawn通常用于玩家或者AI操作的角色。
默认碰撞通道(Collision Channel) = Pawn, 对所有通道碰撞响应为阻挡(Block)。
Destructible通常用于可破坏物体。
默认碰撞通道(Collision Channel) = 可破坏的(Destructible),对所有通道碰撞响应为阻挡(Block)。
VehicleWheel通常用于载具车轮。
默认碰撞通道(Collision Channel) = 载具(Vehicle),对所有通道碰撞响应为忽略(Ignore)。
UI通常用于界面游戏对象(Game Object),与所有物体无碰撞。
默认碰撞通道(Collision Channel) = 世界动态(WorldDynamic),对所有通道碰撞响应为重叠(Overlap)。
Trigger通常用于物理触发器。
默认碰撞通道(Collision Channel) = 触发器(Trigger),忽略世界静态(WorldStatic),对其他通道碰撞响应为重叠(Overlap)。
也就是说静态对象进入触发器范围,默认不触发事件。

碰撞通道

碰撞通道(Collision Channel)可以决定组件自身的碰撞通道类型,并且在被碰撞物体的碰撞响应(Collision Response)属性中索引碰撞结果的类型。

image-20230315104836565

属性说明
名称(Name)碰撞通道的名称。
碰撞响应(Collision Response)该通道的默认碰撞响应值。

注:一共有32种通道类型,其中引擎使用的通道类型有14种,可供用户自定义的通道类型有18种。

引擎定义的通道类型的详细介绍可参考碰撞预设属性中的碰撞通道部分。

碰撞预设

image-20230315110018398

属性说明
预设名称(Preset Name)碰撞预设名称。
启用碰撞(Collision Enabled)该碰撞预设默认的碰撞类型。决定组件是否创建物理, 决定组件的碰撞体是否在物理模拟或者场景碰撞查询中参与碰撞检测。
碰撞通道(Collision Channel)使用该碰撞预设的对象默认所属通道。物理模拟时,碰撞对象检索自身对该碰撞通道的碰撞响应,做出响应反馈。
描述(Description)描述该碰撞预设。

编辑器保存后资源

碰撞预设的设置的默认保存位置:%Resource%\CProfileSettings(.ini)

打开碰撞预设编辑器

在组件编辑器中依次点击菜单栏配置(Config) -> 碰撞预设(Collision Preset)来打开碰撞预设编辑器。

image-20230315114106788

新建碰撞通道

在碰撞预设编辑器的碰撞通道(Collision Channel)面板中点击创建(Create)按钮,在弹出的新通道(New Channel)窗口中,输入通道名称(Name),并选择一个默认响应(Default Response)类型,点击确定(OK)按钮完成创建。

image-20230315131354640

碰撞通道属性

image-20230315163724424

属性说明
名称(Name)碰撞通道的名称。
默认响应(Default Response)设置默认碰撞响应值,碰撞检测时对该通道的默认值。创建一个新碰撞通道后,在已存在的碰撞预设中,会为新增的碰撞通道默认配置此碰撞响应类型。创建新碰撞预设时也同样如此。
可选碰撞响应值:
  • 阻挡(Block):物体与对应通道类型的物体会产生碰撞。
  • 重叠(Overlap):物体与对应通道类型的物体不会产生碰撞,但会生成穿透事件。
  • 忽略(Ignore):物体忽略与对应通道类型的物体的碰撞。

修改碰撞通道

碰撞通道(Collision Channel)面板中选中要修改的碰撞通道,点击编辑(Edit)按钮,在弹出的编辑通道(Edit Channel)窗口中可修改该通道的名称(Name)默认响应(Default Response),点击确定(OK)按钮完成修改。

image-20230316102208516

删除碰撞通道

碰撞通道(Collision Channel)面板中选中要删除的碰撞通道,点击删除(Delete)按钮完成删除。

image-20230315135738966

新建碰撞预设

碰撞预设(Collision Preset)面板中点击创建(Create)按钮 ,在弹出的新碰撞预设(New Collision Preset)窗口中设置新碰撞预设的相关属性。

image-20230323093341092

创建完成:

image-20230315142144584

碰撞预设属性

image-20230323093633048

属性说明
预设名称(Preset Name)碰撞预设的名称。
启用碰撞(Collision Enabled)该碰撞预设默认的碰撞类型。
  • 无碰撞(No Collision):组件的碰撞体不参与任何碰撞检测,这种情况下组件不会创建物理。
  • 仅查询(Query Only):组件的碰撞体仅在场景碰撞查询中参与碰撞检测。
  • 仅物理仿真(Physics Only):组件的碰撞体仅在物理模拟中参与碰撞检测。
  • 查询与物理仿真(Query And Physics):组件的碰撞体在场景碰撞查询和物理模拟中都参与碰撞检测。
碰撞通道(Collision Channel)设置自身默认碰撞通道。
引擎定义的碰撞通道(Collision Channel)类型:
  • WorldStatic Channel:场景上位置不会发生改变的静态对象应使用该通道。
  • WorldDynamic Channel:场景上位置可能发生改变的动态对象应使用该通道。如通过物理模拟或者代码控制改变位置(运动学)的物体。
  • Pawn Channel:由玩家或者AI控制位移,代表角色的物体应使用该通道。受动画影响的布娃娃碰撞体也会默认使用该通道。
  • Vehicle Channel:载具类型对象默认使用该通道。
  • Destructible Channel:破碎类型对象默认使用该通道。
  • Visibility Channel:可视性碰撞检测通道。
  • Camera Channel:相机与其他对象的碰撞检测通道。
  • Trigger Channel:触发器专用通道。
描述(Description)描述该碰撞预设。

碰撞响应

为该碰撞预设的每一个碰撞通道设置碰撞响应值,初始值为碰撞通道中设置的默认值。

image-20230323093735860

修改碰撞预设

碰撞预设(Collision Preset)面板中选中要修改的碰撞预设,点击编辑(Edit)按钮后,可在弹出的编辑碰撞预设(Edit Collision Preset)窗口中修改该碰撞预设的相关属性。

image-20230323095430972

删除碰撞预设

碰撞预设(Collision Preset)面板中选中要删除的碰撞预设,点击删除(Delete)按钮即可删除选中的碰撞预设。

image-20230315143422749

有关碰撞判定方式的相关内容可在常用物理属性文档中的关于碰撞的判定方式部分查看。