Search Forums

(Advanced Search)

Latest Threads
Cloth has stretchy behavi...
Forum: Obi Cloth
Last Post: Andreia Mendes
24-07-2025, 03:15 PM
» Replies: 16
» Views: 331
Rope ignoring colliders o...
Forum: Obi Rope
Last Post: josemendez
24-07-2025, 07:03 AM
» Replies: 1
» Views: 72
Ladder made by Ropes (Rat...
Forum: Obi Rope
Last Post: josemendez
23-07-2025, 01:43 PM
» Replies: 5
» Views: 207
can you remove particles ...
Forum: Obi Softbody
Last Post: josemendez
22-07-2025, 02:19 PM
» Replies: 1
» Views: 146
ObiRope Mesh Renderer
Forum: Obi Rope
Last Post: quent_1982
08-07-2025, 11:27 AM
» Replies: 4
» Views: 500
How to dynamically change...
Forum: Obi Rope
Last Post: quent_1982
08-07-2025, 06:34 AM
» Replies: 6
» Views: 705
Pipeline that bends
Forum: Obi Softbody
Last Post: josemendez
04-07-2025, 09:52 AM
» Replies: 13
» Views: 1,470
How to implement/sync Obi...
Forum: Obi Rope
Last Post: quent_1982
01-07-2025, 01:48 PM
» Replies: 2
» Views: 416
Collisions don't work con...
Forum: Obi Rope
Last Post: chenji
27-06-2025, 03:05 AM
» Replies: 3
» Views: 484
Force Zone apply differen...
Forum: Obi Rope
Last Post: chenji
26-06-2025, 11:41 AM
» Replies: 11
» Views: 1,338

 
  Particle attachments dont attach correctly on quest2
Posted by: drone - 13-02-2025, 02:49 PM - Forum: Obi Rope - Replies (1)

Hi, in my company we have Obirope asset and i have a few problems setting it up.

We have overcomplicated vr setup using MetaXR sdk. Obirope 7.0.3, burst solver. 
There is image limit on forum so i uploaded it here. In Editor it looks ok (attachment 1. Cables in editor image),
but when app is built and run on quest2 cables are not snapped in place(attachment 2. Cables on the device).

Attachments 3-7 show my in editor setup. On image 4 control points on the edges collide with noting. Image 7 shows attachments that are set up on both sides of rope.
Stuff is connected to each other using meta SnapInteractable to SnapInteractor connection creating ”chains” of objects (they must be coupled/decoupled dynamically).
I also tried to write custom script for forcing renderable position into target Transform position. Sadly there is no visible change on the device.

Another issue is that I have problems with setting up rope as cable so it will behave more like cable, not like rope. Any suggestions?
And fps drop (-20fps) but I assume it's caused by multiple ropes, for now I just want rope endings to attach. 

Please let me know if I can specify something more or you need any additional information regarding my setup.

Print this item

Pregunta Dynamic attachment to fixed object with hinge component
Posted by: NoahAtlas - 12-02-2025, 09:34 AM - Forum: Obi Rope - Replies (9)

I'm working on this scene where I have a chain that is connected to 2 hooks. Both particle attachments are set to static. In the first attached image "Editor Setup" you can see how the setup looks in the editor. When I run this scene, the green mesh rotates downwards (due to the rigidody and hinge components) and we get the second image "Scene Running (Static)". Up until now everything is behaving as expected. 

Since I want the amount of strain on the chain to influence the rotation of the bottom hook (green mesh) I make the bottom particle attachment dynamic (and add the needed obi collider and rigidbody components to the bottom hook). When I don't change the settings of the chain, running the scene will lead to very erratic behavior: The chain immediately disconnects and all the components just start shaking uncontrollably (seen in image 3 "Dynamic No Changes").

I then tried modifying the chain constraints but it always results in a chain that doesn't have enough strain on it and that doesn't connect to the the mesh properly (as seen in image 4 "Dynamic With Stretch Compliance").

In the fifth attachment "Constraints" I have the constraints I used for the static image and the dynamic one + the Obi Solver settings. I tried tweaking every possible constraint to get a working dynamic attachment but nothing has worked. Any ideas what I could possibly be doing wrong?

Thanks in advance!



Attached Files Thumbnail(s)
                   
Print this item

  Changing rope lenth creates erratic behaviour
Posted by: VAbert - 10-02-2025, 09:46 AM - Forum: Obi Rope - Replies (3)

Hello!

Using Obi Rope, I'm trying to make a simple system where a rope is connected to a wall (attachment pin), and to an object that the player can control (another attachment pin); both of those static. I want to make sure that when the object moves away from the wall attachment, the rope gets longer, and when it gets closer, the rope gets shorter. I'm using a cursor, and I tried a few different solutions, but I couldn't get it to work. Here is the current code:

Code:
float dist = Vector3.Distance(obj.position, wallAttachment.position) * 1.2f;
if(dist - rope.restLength > 0.1f)
{
      objCursor.ChangeLength(Time.deltaTime * ropeSpoolSpeed);
}
else if(dist - rope.restLength < -0.1f)
{
      objCursor.ChangeLength(Time.deltaTime * -ropeSpoolSpeed);
}


The result is extremely chaotic, as you can see in this video : 

Am I missing something?

Also, along my experiences, I managed to make the rope shorter than zero, which results in an error spamming (in my opinion, it should not be possible), and also to crash Unity, probably by making it too long ? (I feel like there should also be a failsafe there).

Thank you!

Print this item

  Preventing fabric from vibrating and drooping
Posted by: CptnFabulous - 09-02-2025, 04:22 AM - Forum: Obi Cloth - Replies (1)

We have a system where a virtual garment is procedurally generated, consisting of multiple fabric shapes stitched and stretched around the character model. I’ve noticed an issue where the fabric vibrates and sometimes clips through the model, and I think this is because of the fabric being stretched too tight.

I tried loosening the stretch scale and stretch compliance (they’re normally at 1 and 0 respectively), but any value loose enough to stop the vibrating also resulted in the fabric drooping and losing its shape (more than it already does). I compensated by increasing the particle inverse mass (to try and decrease the mass and make the fabric less likely to droop down), but this makes it start vibrating again.

Another solution I thought of was to directly modify the mesh before generating. The cloth has two halves, front and back, which are initially flat meshes. I made some code that uses raycast checks to manually modify each vertex, to make the mesh wrap more closely around the body. This reduces some of the vibration, but still has some jittering and causes the fabric to droop (albeit in a slightly more crinkly and polygonal way).


I've been thinking about making a system to have most of the garment non-simulated. so it conforms to the model and doesn't move about in ways it doesn't need to, but since the garment is procedurally generated I'm not sure yet how to differentiate between the bits that need to simulate realistically and the bits that can stay in place.

What other methods could I try to reduce jittering?

Thanks!

Print this item

  Collider interactions
Posted by: AnupamSingh - 07-02-2025, 09:26 AM - Forum: Obi Softbody - Replies (1)

Is it possible for a Unity (non-Obi) collider to detect interaction events with Obi colliders? Do Obi colliders adapt according to the shape of a deformed object? I intend to use it for haptic feel so shape of colliders is important. I added a Unity mesh collider with softbody and that does not appear to deform with particles. Kindly suggest any possible approach.

Print this item

  Trouble with Attachments
Posted by: beegon - 06-02-2025, 11:31 PM - Forum: Obi Softbody - Replies (3)

I'm trying to attach some objects to a softbody via Obi Particle Attachments. 

I created some particle groups in the blueprint and assigned the objects to their respective particle group in the attachments. I want the objects to maintain their orientations relative to their particle group and I don't want the attached objects to influence the softbody if possible. I've tried every option and configuration I can think of, but the behavior is always undesirable or unstable.

   
I want the spikes to stick out of the ball like this and maintain their relative positions and rotations as the ball rolls around.


.gif   SoftbodyAttachments.gif (Size: 787.22 KB / Downloads: 18)
Instead the objects drift away from the surface or roll around their local axis. They also seem to pull the softbody around a bit instead of just going along for the ride, which is undesirable.

Is there a way to achieve the behavior I'm looking for? Or maybe I'm missing something with my setup? Any thoughts are appreciated. I can link you this project if you'd like to see my setup. Thanks!

Print this item

  RuntimeRopeGenerator basic questions
Posted by: ayoci - 04-02-2025, 04:30 PM - Forum: Obi Rope - Replies (1)

Hi! 

I had to upgrade Obi Rope from version 3 to 7 because I bought Obi SoftBody as well, and unfortunately, they don't work on separate versions. 

I’m not quite familiar with this version yet. 

How can I generate a ropes that always has the same length? 
Currently, it generates the rope based on the distance between the Start and End points, but I don’t want that. I tried using "controlPoints.Add(Vector3.down * ropeLength);" like in the old version but it's does not work anymore. 

Code:
public Transform startp;
public Transform endp;

public Material material;

private ObiRope rope;
public ObiSolver solver;
public ObiRopeBlueprint ropeBlueprint;
private ObiRopeCursor cursor;

public void createropeline()

  {

      solver = GameObject.Find("Obi Solver").GetComponent<ObiSolver>();    
      GameObject ropeObject = new GameObject("ObiRope");
      ropeObject.transform.SetParent(solver.transform);   
      rope = ropeObject.AddComponent<ObiRope>();

      var pinConstraints = rope.GetConstraintsByType(Oni.ConstraintType.Pin) as ObiConstraints<ObiPinConstraintsBatch>;
      pinConstraints.Clear();
     
      var ropeRenderer = ropeObject.AddComponent<ObiRopeLineRenderer>();
      ropeRenderer.uvScale = new Vector2(1, 5);
      ropeRenderer.material = material;

     
      rope.bendConstraintsEnabled = false;
      rope.stretchingScale = 0.5f;
      rope.aerodynamicsEnabled = false;

     
      int filter = ObiUtils.MakeFilter(ObiUtils.CollideWithEverything, 0);


      ropeBlueprint.path.Clear();
      ropeBlueprint.path.AddControlPoint(startp.position, Vector3.zero, Vector3.zero, Vector3.zero, 0.05f, 0.05f, 0.3f, filter, Color.white, "Start");
      ropeBlueprint.path.AddControlPoint(endp.position, Vector3.zero, Vector3.zero, Vector3.zero, 0.05f, 0.05f, 0.3f, filter, Color.white, "End");
      ropeBlueprint.path.FlushEvents();

     
      rope.ropeBlueprint = ropeBlueprint;
     
    
      AttachRopeEnds();

     
  }
  public void AttachRopeEnds()
  {
      if (rope == null || ropeBlueprint == null)
          return;

      var attachmentA = rope.gameObject.AddComponent<ObiParticleAttachment>();
      attachmentA.target = startp;
      attachmentA.particleGroup = ropeBlueprint.groups[0];
      attachmentA.attachmentType = ObiParticleAttachment.AttachmentType.Dynamic;

      var attachmentB = rope.gameObject.AddComponent<ObiParticleAttachment>();
      attachmentB.target = endp;
      attachmentB.particleGroup = ropeBlueprint.groups[ropeBlueprint.groups.Count - 1];
      attachmentB.attachmentType = ObiParticleAttachment.AttachmentType.Dynamic;

   
     
  }

If i switch startp.position, endp.position to Vector3.zero, Vector3.one Then nothing happens when i create the rope.

This is the script I’m currently using, and it works well, but compared to the ExtendableGrapplingHook.cs, it seems quite incomplete.
Could it cause any issues that I’m not using a Coroutine or that "var batch = new ObiPinConstraintsBatch();" section?

Or could it be that the missing parts are exactly why my rope isn't generating properly when I use Vector3.zero, Vector3.one instead of my Transforms?

I know my questions are very basic but i didn't find a normal "Runtime Rope Generator" example.   Indeciso

Thank you in advance. Sonrisa

Print this item

  static 2nd attachment causing rope to control 2nd 3D object
Posted by: enhilljrRTI - 04-02-2025, 01:42 AM - Forum: Obi Rope - Replies (1)

Brief Description:
Rope attached to separate GameObjects at each end seems to be pushing around the GameObject that is attached to the far end (per the blueprint) even though the Type is set to Static in both ObiParticleAttachment components.

Detailed Description:
I'm trying to simulate a piece of flexible tubing in VR in the Meta Quest 3 that a user can grab at each end and connect to other objects.  I have a 3D model of a short 1" piece of tubing that I have duplicated and positioned for use at each end.  The ObiRope is created with an Extruded Renderer and contains two ObiParticleAttachment components to attach it to each of the GameObject models.  The blueprint and ObiRopeExtrudedRenderer settings have been adjusted so that the rope looks very similar to the 3D tubing model.  Each of the tubing model GameObjects has a BoxCollider, Rigidbody, ObiCollider, and ObiRigidbody component on it.  Each GameObject also contains a child object with the scripts needed to make the object interactive in VR.

When the simulation starts, the GameObject at the starting end of the rope/tubing stays put and can be picked up and generally behaves as expected.  The GameObject on the far end of the rope/tubing however immediately begins to dance around and is very difficult to grab.  At all times, the rope remains attached to both GameObjects so it is being rendered properly.  The problem is that ObiRope appears to be applying motion to the 2nd attachment unexpectedly.

Can someone recommend ObiRope settings that I should look into or tests I should run to try to understand why this is happening?

Any suggestions would be greatly appreciated!

Print this item

  How to fix the issue of fluid spilling outside an object?
Posted by: vivi_j - 25-01-2025, 12:41 AM - Forum: Obi Fluid - Replies (4)

Hi! Here is a video that shows the issue I'm facing: https://drive.google.com/file/d/1ZFmZ-Da...sp=sharing. I want the liquid to stay inside the beaker/flask even when I move the object around quickly, and especially when I try to stir the liquid. How can i accomplish that? Thanks in advance Corazón

Print this item

  Obi rope collider produce errors when exit Play mode
Posted by: Apoll0 - 21-01-2025, 11:35 AM - Forum: Obi Rope - Replies (3)

Hello!
I am using obi rope with some colliders. I have about 8-10 ropes. They are disabled at start and are used as ropes pool. And I also have some objects with obi colliders on the scene.
A few seconds after game start I enable some ropes and move them by static particle attachments. Ropes are colliding with the objects as expected.

Everything seems working ok but when I exit play mode in Unity I get the following errors in console:


Code:
InvalidOperationException: The previously scheduled job BurstColliderCollisionConstraintsBatch:CollisionConstraintsBatchJob reads from the UNKNOWN_OBJECT_TYPE CollisionConstraintsBatchJob.shapes. You must call JobHandle.Complete() on the job BurstColliderCollisionConstraintsBatch:CollisionConstraintsBatchJob, before you can deallocate the UNKNOWN_OBJECT_TYPE safely.
Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle.CheckDeallocateAndThrow (Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle handle) <0x1dab97b60 + 0x00052> in <956eaa8539d84df5ae2a3cddf87260d0>:0
Obi.ObiNativeList`1[T].Dispose (System.Boolean disposing) (at Assets/Obi/Scripts/Common/DataStructures/NativeList/ObiNativeList.cs:140)
Obi.ObiNativeList`1[T].Dispose () (at Assets/Obi/Scripts/Common/DataStructures/NativeList/ObiNativeList.cs:148)
Obi.ObiColliderWorld.Destroy () (at Assets/Obi/Scripts/Common/Collisions/ObiColliderWorld.cs:201)
Obi.ObiColliderWorld.DestroyIfUnused () (at Assets/Obi/Scripts/Common/Collisions/ObiColliderWorld.cs:225)
Obi.ObiColliderWorld.DestroyColliderData (Obi.ObiColliderHandle handle) (at Assets/Obi/Scripts/Common/Collisions/ObiColliderWorld.cs:429)
Obi.ObiColliderWorld.DestroyCollider (Obi.ObiColliderHandle handle) (at Assets/Obi/Scripts/Common/Collisions/ObiColliderWorld.cs:333)
Obi.ObiColliderBase.RemoveCollider () (at Assets/Obi/Scripts/Common/Collisions/ObiColliderBase.cs:174)
Obi.ObiColliderBase.OnDisable () (at Assets/Obi/Scripts/Common/Collisions/ObiColliderBase.cs:223)



Code:
NullReferenceException: Object reference not set to an instance of an object
Obi.ObiColliderWorld.UpdateRigidbodyVelocities (Obi.ObiSolver solver) (at Assets/Obi/Scripts/Common/Collisions/ObiColliderWorld.cs:634)
Obi.ObiSolver.CompleteSimulation () (at Assets/Obi/Scripts/Common/Solver/ObiSolver.cs:1741)
Obi.ObiSolver.Teardown () (at Assets/Obi/Scripts/Common/Solver/ObiSolver.cs:1282)
Obi.ObiSolver.RemoveActor (Obi.ObiActor actor) (at Assets/Obi/Scripts/Common/Solver/ObiSolver.cs:1918)
Obi.ObiActor.RemoveFromSolver () (at Assets/Obi/Scripts/Common/Actors/ObiActor.cs:381)
Obi.ObiActor.OnDisable () (at Assets/Obi/Scripts/Common/Actors/ObiActor.cs:343)

Print this item