'Shape - Align to Direction' can rotate particles oddly.

2021.1.28f1 (SRP)

  1. Open unity in any project / scene.
  2. Create a particle system(PS) in the scene.
  3. Create and assign PS a material with any directional cues, like an arrow.
  4. Set the Start Speed to 0.
  5. Start Size: 0.5
  6. For emission remove rate over time and set a burst with a Count of 12.
  7. Set the shape to this example.
  • Shape: Circle
  • Radius Thickness: 0.
  • Mode: Burst Spread.
  • Align To Direction: ON.
  1. → Observe the particles as they flip on one side!
    7976370--1023648--upload_2022-3-18_20-11-58.png

Furthermore, when rotating the system with a Simulation Space: World or rotating the shape module, particles get non-intuitive vectors.
9. In PS, set the Shape Rotation to 90,45,45.
10. Observe the particles.
11. → Particles are rotated oddly.
7976370--1023651--upload_2022-3-18_20-15-0.png

  1. set the simulation space to world
  2. rotate the entire system and observe the particles
  3. —> rotations are now severely non-intuitive

I think Shiriken Systems have other issues with rotation. The Custom Vertex Stream: ‘Rotation.xyz’ doesn’t track rotation for a variety of Shiriken parameters. Example, Noise rotation (there are more).

We have a known issue where the direction flips for each half of the circle.

I believe we have very recently fixed this particular issue - shape module rotations were being ignored by the align to direction feature. unfortunately the fix is only coming in Unity 2022, as it has been rolled into a new feature (align to direction is going to support world space render alignment, rather than just local, as it is in older versions)

I’d be interested in seeing a bug report for this - I just checked the code and noise rotation appears to get added on to the rotation, which is then passed through that custom vertex stream. But, just reading the code is often not enough :slight_smile:

Thanks for the response! I updated my post with Unity version in case that matters. I look forward to the fixes.

I’ll do a work-up on this to get you more information.

Case 1412601
The issue wasn’t what I expected. When doing my tests with a clean shader, I found particles cannot stream Particle Position in Object space nor can it stream Game Object Rotation.
So when attempting to create birds, you would have to feed Object rotation from a script into the shader - oof. You also can’t actually find vertex positions without some seriously janky code.