# Emitting particles from a skinned mesh renderer with local space not behaving as expected?

I’m trying to recreate this effect that this hero has on him. Icicles spawning all over his mesh. I’m not talking about the character shader but the particles:

As you can see in the video of Dota, the particles are falling down and staying local to the movement of the character.

When doing something similar in Unity I’m getting weird offsets on the particles,
desprite have the normal offset to 0 and the particles spawned locally. It seems like the whole particle system rotates as my character is moving amongst other things. Look at the particles around his shovel and they are offset compared to where the shovel is. My particle system is spawned locally and it is not parented to anything.
How can I achieve the same effect in Unity? Specifically how can I make the particles spawn right on the mesh while it is moving.

The videos are unavailable for me

1 Like

Is it just that the particles are local to the Transform of the character, and you want them to be relative to the bone that they spawned on?

You’re saying that when using a skinned mesh renderer it’s spawning based the bones? I thought it was per vertex. This would explain what’s going on indeed.
As you can see it’s all offset on my character I just want them to not spawn randomly around my character but on the character itself. (When the character is not moving in editor mode at the end of the video, the particles are all sticking to his body, this is what I want but in movement).

No, I didn’t say that at all, I asked what behaviour you were hoping for

Anyway, I think you told me: local to the vertex they are spawned on (i.e the transform obtained by blending the bone matrices by the weights for the given vertex).

Unfortunately we just spawn them on the vertex (or polygon) and then forget about the source position - i.e. they have no knowledge of their source vertex, or bones. So their movement can only be local to the transform of the character. It would be quite a large amount of work to support a source transform per-particle, I don’t think it will ever happen in the current Particle System, but once we support Skinned Mesh emission in the upcoming Visual Effect Graph, it will be possible to achieve what you’re after by using that.

Ok I understand what you say, but what I want seems doable with the particle system because it’s half way there when I put the particle system in World (except for the fact that it’s not moving with the character in World which is normal).

Now I understand why I was having trouble with local space: local space means the root joint of the skinned mesh renderer. Meaning that it will move just like the root joint does which is not what I want, what I want is move just the transform parent.
Normally local is just the space you’re in relative to your parents but in this case it’s not.

I tried using a custom space to no avail, it offsets the particle system way off in the distance, no matter what Transfrom I set it to.

So the closest result I had to Dota is using World Space + Inherit Velocity (mode:current and multiplier:1). It’s almost what I want but it’s not quite it and it’s a gimmick and the thing I really need is a custom space of the transform of the creature. However like I mentioned custom space always offsets my particle in the same way no matter which transform I set the custom space to.