When a ParticleEmitter is parented to the Terrain object, then the particles are not emitted over the entire area of the Terrain. For example, there are no particles emitted at the outer 10-20% of the Terrain.
To Replicate:
Generate a Terrain of massive size
Add a ParticleEmitter to the Terrain
View that the particles are not emitted on the outer parts of the terrain
AFAIK, particles don’t emit from the actual terrain voxels, and I wouldn’t think that they could/should. Terrains aren’t parts, they can’t really be assigned particles that emit from its body, that’s just not how it works.
After testing this out myself, I’ve realized that having a clear terrain, with a childed ParticleEmitter generates particles, despite the lack of terrain, and pertaining to no voxel, size of the terrain, or anything. Generate anything you want, particles will always emit from one size invisible “volume.” That is how you are seeing particles not spread to Massive terrain, why I recently saw particles outside the perimeter of a Medium terrain, and why I still see a huge box of particles despite no terrain.
I’m no coding wizard, nor a smart person when it comes to terrain, so sadly, I won’t give you any of those super advanced raycasting solutions, as I have no idea if it would be feasable. However… I would suggest:
That you take your terrain, and export it as a .OBJ to blender.
There, you could cut the bottom and side of the mesh to achieve a mesh that covers the top of the terrain.
You would have to heavily use decimate modifiers and splitting the mesh to achieve the tris count.
Then you’d import this back into studio, place the terrain cover over your actual terrain, disable canCollide, anchor it, and put the same particles under each meshpart.
(If blender, and this whole process isn’t your thing, I’d gladly offer for you to reach out to me, and I’ll get it done for you.)
Even if this were possible, do not do this. There is a maximum number of particles that can be emitted for performance reasons (decreased further with graphics level), and the emitter isn’t smart enough to prioritize and spawn particles near your camera/character – instead, it would just decrease the amount of particles spawned uniformly.
Instead, you should make a smaller emitter that you move with the character, so the player always sees particles, and you’re not exhausting the particle budget by creating particles across your whole place.
And there’s that. Personally, I recommend creating something similar to a chunk system where you only have particles within a radius of x studs. Could be done with my previous suggestion by dividing up the mesh into bits and pieces that function as chunks.
If you don’t necessarily want particles to come out of terrain at the correct height (so it looks like it actually comes out of the terrain), you could do what Echo said: welding a brick to the character upon spawn, and your emitter attached to it (one of multiple ways to do the same thing).