|
|
| Connectivity Particle Binding |
|
Posted by: Eritar - 02-04-2026, 03:44 PM - Forum: Obi Softbody
- No Replies
|
 |
Hi!
Is there any way to make Particle Binding limited to vertex connectivity?
For example, if my character has close by geometry, like fat folds on a belly, or structure similar to brain or corals, is there an easy way to limit binding to connected geometry, so one particle may bind to a single closest fat fold, for example?
Also I greatly appreciate all your help along the forum posts, but I don't want to spam you with "Thanks, that worked!" messages.
Thank you very much!
|
|
|
| Better method to change rod shape |
|
Posted by: Qriva0 - 01-04-2026, 09:44 AM - Forum: Obi Rope
- Replies (3)
|
 |
Hi, I wonder if there is better way to keep rod shape (other than ObiBendTwistConstraintsBatch) without breaking physics too much.
I change shape of the rod to make it bend an it works, but final behaviour is not exactly "right".
The thing is that moving, pulling elastic rod makes everything very soft, forces do not propagate well, it's like pushing soft spaghetti. Keeping shape work in similar way, it the rod is stiff it bends very fast to target shape, but making it softer results in very slow "lerp like" change of rotation.
The thing is I want my rod to be overall soft enough, but at the same time change shape reasonably fast. On top of that I want to avoid situation where huge rigidity force the rod to break constraints, for example see image below. If rod changes shape with colliders around, it has no idea that the bend I set is not possible to do and the whole thing shakes, explodes, or is at least very unstable.
I made system that moves bending slower and checks if lambdas in constraint are not too big, but it's clunky, I don't like my implementation. What else can be done?
|
|
|
| Obi Rod collision causing weird stretching behavior |
|
Posted by: violinviolin19 - 27-03-2026, 05:54 PM - Forum: Obi Rope
- Replies (6)
|
 |
I'm working on making something akin to a catheter or endoscope in VR that should have some flex when colliding against an object but shouldn't crazily deform and should always return to rest position after colliding. When grabbing the catheter and pushing it against a cube, despite my ObiRod blueprint being set to "Keep Initial Shape," I'm experiencing odd collision behavior that can be seen in the attached video. Does anyone have advice on how to modify the solver, blueprint, or rod so that it has my desired rigidity with mild flex and no odd collision behavior?
|
|
|
| Best way to disable then reenable rope? |
|
Posted by: Bopter - 23-03-2026, 08:06 PM - Forum: Obi Rope
- Replies (3)
|
 |
