This addon allows to deform 3D meshes using a stack of customizable deformers at run-time
Use the default deformers:
SphericalDeformerStandardDeformer(Bend, Twist, and Taper)
DragDeformer(In Rest Pose Mode, position the deformer, toggle it off, and deform the mesh by moving the node.)
Or easily create your own by extending the base class and overriding just a couple of methods in dm_deformer.gd.
This fork is optimized for use as a Git submodule in Godot projects. It maintains the core functionality of the original plugin while making it easier to integrate into your project's version control workflow.
- Add this fork as a Git submodule (recommended):
# Add the submodule to your project
git submodule add https://github.com/sanyabeast/GodotDeformableMesh addons/deformablemesh
git submodule update --init --recursive
# To update the submodule later
git submodule update --remote --merge
# To remove the submodule if needed
git submodule deinit -f -- addons/deformablemesh
git rm -f addons/deformablemesh
rm -rf .git/modules/addons/deformablemesh- Activate
DeformableMeshunder Project > Project Settings > Plugins. - Add a deformer node and a
DeformableMeshInstance3Dto your scene. - Set the Original Mesh, link your Deformers, and tweak properties to achieve the desired result.
- This addon is designed with simplicity and versatility as primary goals, making it well-suited for simple, standard use cases. However, it is not optimized for specialized use cases, such as higher-density meshes (and, in some cases, multiple surfaces, which may also impact performance) in performance-critical applications. Users are encouraged to thoroughly test the addon to ensure it meets their specific requirements.
- While other deformers support deforming multiple meshes at once, a
DragDeformercan only be tied to a single mesh at a time.
This fork is primarily intended to be used as a Git submodule for easy integration. It is based on the original work by Claudio Z. cloudofoz. All credit for the core implementation goes to the original author.
I wish to thank the community for any contribution or feedback. Special thanks to:
- Kevin Loustau, for sparking the idea behind the
DragDeformerfeature.
v0.40
- Add:
DragDeformernode. - Add:
_on_end_update()overridable method for the deformer base class. - Fix:
_on_begin_update()is now called only once, even with multiple surfaces.
- Add:
StandardDeformer(Bend, Twist, and Taper). - Remove:
BendDeformer(now included as part ofStandardDeformer). - Improve: Deformer selection list.
- Add: Bend deformers.
- Add: Base class to easily create custom deformers.
- Refactor: Codebase and minor improvements.
- First release