Find Collision UV on Procedural Mesh Component broken

My goal is to build a system through blueprints that enables enable the player to draw on surfaces that are created at runtime.

All neccessary settings have been applied (Support UV From Hit Results, Restart Editor etc.), Materials and Blueprints have been prepared according to [this Tutorial][1]

I’ve broken it down to the most simple setup i could think of:
Inside a BP Actor
→ Add Procedural Mesh Component
→ Generate Box Variables (Vertices, UVs etc.)
→ Add A Mesh Section with collision using these Values.

When creating this mesh through the Construction Script it will work right away. Moving exactly the same nodes over to the Event Graph and running them on EventBeginPlay instead (or later on) will break the Find Collision UV functionality - it will return 0,0.

Collision seems to work fine, even when the mesh is created through the Event Graph. I’ve tried to turn on and off pretty much every setting related to collision, physics and UVs but i can’t get the “Find Collision UV” work with meshes created at runtime.

Can anyone provide any insight on this? Is it a bug, developer intention, or is it just not possible for some other reason? Let’s find out what’s wrong!

Hello,

We’ve recently made a switch to a new bug reporting method using a more structured form. Please visit the link below for more details and report the issue using the new Bug Submission Form. Feel free to continue to use this thread for community discussion around the issue.

https://forums.unrealengine.com/unreal-engine/announcements-and-releases/1410408-unreal-engine-bug-submission-form

Thanks

I also recently encountered this issue and did the following work around:

  1. Get FaceIndex from hitresult
  2. Use this to lookup the IndexBuffer of procedural mesh section, i.e Section->ProcIndexBuffer
  3. Calculate the UV in similar fashion as in UBodySetup->CalcUVAtLocation

Basically i created 2 new Blueprint Library functions for convenience:

  1. FindProcCollisionUV
  2. CalcProcUVAtLocation