Hi all!
I'm making a game where you try to throw lassos at other players. This requires a lot of spawning a rope, despawning it, then respawning it again.
Currently I do this by disabling the ObiRope and ObiRopeExtrudedRenderer components. When I need it again I reenable it by waiting until the rope is loaded then manually adjust the positions, prevPositions, and Velocities of all particles. Then I wait one frame to let things settle before reenabling the Renderer.
This almost works, except for a single frame where the Renderer shows its previous position. I cannot for the life of me figure out how to make the Renderer only show the new position of the rope rather than starting at its previous position. This also happens when I just leave the Renderer on the entire time.
Is there a better way to go about disabling/enabling rope or some kind of RendererRefresh I can call? I was considering teleporting the rope somewhere far away while disabled rather than disabling the component but wanted to see if there was a better way first.
Thanks!
Pic of the one frame issue:
![[Image: T5Tm5FC.png]](https://i.imgur.com/T5Tm5FC.png)
Code: // sets up the rope when reenabled
private IEnumerator SetupRopeNextFrame(Transform startTarget, bool isStartDynamicAttachment, Transform endTarget, bool isEndDynamicAttachment)
{
while(!rope.isLoaded)
{
yield return null;
}
resetRopeLength();
connectToBothTargets(startTarget, isStartDynamicAttachment, endTarget, isEndDynamicAttachment); //calls connectParticleToTarget() and lerpBetweenStartAndEndOfRope()
_ropeIsActive = true;
yield return null;
ropeRenderer.enabled = true;
}
// creates world peace
public void DeactivateRope()
{
_ropeIsActive = false;
startAttachment.enabled = false;
endAttachment.enabled = false;
rope.enabled = false;
_isRetracting = false;
ropeRenderer.enabled = false;
}
// connects the ends to attachments
private void connectParticleToTarget(int particleIndex, Transform target)
{
Vector3 newPos = rope.solver.transform.InverseTransformPoint(target.position + new Vector3(0f, -.5f, 0f));
rope.solver.positions[particleIndex] = newPos;
rope.solver.prevPositions[particleIndex] = newPos;
rope.solver.velocities[particleIndex] = Vector3.zero;
}
// handles mid section of the rope
private void lerpBetweenStartAndEndOfRope(Transform startTarget, Transform endTarget)
{
//start at 1 because both start and end are already in position
int edgeCount = rope.elements.Count;
for(int i = 1; i < edgeCount - 1; i++)
{
int index = rope.elements[i].particle1;
float percent = (float) i / edgeCount;
Vector3 worldPos = Vector3.Lerp(startTarget.position, endTarget.position, percent);
Vector3 localPos = rope.solver.transform.InverseTransformPoint(worldPos);
rope.solver.positions[index] = localPos;
rope.solver.prevPositions[index] = localPos;
rope.solver.velocities[index] = Vector4.zero;
}
}
|
|
|
| Limited Resolution and simulation values |
|
Posted by: Eritar - 21-03-2026, 05:07 PM - Forum: Obi Softbody
- Replies (1)
|
 |
Hi, in the softbody documentation it is written that at max resolution (128, as I understand), one vertex would correspond one particle, but it doesn't seem to be the case? It seems to be governed by Shape Analysis Resolution value as well, and I cannot enter the value higher than 128 manually.
Is it possible to override the limit if I want to have actual one particle per vertex?
In a similar manner, I understand that having a lot of particles would make the simulation unstable, and what values can I tweak to achieve better shape matching? So far what I've gathered - low Mass Scale, Sequential Shape Matching, and Constraint Orientation (I use particle attachments and simulate parts of a mesh) works best.
In this model nose should be much more dense than the rest of the model, for example.
suzanne_dense_nose.zip (Size: 155.2 KB / Downloads: 1)
|
|
|
| Inquiry About Future Updates And About Tuanjie Asset Store |
|
Posted by: tecnnt - 19-03-2026, 05:40 PM - Forum: General
- No Replies
|
 |
Hello,
I recently learned from Unity's official announcement that, by the end of this month, all overseas resources will no longer be accessible to developers in mainland China.
I truly enjoy using your assets and have greatly benefited from them in my projects. However, I’m concerned about how I can continue to receive updates or access your resources after this change takes effect. Could you kindly advise on how to proceed? For instance, will there be alternative platforms or methods to obtain updates for your assets moving forward?
Thank you for your time and support. I really appreciate your work and hope to continue using your resources in the future.
Looking forward to your reply.
|
|
|
| Non destructive blueprint regeneration |
|
Posted by: Qriva0 - 06-03-2026, 10:03 AM - Forum: General
- Replies (5)
|
 |
Hi, this thread mentioned destructive nature of blueprint generation, I noticed too that iteration based on mesh changes is really slow because of this, adding one vertex to softbody or cloth requires regeneration.
My proposition is to add feature to map existing data to newly generated particles.
To be precise, there would be checkbox next to "Generate" button (or button dropdown similar to lightmap bake) and this mode would keep old blueprint data cached, then after generation it mapsnew particles to old one by finding the closest particle. So things like weight, radius, groups would be copied from previous setup. Also groups - it would keep groups, but replace indices with new one that fit previous positions. In this case adding single vertex to mesh would require minimal changes, if any. In case of meshes with similar surface (but different density of particles) the same would apply, because 99% of data would fit previous setup.
This is not critical feature, but I think it would sagnificantly help many users and make iterations way shorter.
|
|
|
| Anisotropic Particle Density on Characters |
|
Posted by: Eritar - 02-03-2026, 01:55 PM - Forum: Obi Softbody
- Replies (1)
|
 |
Hi!
Could you please advise me on what would be the best solution to have a blueprint optimized for a full soft body character, because isotropic particle density is an inefficient approach IMO.
Ideally - Blueprint window could support a "density" map, akin to skin weights map, because it doesn't make sense to have the same particle density for a thigh, or a spine, as for example for fingers, or face, or other fine-detailed extremities.
Splitting the character into different meshes with their own different blueprints is a workaround I have found working sort of well, but you can't reliably "stitch" the mesh to be visibly watertight, and have it have continuous simulation, so there are gaps (for example on a wrist where more high-particle hand meets low-particle arm) in the mesh.
Could please advise if there already is a way to solve this issue?
Thank you very much!
|
|
|
| Alternative methods to anchor a softbody (and skeleton sampling) |
|
Posted by: midivagrant - 25-02-2026, 07:06 PM - Forum: Obi Softbody
- Replies (2)
|
 |
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!
|
|
|
|