keywords: [UE4]Add Customized Collision for Static Mesh

对于结构简单的模型,使用UE4自动生成的Simple Collision没什么问题;如果模型结构复杂,使用Simple Collision不够精准,使用Complex Collision对于实时计算(比如开放世界大场景的游戏项目)的项目来说太耗。

UE4中自定义碰撞盒

Static Mesh默认打开后:

勾选 Simple Collision

然后选中 Collision,按Delete键删掉

然后点击菜单 Collision -》 Add Box Simplified Collision

然后就可以按W、E、R键修改 Box的坐标、转向、缩放等

缩放比例默认是0.5倍,也可以调整为更小的比例:

如果一个box无法恰好包裹整个物体,可以使用多个Box组合,例如:

官方文档:
Setting Up Collisions With Static Meshes
https://docs.unrealengine.com/en-us/Engine/Content/Types/StaticMeshes/HowTo/SettingCollision

Auto Converx Collsion

如果是常规的模型,比如石头,可使用UE自带的凸包(Converx Hull)生成工具:

UE自带的凸包生成不是很精准,碰撞会与mesh本身重叠,当通过碰撞来判断子弹弹痕贴花位置时,很容易穿帮。

为解决此问题,可使用Houdini的凸包生成,效果如下:
HIP下载地址:generate_collision_for_unreal.hip

在3DMax、Maya中创建自定义碰撞盒

UE4编辑器中虽然提供了添加自定义碰撞盒的功能,但是编辑起来不够灵活,对于特殊形状的物体,建议在建模软件中创建自定义碰撞盒。

1,比如U型物体,UE4自动生成的碰撞盒子是这样的:
简单碰撞

复杂碰撞

2,我们在建模软件中(这里以Maya为例),为U型物体添加三块遮挡方块

将U型物体和3个方块合成一个Group,并且碰撞盒子的命名一定要遵循规则:UCX_主物体名XXX。例如:主物体名称为pCylinder,则碰撞盒子的名称必须为:UCX_pCylinderXXX,否则导入UE4后这3个方块会被当作真实物体而不是碰撞体。

然后导出FBX文件,导入UE4时,去掉勾选:Auto Generate Collision;如果碰撞盒子没有和模型合成一个Group,还需要勾选:Combine Meshes。这里我们已经在Maya进行了Group操作,所以可以不用勾选 Combine Meshes。

导入UE4后,编辑器中打开该物体,然后勾选:Collision -》 Simple Collision

就可以看到3块自定义碰撞盒。

2022-09-14更新

当有多个ucx时,命名规则为: UCX_主体名称_1, UCX_主体名称_2, UCX_主体名称_3,而不能是 UCX_主体名称xxx(旧版本规则)。

复杂外形的UCX碰撞设置

如果勾选One Convex Hull Per UCX(默认已勾选),则UCX mesh生成碰撞时,会将凹下的部位调整为凸出状。
不勾选则表示使用UCX原始的形状。

同时不要勾选Generate Missing Collision


小时候有无数个梦想,现在只想好好生活。