-
-
Notifications
You must be signed in to change notification settings - Fork 99
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
Comments
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). |
@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 |
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. |
It could be useful for this. https://godotforums.org/d/30379-godot-40-and-hair-particles |
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. |
Doing it yourself in a shader is possible but way more complex than if it was exposed directly. |
This comment was marked as off-topic.
This comment was marked as off-topic.
@donn-xx Please don't bump issues without contributing significant new information. Use the 👍 reaction button on the first post instead. |
Reduz's technical proposal https://gist.github.com/reduz/b709d0d8fa5be9f452b2e2d23ac423b3 |
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.
The text was updated successfully, but these errors were encountered: