Open RPicster opened 2 years ago
See also https://github.com/godotengine/godot/pull/48385 (which is independent of this proposal, as it reorders properties outside ParticlesMaterial).
I like the idea, but for overall naming consistency I would suggest renaming Over Lifetime
to Particle Update
.
I like the idea, but for overall naming consistency I would suggest renaming
Over Lifetime
toParticle Update
.
Where is Particle Update used? I think Particle Update
doesn't sound very intuitive for peope coming from other software packages.
Particle Lifetime
could be an alternative that is more consistent to Particle Setup
.
Maybe it could be:
Particle Birth
or Particle Spawn
and
Particle Lifetime
This wording is used in a lot of packages:
Superluminal Stardust (birth, lifetime): https://superluminal.tv/downloads/stardust
Houdini (birth, lifetime) http://www.delmarlearning.com/companions/content/1598630822/chappreview/MagicOfHoudiniChapter08-PREVIEW.pdf
Blender (birth, lifetime) https://docs.blender.org/manual/de/2.79/physics/particles/emitter/render.html
Redshift X-Particles (birth, lifetime, age) http://docs.x-particles.net/html/emitterv4_emission_emission.php
Unity (birth, lifetime) https://docs.unity3d.com/ScriptReference/ParticleSystem-subEmitters.html
Unreal Engine (spawn, lifetime): https://docs.unrealengine.com/4.27/en-US/RenderingAndGraphics/ParticleSystems/Reference/Modules/Lifetime/
I think sticking to the "industry standard" for this makes it easier for new users (and also should be done in general)
Particle Lifetime
works well, too. I was taking Unreal Engine's Niagara as reference (spawn, update).
Ah, so it was about Making the two main Categories consistent - that makes a lot of sense!
So
Particle Spawn
or Particle Birth
and
Particle Lifetime
I also think Collision
could be renamed to Particle Collision
just to stay consistent where it makes sense.
Needs a review from @QbieShay
I like the general idea of this PR! Specifically, i like a lot the idea of having all the curves grouped together so it's easier to have an overview and sync curves together. Perhaps the animation curve should be together with the other curves as well?
I posted this in a space full of VFX artist and all of them showed support for this change. It has my full approval!
Describe the project you are working on
I mainly work on FRANZ FURY, but also on occasional Game Jam projects.
Describe the problem or limitation you are having in your project
With the current ParticleMaterial layout I find it very unintuitive how properties are arranged and ordered. Properties are not grouped in a way that makes a lot of sense to me. It's also hard for beginners to find the values they are looking for because it's not categorized or sorted in a way that makes sense when working on a Particle System.
Some properties also have very unintuitive naming when compared to the rest of the engine or by common sense. Some examples:
angle
which does whatrotation
does in most areas of the enginecolor ramp
- it's changing color over lifetime, so it should be named accordinglyalign_y
- it's aligning / rotating the particle to the linear velocity there could be a much more descriptive name likealign to velocity
Describe the feature / enhancement and how it helps to overcome the problem or limitation
Resorting and categorizing the properties into two main categories:
Particle Setup
: This contains all parameters that influence how particles are born.Over Lifetime
: This contains all parameters that influence how particles behave over their lifetime.Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
https://user-images.githubusercontent.com/9423774/143017628-1c00b262-09ed-489a-84f5-2e059b6d65a6.mp4
I have made a branch to test this out, this is how it looks.
If this enhancement will not be used often, can it be worked around with a few lines of script?
It's changing the way Particles are setup and worked with. So it can't be worked around with a few lines of code and is often used.
Is there a reason why this should be core and not an add-on in the asset library?
I think especially first time users shouldn't be required to download a add-on to have a good experience. Of course it could be made into an add-on: Something like a Particle Editor - but again, I think the experience in the Engine should be a good one by default.