godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.16k stars 97 forks source link

Add a particle setup wizard to quickly get started with new particle systems #2998

Open Calinou opened 3 years ago

Calinou commented 3 years ago

Describe the project you are working on

The Godot editor :slightly_smiling_face:

Describe the problem or limitation you are having in your project

Setting up particles (especially GPUParticles) requires a lot of clicks, since you need two materials, each with their own complex configuration.

People are also not always aware of using many of ParticlesMaterial's features that depend on StandardMaterial3D configuration. For instance, color ramps (which require vertex colors to be visible) and particle flipbook animation/random frames.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

Add a particle setup wizard to quickly set up GPUParticles, as part of a node-specific menu option (similar to the current CPUParticles conversion option).

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

Add a menu option to GPUParticles nodes. When selected, this menu will prompt to select an albedo texture (the most common texture that needs to be set in a particle system).

The particle system will then do the following:

CPUParticles could also benefit for a wizard (especially for the StandardMaterial3D) part, but it's not as essential there.

A similar wizard could also be implemented in 2D, but it's also not as important there since you don't have to configure any material in 2D.

I can work on this feature if it's desired.

If this enhancement will not be used often, can it be worked around with a few lines of script?

This can be implemented with an add-on (and may not be a bad idea for more complex effects), but for simple use cases, I think we should have a basic wizard for this.

Is there a reason why this should be core and not an add-on in the asset library?

See above.

QbieShay commented 2 years ago

I like quite a lot the idea of having a wizard. I think that we can get inspiration also from Niagara's wizard in unreal. Screenshot from 2022-03-22 14-44-27 We already have a little dropdown menu when selecting a process material or a shadermaterial, so i think we can afford 3 more entries in that menu. For example:

Alternatively, it would be very cool if we found an easy way to support "particle templates" in engine in a way that feels well integrated (for example being able to add templates per-project).

My dream would be to have nodes that i can directly drag in that come with pre-instanced particle materials. I could do with tscn files but the problem is that resources end up being shared half of the time, so i fight a lot with changing things in one place and figuring out later that it changed also in some other scene ..