Description

Counter intuitively, static mesh components do not enable bUseDefaultCollision by default, and uses the "BlockAllDynamic" profile. AStaticMeshActors on the other hand, do enable bUseDefaultCollision by default and use "BlockAll". These should each have the same default profile and have bUseDefaultCollision enabled by default. The 'Reset to Default' arrow for the collision profile should also reset to "Default"(bUseDefaultCollision = true) in this case. 

There also doesn't seem to be any easy way to programmatically set the static mesh component's collision profile back to default, as calling SetCollisionProfileName with "Default" does not work. This can be done in c++ by setting bUseDefaultCollision = true and calling UpdateCollisionFromStaticMesh, but neither are exposed to blueprints.

Steps to Reproduce

Place a static mesh in the level (creating a static mesh actor).

Notice that the actor's static mesh component Collision Preset is "Default" as expected.

Change the preset to something else, then click the yellow 'Reset to Default' arrow that appears.

Notice that the preset resets to "BlockAll".

Expected: The 'Reset to Default' arrow would reset the preset to "Default"

 

Create a new actor and place a static mesh in its component hierarchy (creating a static mesh component).

Notice that the plain actor's static mesh component Collision Preset is "BlockAllDynamic".

Expected: UStaticMeshComponents should use the collision of their static mesh asset by default.

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-86517 in the post.

1
Login to Vote

Unresolved
ComponentPhysics
Affects Versions4.24
Target Fix4.26
CreatedJan 9, 2020
UpdatedJan 23, 2020