Hierarchical Instanced Static Meshes are ignored in ray tracing

Hello, my HISMs are ignored when tracing by any request, but are working correctly if I need them to block something from moving through. I use OverlapBlockingTestByChannel() and EncroachingBlockingGeometry() to test collisions, the instanced meshes don’t block traces and don’t prevent intersecting objects from appearing.

Everything uses BlockAll preset (the Player, Roads HISMs, and a Box primitive I use in the following pictures)

This is my problem: the house (the box) is spawned intersecting the road (instanced static meshes I populate along spline).


.
.
.
However, the road’s collision works fine, because the player doesn’t fall through the road, even though nothing else uses any collisions. The ground itself had its collision turned off when I was testing this.

.
.
.
Just to clarify, when I use any simple primitive instead of HISM, everything works perfectly. For example, in this scenario, another box with the same settings I use for the road meshes prevents a house from spawning. So, it finds another place to spawn, a bit to the left, which is fine.

.
.
.
Help me please :melting_face:

1 Like

I solved it, the problem was that when you spawn numerous actors at once (road splines in my case), you can no longer rely on their immediate instantiation and therefore in my case PCG won’t see them neither during Load, nor during demanded Generate() during its owner’s BeginPlay().

Perhaps PSG has late callbacks for late actors, that’s my only explanation for why roads end up appearing even though PCG couldn’t find splines that didn’t already exist.

All in all, the problem was that the meshes appeared after the house was placed.

Update: the problem with late actors was in 5.3, after updating to 5.4 the problem went away even without custom workarounds with timers

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.