Probably the only solution, I’ve looked into adding blueprint wrapped static mesh to the foliage tool and from what I see its not supported.
Feel like I “jumped the shark” a little with offsetting the mesh vertices to height field unconstrained. should use min/max bounds to maintain valid collision simulation.
The way I am blending with the Landscape material looks ugly because using UV’s from the mesh so textures don’t map-align to the landscape. Also I only support single material so fails when mesh covers multiple Landscape layers.
My original intent was to just cleanup intersection of instanced mesh with height field, my allowance for going back and painting around instances actually is not good when there could be thousands of instances, like with trees. To truly maintain procedural solution and also include material blending from mesh-to-landscape I think decal ‘automatic placement’ (link) is a good start. But like points out that can become draw-call heavy.
Could add ‘decals as ISMs’ to blend mesh to the Landscape as suggested by Deathrey (link) but how can this be done procedural since the foliage tool is needed ?
All Foliage ISMs can be iterated over at game start to procedural implement a mesh-to-Landscape blend solution, see this post Iterate over foliage ISMs. If InstancedStaticMesh class can be extended to support unique custom UVs per-instance then could get Landscape Layer and store weights per-vertex to blend into height field. World UVs can be calculated to get clean mapping of Landscape material to mesh. This would be trade off from heavy draw-calls with decals to a heavy material but imo the later is the better solution.
So I got my answer on how to sample height field from a static mesh, learned some new UE4 decal/ISM stuff and I’ve challenged myself to extend my Material to include material-blend-to-landscape. Overall fantastic first experience on forums, thanks everyone