[SOLVED] Particle system follows root bone of actual parent bone.

Hello there,

I’m facing a problem and I really won’t know where the issue is. I have two skinned characters, Mech3 and Mech4. They are different models but they have the same rigging structure (same number of bones, same names, etc.).

I made a script to control the rotation of the bone Spine1 for a first person controller with mouse movement.

Then I made a flamethrower with a wolrd simulated particle system for the fire effect. When I instantiate the particle System on the Spine1 of Mech3 all is good and well, Particle system emitter rotates normally with the rotation of Spine1.

When I do the same thing with Mech4 the emitter doesn’t follow Spine1 but HIPS (and consequently doesn’t follow the torso rotation of the character).

Here is an image of the two hierarchies during play mode:

alt text

Setting up particle systems to Local space simulation seems to settle the issue, but this is clearly not what I’m looking for.

I also made the particle system print their parent after instancing, and the parents are actually correct (as you can see from the image above).

I even tried to unparent and reparent the particle system to the weapon at start, but it didn’t make any difference.

It looks like a bug to me but… Am I missing something?

PS: here is a link to the web player scene so you can see the behaviour. Try Equipping the flame thrower on every mech. Mech 3 behaves correctly, Mech 4 have the issue I’m talking about.

I Finally solved this with a workaround (still think it’s a bug within unity that caused this).

I made the LookAtTarget GO (which was used to rotate the torso according to where the mouse was pointing) as the parent of all the weapons, then I made a script to force the object to follow the transform of the Spine1 bone in the rig.

Apparently the issue lays somewhere inside the skeleton, but it doesn’t have to do with joint orientation or other stuff.

Try to make a prefab of Mech3 and name if whatever you want or name it Mech4 and attach the script to it.
That may work.
You can make the prefab by clicking on create button in project window then select prefab & drag your Mech3 object from heirarchy window into the empty white prefab.

set the simulation space to world (instead of local)