Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Alternative methods to anchor a softbody (and skeleton sampling)
#1
Hello,

I'm making a pet simulator game where you use a rigidbody hand object to pet/poke/punch/etc. a little softbody slime guy.

I need the slime's bottom half to stay locked into one place, and it seems like the default way in Obi Softbody v7.1 is to use particle attachment and paint some particles to be used as anchors. But I am still in the process of trying to figure out what the best settings for the softbody are, and every time I go to make an edit to the blueprint, I must then re-generate and repaint the anchor particles which is extremely tedious. Is there a better way to anchor a softbody without having to repaint them every time it gets regenerated?

There does seem to be one other solution to this, which is shown in the FullBodyVolumetricSoftbody demo using the skeleton sampling feature to keep much of the softbody locked in place exactly how I'd want it to be. However when I import some bones and weight painting for my model, it seems to only anchor one small specific point on my softbody model to the skeleton for some reason. I have even gone so far as to use the exact same skeleton that the big_guy demo mesh uses and data-transferred the weight paint and vertex groups from that armature to my model, but this same effect still happens. I'm not able to find much documentation on how the skeleton sampling works outside of what's on the softbody setup documentation page; am I missing some info about what determines how much influence a skeleton has on the softbody volume and surface particles? Would this pipeline of creating a few simple bones to use as anchor points for my softbody be a viable solution in the first place?

Thanks in advance!
Reply
#2
(25-02-2026, 07:06 PM)midivagrant Wrote: Hello,

I'm making a pet simulator game where you use a rigidbody hand object to pet/poke/punch/etc. a little softbody slime guy.

I need the slime's bottom half to stay locked into one place, and it seems like the default way in Obi Softbody v7.1 is to use particle attachment and paint some particles to be used as anchors. But I am still in the process of trying to figure out what the best settings for the softbody are, and every time I go to make an edit to the blueprint, I must then re-generate and repaint the anchor particles which is extremely tedious. Is there a better way to anchor a softbody without having to repaint them every time it gets regenerated?

Hi!

You only need to regenerate the blueprint when modifying sampling settings - which affect the amount and placement of particles, hence the need to specify particle groups again after regeneration. Softbody settings and particle properties (things like mass, radius, softness, etc) don't need you to regenerate the blueprint.

(25-02-2026, 07:06 PM)midivagrant Wrote:  am I missing some info about what determines how much influence a skeleton has on the softbody volume and surface particles?

Skeleton particles are attached to volume particles in the voxels adjacent to them. Their influence doesn't extend past that, as larger influences would "rigidify" bigger portions of the softbody and entirely defeat the purpose of having a bone-driven softbody.


(25-02-2026, 07:06 PM)midivagrant Wrote: Would this pipeline of creating a few simple bones to use as anchor points for my softbody be a viable solution in the first place?

Thanks in advance!

Not really, since it assumes you only want control over the particles around the bone and allow all other particles to be driven by simulation. Depending on your use case this can be very limiting.

You can instead create and feed the particle group to the attachment at runtime, by checking for particles that meet a specific condition instead of specifying particle groups in the blueprint manually. For instance: you can create a group with all particles that are inside a specific area or close to an object, and attach them. Here's a few relevant links to the manual:

- How to create and attach a particle group at runtime:
https://obi.virtualmethodstudio.com/manu...ments.html

- How to use spatial queries to determine which particles are inside an area.
https://obi.virtualmethodstudio.com/manu...eries.html

- Instead of spatial queries, you may as well just iterate trough all particle positions manually and check them. It's less efficient but if you're only doing it once it's no big deal. Here's how to access particle data at runtime (positions, velocities, etc):
https://obi.virtualmethodstudio.com/manu...icles.html

let me know if you need further help,

kind regards
Reply