Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ability to have skinned Meshes emit particles #5051

Open
paddy-exe opened this issue Aug 1, 2022 · 10 comments
Open

Add ability to have skinned Meshes emit particles #5051

paddy-exe opened this issue Aug 1, 2022 · 10 comments
Labels
implementer wanted This proposal can probably be implemented, if there was a hero to do it topic:rendering topic:3d

Comments

@paddy-exe
Copy link

Describe the project you are working on

VFX in Godot

Describe the problem or limitation you are having in your project

Currently it is not possible to emit particles from the surface of a skinned mesh.
Therefore it is currently not possible to have a similar VFX such as a these ones in Godot:
https://www.youtube.com/watch?v=ePbeaYuMNK4

This examples uses the Unity Engine and its SkinnedMeshRenderer:
https://docs.unity3d.com/Manual/class-SkinnedMeshRenderer.html

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

The ability to use the character mesh as an emitter would enable to have VFX such as power-ups or level-up for characters (as you can see in the linked video tutorial)

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

I am not sure about the best way to implement this feature UX-wise but perhaps have an extra Field in the Inspector for EmitterShape as "Custom"
Enabling this option would open up more options where you can add the skinned meshes where the particles should emit from

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

Custom Emitter Shapes are not possible to add via GDScript

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

Because it can't be done as an add-on as far as I know.

@Calinou
Copy link
Member

Calinou commented Aug 2, 2022

This may be feasible with manual emission and a custom particle shader already (or even from a script, where you can emit individual particles at any location).

@paddy-exe
Copy link
Author

@Calinou Perhaps this can be setup with this but having a solution for this where you just specifiy the meshes and it combines the emitter shape together so that the shapes also don't overlap would be really hard/impossible in a custom shader

@QbieShay
Copy link

QbieShay commented Aug 2, 2022

For reference, we discussed this with reduz and it could be implemented by also generating a skin texture from a mesh and running the skinning in the animation compute pass.

@Qubrick
Copy link

Qubrick commented Aug 6, 2022

It could be useful for this. https://godotforums.org/d/30379-godot-40-and-hair-particles

@alfredbaudisch
Copy link

I guess this is also useful for any Skinned Mesh, no? Not only characters/humanoids. For example, even machinery and vehicles.

@Qubrick
Copy link

Qubrick commented Aug 6, 2022

I guess this is also useful for any Skinned Mesh, no? Not only characters/humanoids. For example, even machinery and vehicles.

Why not? It just need the current position on surface of skinned mesh. The problem is if you do it yourself in custom shader. I feel like you have to calculate animation twice? (One in normal skinning process which is internal. Another one is just for emit particle.) So it would be better if it's done in the same compute pass.

@QbieShay
Copy link

QbieShay commented Aug 6, 2022

Doing it yourself in a shader is possible but way more complex than if it was exposed directly.

@donn-xx

This comment was marked as off-topic.

@Calinou
Copy link
Member

Calinou commented Dec 15, 2022

@donn-xx Please don't bump issues without contributing significant new information. Use the 👍 reaction button on the first post instead.

@QbieShay
Copy link

Reduz's technical proposal https://gist.github.com/reduz/b709d0d8fa5be9f452b2e2d23ac423b3

@QbieShay QbieShay added the implementer wanted This proposal can probably be implemented, if there was a hero to do it label Jul 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
implementer wanted This proposal can probably be implemented, if there was a hero to do it topic:rendering topic:3d
Projects
Status: Needs consensus
Development

No branches or pull requests

6 participants