Unity particle system feedback thread

Great ideas - I’ve put this on our roadmap. Thanks :slight_smile:
Also, good point about there being no link, you’re right that there should be a much simpler way to jump back to the parent emitter.

Do you think this should be in the Scene View Overlay, with all the other playback controls? It seems dumb to me for it to be hidden away here, and it’s totally not your fault for not being able to find it.

A long time. I’d guess at least back to the Unity 4.x days. that was before my time though :slight_smile:

It’s interesting you say this about Flip U/Flip V, because @michalpiatek was saying they should definitely be in the Renderer Module… which is right? Let me know if you can agree on one place, and I will look at moving them :smile: (FWIW, I think the Renderer Module probably makes most sense to me)

For me it makes sense to put it in rendering tab since it’s affecting UVs, not actual particle shape.

Also, tiny suggestion. In the Texture Animation Sheet module there is a dropdown list called “Enabled UV Channels”. It does not make any sense for me because it sounds like this module enables/disables certain UV channels whereas it actually defines which UV channels are affected by that module. Instead I would call this param: “Affected UV Channels”.

2 Likes

I guess I think of flipping as a particle shape thing since in my own particle systems I implement it by literally mirroring the geometry, negating local vertex positions and always using cull off, rather than modifying the UVs. Putting it as a render option does make more sense overall.

Just wanted to add my 2c to this – I kind of dislike it when the implementation of a feature guides the UI. As long as the “flip particle” button gives the desired result, it shouldn’t matter whether it’s the UVs or verts or something else that changes under the hood. I’m just trying to approach it from an artist perspective, but then again I also don’t really have any better suggestions on where this particular option should go haha

I’ll move it there. I agree this seems like it makes the most sense.

I totally agree, and I hadn’t really thought about this for this feature, but I think that’s exactly why it’s ended up in the Texture Animation Module… because it affects the UVs! Not a good design decision :frowning:

Agreed - I’ll change this too, thanks!

1 Like

Now I am going to say something very controversial so you better sit down before you read it! Ok, ready?.. I find it very confusing how UVs are mapped onto particles. Forward of a particle is actually “left” of a texture.

This is 1 velocity stretched particle.


To achieve a result like this a texture has to be pointing to the left. And this is an actual texture asset:
unity_texcoords01
You see what I mean? Forward of a texture needs to be pointing to the left. This is very confusing if a texture is very directional. So texture animation sheet needs to look like this:

I think this is very counter-intuitive. Up should be up and currently UVs are flipped by 90* to the left by default.

1 Like

[quote=“michalpiatek, post:27, topic:4115”]I find it very confusing how UVs are mapped onto particles
[/quote]

Yes it’s rubbish :frowning: but it’s hard to change whilst preserving the look of existing content, so right now we are not planning to improve it. (In my defence, it was done like this before I joined Unity) :smile:

There is one other easy way to fix it, but would have some impact on performance, which isn’t ideal either.

I think this only affects stretch particles? (And line/trail renderers, if I remeber correctly…)

Hah, I am aware of that - I’m using Shuriken since it was introduced in 3.5 :stuck_out_tongue: I guess it’s not easy to fix something that you just inherited in a state like this :wink:

But long term, are you planning to keep the system as is? I mean, there are never good moments for fixing stuff like this but maybe it would be worth announcing that, let’s just say, in 2018.4 uv coords will be mapped in a new way? Or are you planning to rule out Shuriken and bring something new to the table (in this case it would make sense to keep these bugs for consistency reasons).

But going back to velocity stretch. I’m using ancient Unity version atm (5.6) so some things might have changed but I think the whole “stretched particles” workflow should be revamped.

I’ll start with pivot offset. It seems that it currently works in absolute world space units instead of being relative to billboards size. In almost all cases I want my pivot point for stretched particles to be either in the middle or and the end. What currently happens is that when I’m setting pivot on Y axis to 1 I am getting good results with certain speed and size of particles but as soon as I’m changing either of these parameters I have to readjust Y Axis pivot again and again. It would be much easier to have these values relative to X/Y particle size so 0.8 offset on Y would mean “offset pivot on Y by 80% of particle’s Y size” or something in these lines.

