This addon makes it easier to pin points on a SoftBody3D Node. The SoftPin Node uses Vertex Colors and separate the areas you want the SoftBody3D to simulate.
- Download the repository as a zip and extract it.
- Copy the
addonsfolder into the root folder of your project. - Go to Project > Project Settings > Plugins tab and enable SoftPin
- You're ready to go! The
SoftPin Nodeshould be under Node
Note
First you'll need to vertex paint your model. That will require Blender or another 3D software of choice.
- Select the mesh you want to vertex paint.
- Fill the entire model white or black with NO transparency. Values should look like image below:
- Once the model is fully white or black, use any color and paint the area you want simulated. The non colored areas will be pinned.
- Export your model to godot.
Add the SoftPin Node to the scene with the mesh you want to pin.
| Property | Description |
|---|---|
Soft Body |
Used to assign the SoftBody3D you want to pin |
Bone Attachment |
Used to attach the pinned points to BoneAttachment3D when Pin Type: is set to Skelelton3D |
Pin Type |
Method of pinning, If MeshInstance3D is selected you only need a SoftBody. If Skeleton3D is selected you'll need to include a BoneAttachment with the SoftBody |
Start Pinning |
Used to start the pinning process once ready |
Pinning Status |
Debug menu that tells you the status of the pinning or errors |
When pinning a MeshInstance3D convert the instance into a SoftBody3D, Assign the SoftBody3D, Set the Pin Type: to MeshInstance3D, and switch Start Pinning to On.
Once you're done you can delete the SoftPin Node from the scene or repeat the process with another SoftBody3D. Your days of wrestling with pins are finally over.
Warning
When using PinType: Skeleton3D, this is more ideal for things like hair, hanging cloth, and Accessories that only need one bone. Refer to Current Gotchas for more info.
Before starting to pin your initial setup should look something like this.
Select the MeshInstance3D under Skeleton3D you want to use. Convert the MeshInstance3D into a SoftBody3D, Assign the SoftBody3D, Assign the BoneAttachment, Set the Pin Type: to Skeleton3D, and switch Start Pinning to On.
Once finished go hit the play button to check out the SoftBody!
Caution
Below are limitations/issues caused by Godot, not the addon:
- Selecting the
SoftBody3DNode After pinning causes editor lag. The denser the model the longer the lag. Keeping vert count under 4K per mesh helps. - On project start up, having a scene tab open with Nodes that have Spatial Attachments assigned in SoftBody3D prints this error: - scene/3d/node_3d.cpp:345 - Condition "!is_inside_tree()" is true. Returning: Transform3D()
- Unfortunately, When using
Jolt3D Physicsthe quality of the SoftBody3D does not look as good as regular Godot Physics when simulating - When you assign
Skeleton3DIn the SoftBody it breaks. Animations on the mesh do not deform properly.









