Obi Official Forum
Particle connections ignore neighbour - Printable Version

+- Obi Official Forum (https://obi.virtualmethodstudio.com/forum)
+-- Forum: Obi Users Category (https://obi.virtualmethodstudio.com/forum/forum-1.html)
+--- Forum: Obi Softbody (https://obi.virtualmethodstudio.com/forum/forum-12.html)
+--- Thread: Particle connections ignore neighbour (/thread-2852.html)



Particle connections ignore neighbour - Hakazaba - 08-04-2021

Hello, i'm having a bit of an issue caused by a particular behaviour that the particles have, where they ignore their closest neighbor when the connection radius is large enough to find other particles, its causing seam issues seen in another thread, as particle attachments along the edge are not contraining the particles next to them. 

It's a big problem on low poly meshes where you cant spare two loops of verticies to a single joint without unnatiural animation.

I have particle overlap set to 0, is there a way to fix this without having small particle radius connections? That will cause other parts of the model to have no connections at all

[Image: 1f9c56db697945dbccf677134e12b425.png]


RE: Particle connections ignore neighbour - josemendez - 09-04-2021

All particles connect to their neighbors within the soft cluster radius, except if you optimize part of the softbody away.. Optimization works by removing all particles that don't share any constraint with the ones you select. So, these particles right at the edge are part of the neighborhood of other particles, but they don't have a neighborhood of their own.

Typically, after optimizing you create a particle group with the border particles (which remain selected after optimization) for later attaching them to a transform and drive the rest of particles. May I know what your use case is?

See "Optimize selection" in this page: http://obi.virtualmethodstudio.com/tutorials/softbodysetup.html


RE: Particle connections ignore neighbour - Hakazaba - 09-04-2021

Im hestitant to say, but the use case is breast physics. Id need two edgeloops of particles to be pinned in order to deal with the issues of the edge particles not sharing a neibourhood/constraint with the particles right next to them.

This doesn't really work for me since the pin constrains work based on a specific joint, rather than the origional skinning of that area of the mesh, which ruins the weight painting in that area. So ive been trying to get the pinned verticies down to a single edge loop.

It works fine, so long as there is a lot of softbody resistance, but if it's low, then that lack of constraint causes a nasty seam when the bottom of the boob sinks down past the particle constraint. Which even happens if you constrain orientation.

Another result of this, is that since the pinned particles share less constraints than the other particles do, they will deform much more than the rest of the soft body. If something would sag by 1, then those next to the pinned particles would sag by 2, because they actually lack a constraint, making a gross shelf like result


RE: Particle connections ignore neighbour - josemendez - 12-04-2021

(09-04-2021, 03:59 PM)Hakazaba Wrote: Im hestitant to say, but the use case is breast physics.

No worries, it's not the first or last time someone adds breast physics in a game Sonrisa. It's totally fine.

(09-04-2021, 03:59 PM)Hakazaba Wrote: Id need two edgeloops of particles to be pinned in order to deal with the issues of the edge particles not sharing a neibourhood/constraint with the particles right next to them. This doesn't really work for me since the pin constrains work based on a specific joint, rather than the origional skinning of that area of the mesh, which ruins the weight painting in that area. So ive been trying to get the pinned verticies down to a single edge loop.

Vertices must either follow the simulation, or follow the skinning. Currently, it's not possible to blend between the two, so retaining the original skinning while simulating is not possible. See: http://obi.virtualmethodstudio.com/tutorials/charactersoftbody.html

Quote:Note that currently, you cannot mix animation and simulation in a single vertex, unlike you can in ObiCloth. Vertices in a softbody character are either driven by animation, or driven by simulation, not both.

(09-04-2021, 03:59 PM)Hakazaba Wrote: It works fine, so long as there is a lot of softbody resistance, but if it's low, then that lack of constraint causes a nasty seam when the bottom of the boob sinks down past the particle constraint. Which even happens if you constrain orientation.

Another result of this, is that since the pinned particles share less constraints than the other particles do, they will deform much more than the rest of the soft body. If something would sag by 1, then those next to the pinned particles would sag by 2, because they actually lack a constraint, making a gross shelf like result

Maybe you can try the following: Add a couple bones to your character's breasts (one per breast), and paint skin weights as desired. You can then create a softbody simulation using a different, simpler mesh, and copy the location of each breast to the bone position. This way the existing bones will be driven by the simulation, allowing you to retain your breast skin weights.


RE: Particle connections ignore neighbour - Hakazaba - 13-04-2021

I decided to edit the rig so that it had two edgeloops of space to pin to without causing issues.

Id like to clarify what i mean by a pin that follows the skinning. Because im positive that you could make this

Currently, a pin follows a specific game object. 

When generating mesh particles, you could optionally store the weights at the position of the particle (linear interpolation between the verts of the triangle it's attached to based on where it is within that triangle, you could use that information to reconstruct the skinned position based on the bone movements


RE: Particle connections ignore neighbour - josemendez - 13-04-2021

(13-04-2021, 08:57 AM)Hakazaba Wrote: I decided to edit the rig so that it had two edgeloops of space to pin to without causing issues.

Id like to clarify what i mean by a pin that follows the skinning. Because im positive that you could make this

Currently, a pin follows a specific game object. 

When generating mesh particles, you could optionally store the weights at the position of the particle (linear interpolation between the verts of the triangle it's attached to based on where it is within that triangle, you could use that information to reconstruct the skinned position based on the bone movements

Thanks a lot of the suggestion! Obi Cloth already does this exact thing for cloth: it calculates the skinned position for each particle, then interpolates between the "simulated" and the "animated/skinned" positions using a user-defined parameter. It's just not implemented yet in Obi Softbody, but it's on my roadmap. Will be done during the 6.X development cycle Sonrisa.