I also would love to have control of the stretch value over particle age. It really is impossible to create realistic looking sparks without reducing the stretch value over particle age. If you will look at some real-life references sparks tend to be very fast when they are created and they slow down rapidly. Due to their brightness and speed our brains tend to process that as long, thin lines. As soon as they slow down a bit they shrink back to dots. Same happens when sparks are captured on camera with normal/long shutter speeds. Sure, I can use drag to slow particles down and get somewhat similar results but I’ve been there, done that and it’s not enough to achieve this sort of result. Also, there are many cases where I actually want to keep the same velocity and just reduce the stretch.

The more I think about it the more it makes sense for me to split out the whole functionality into a separate “Velocity Stretch” module, especially if you ever plan to add similar functionality for mesh particles. I think with this approach it would be much easier to understand too. Currently there’s a dropdown list called Render Mode which is not really affecting how particles are rendered but rather of which particle type they are and how they are facing the camera at the same time. You can also set the Render Mode to “None” which only controls how main particle is rendered but it would still render trails and ribbons. It feels like too many generic functionalities were crammed into one.

1 Like

agree with this…the stretch’d particles are a bit messy. I’ve never been able to get sparks to look how i want with the current system.

Another option missing, and would be solved with a node based particle system, is setting the animation frame via speed. On a previous engine i mapped the speed of the particle to the texture frame it uses. that way i could “fake” spark streaks…

these sparks were made using that system Electric Strikes on Vimeo

i guess it makes senses: to offer these new high level “fixes” as as new stretch billbored “B” type without breaking existing tech debtl;

a simple tech check box in the texture or render tab “orient 90” might suffice??

I’m actually able to give some kind of real answer to this now… we’re not ready to give many details, but we teased our upcoming VFX Editor at GDC today: https://twitter.com/willgoldstone/status/976134529738878976

Stay tuned for more details in the coming months!

Ok back to Shuriken! We actually fixed this, but I guess the fixes didn’t make it back to 5.6. It’s relative, in newer versions, same as regular billboards.

I’m sure we can update the stretch params to use curves. I’ll add it to our roadmap.

We won’t be doing anything too radical, as explained by the first part of this post. So it will only be minor improvements to this system :slight_smile:

2 Likes

I’ll add this to the roadmap, thanks!

Oh man, this is great! Can’t wait to put my hands on the new system :slight_smile:

pivot offset value can also greatly benefit us from graph love (for authoring vortex’s). also the ability to randbetween offset

Also, check out the new Orbital Velocity options in the Velocity over Lifetime Module, in 2018.1 :slight_smile:

downloaded and took a look; pretty sweet fellas!

2 Likes

exactly the same! and it was awesome! by the way thanks for everything and to all posts here! i need a lot of info for my legal steroids website that i want to make so anything is helpful. in fact, i never knew a forum cold be so so helpful!

1 Like

sure it’s come up before but a way to key mesh-renderer - need to cycle through shape changes e.g. fat doughnut to a skinny doughnut
image

1 Like

Hey all, I just wanted to post an update so you know we’re working on addressing as much of this as we can :slight_smile:

The following changes are in progress:

  • Move “Solo Mode” to the Scene View Overlay, alongside play/restart/stop etc (2018.2)
  • Tangents on flat curves changed to linear (2018.3)
  • Circle particle distribution fixed (2018.1)
  • Better visual feedback on shapes (Arc + Radius Thickness) (2018.3)
  • Flip U/V moved to the Renderer Module (2018.3)
  • Better tooltips on some stuff eg Randomize Direction (2018.2)
  • Rename “Enabled UV channels” to “Affected…” (2018.3)
  • Control stretch value over particle lifetime (2018.3)
  • Animation frame via speed (2018.3)
  • Fixed FPS animation frame (2018.3)

:sunny:

8 Likes