Search Forums

(Advanced Search)

Latest Threads
Managing dynamic constrai...
Forum: General
Last Post: Qriva0
23-12-2025, 10:40 AM
» Replies: 0
» Views: 156
Setting velocity to 0
Forum: Obi Cloth
Last Post: Qriva0
22-12-2025, 11:26 AM
» Replies: 7
» Views: 840
Non-uniform particle dist...
Forum: Obi Rope
Last Post: josemendez
22-12-2025, 09:23 AM
» Replies: 10
» Views: 3,309
Cloth backside collision ...
Forum: Obi Cloth
Last Post: Qriva0
19-12-2025, 10:07 AM
» Replies: 7
» Views: 1,086
Following Seas - Made wit...
Forum: Made with Obi
Last Post: josemendez
19-12-2025, 09:56 AM
» Replies: 1
» Views: 252
Obi 8: what's coming up
Forum: Announcements
Last Post: josemendez
12-12-2025, 08:41 AM
» Replies: 8
» Views: 1,613
Correct way to update mes...
Forum: Obi Fluid
Last Post: Voxelboy
10-12-2025, 12:48 AM
» Replies: 2
» Views: 509
How to make crane wire be...
Forum: Obi Rope
Last Post: chenji
09-12-2025, 10:47 AM
» Replies: 4
» Views: 918
How to let Rod not strech...
Forum: Obi Rope
Last Post: chenji
08-12-2025, 03:15 AM
» Replies: 3
» Views: 709
Animating rod rest positi...
Forum: Obi Rope
Last Post: Kira0tori
03-12-2025, 10:10 AM
» Replies: 43
» Views: 67,217

 
  Invalid Skinmap in Cloth Renderer
Posted by: jaripam - 24-10-2025, 01:26 PM - Forum: Obi Cloth - Replies (10)

Hey, 

I get this error message:
Invalid skinmap in cloth renderer (Obi Tearable Cloth). Make sure the skinmap is not null and suitable for the mesh and cloth blueprint being used.

I cannot use the tearable cloth, this error also occurs in the TearableCloth demo scene.

Unity 6.2 URP
Obi Cloth 7.1 (latest version)

Thanks!

Print this item

  Accuracy of Fixed Positions such as Start or End
Posted by: twocomet - 21-10-2025, 09:18 PM - Forum: Obi Rope - Replies (1)

Hello,
I’m writing to ask about a solution for an issue I encountered while using the Obi Rope.
When I attach the rope’s start to another object, I clearly set the start point to the object’s local (0, 0, 0). However, if the object moves strongly, or if I turn the Obi Solver off and on again, the attachment point sometimes shifts away from the specified position.
Additionally, even when only the start is fixed, the update speed of the fixed position seems quite slow while the object is moving. I suspect this happens because it’s only updated in FixedUpdate, but I wonder if there’s any way to modify this behavior.
Also, when the Obi Solver is turned off and the fixed object moves slightly, I’d like the rope to reattach to the newly specified fixed position relative to the object when the solver is turned back on. Would I need to modify the Obi Particle Attachment directly to achieve this? I think there should be an internal option to choose the update method or specify fixed local position and rotation, and it should be guaranteed to work properly.
If there’s any external function or component that can update or refresh these position and offset values dynamically, please let me know.
For now, I’d be happy if the issues mentioned above could be resolved while using the system.
Thank you very much.

Print this item

  Should actor massScale affect all aspects of simulation?
Posted by: Qriva0 - 17-10-2025, 03:55 PM - Forum: Obi Rope - Replies (14)

Hi, obi actors (in my case rod) have got field with name massScale. 
In mu understanding this is multiplier for particle mass and, indeed according to code it's used to with rotational mass and standard mass when blueprint is loaded.
However expected result was that it just influences weight of the actor, so when two actors collide, then the other one is heavier, but the result is that it affects a lot of things, for example compliances does not work in the same way, or collision with static colliders is alos different (but it could be side offect of compliance).
In theory that make sense because compliance is actually just added to weight.

Example from constraint:

Code:
float3 dlambda = (omega.value.xyz - compliances * lambdas[i]) / (compliances + new float3(w1 + w2 + BurstMath.epsilon));

In any case, is that expected result? Should mass scale affect everything in this way? If yes, then what is affected except constraint? (I get completely different lambdas)
It seems it influences collision with static colliders too and also velocity applied to body, but shouldn't velocity be mass indepentent? (I add velocity with spring to controll rod movement)

Print this item

  Mixing 2D and 3D Physics results in Obi MissingReferenceException:
Posted by: this_guy - 17-10-2025, 03:44 PM - Forum: General - Replies (1)

The Problem

After upgrading to Obi Cloth 7.1, my project suddenly produced the error

"MissingReferenceException: The object of type 'ObiRigidbody2D' has been destroyed but you are still trying to access it. Your script should either check if it is null or you should not destroy the object."

This error was happening everywhere and on every frame!


The Solution

My project mixes 2D and 3D physics on purpose. The cause of the error was this snippet of gameobject hierarchy

> Rigidbody 2D
  > Box Collider 2D
  ...
  > Box Collider (i.e. a 3D collider)
    Obi Collider (i.e. the 3D version of ObiCollider

Notice the 2D Unity Rigidbody mixed with the 3D Unity Box Collider and 3D Obi Collider. 

The fix is to insert a 3D Unity Rigidbody below the 2D Unity Rigidbody like

> Rigidbody 2D
  > Box Collider 2D
  ...

  > Rigidbody (i.e. Unity's 3D Rigidbody component) 
    Box Collider (i.e. a 3D collider)
    Obi Collider (i.e. the 3D version of ObiCollider

I also marked the (3D) Rigidbody as "Is Kinematic" so that the 2D Box Collider and the 3D Box Collider would behave as if they are part of the same Rigidbody (which is the behavior I'm looking for).


Explanation

In the editor, Obi thought that everything was fine with the original hierarchy. ObiCollider was happy because there was a 3D Unity Collider on the same gameobject that the ObiCollider was attached to. And at runtime, just as the online documentation says, Obi "look[ed] for the first Rigidbody component up its hierarchy and attach[ed] an ObiRigidbody component to it." Since the first Rigidbody component Obi encountered was the Rigidbody2D, Obi added an ObiRigidbody2D component to the hierarchy like this

> Rigidbody 2D 
  Obi Rigidbody 2D

  > Box Collider2D
  ...
  > Box Collider (i.e. a 3D collider)
    Obi Collider (i.e. the 3D version of ObiCollider



But then Obi threw the above MissingReferenceException. 

I traced the Obi code a bit. The error is thrown from ObiRigidbody2D.CacheVelocities() where it turns out that this is null!! I didn't know that was possible Sonrisa . I think it has something to do with parallelization. One thread deleted the ObiRigidbody2D (I'm not exactly sure where in the code the deletion happens), but there was still a reference to the obiRigidbody2D in memory that is able to be called??

At any rate, by removing more and more of the gameobjects in my scene I eventually whittled the object hierarchy down to the above original tree and noticed the mixing of 2D and 3D components and then remembered that it was an ObiRigidbody2D that was being deleted and throwing the error. On a whim, I modified the hierarchy to be:

> Rigidbody 2D
  > Box Collider 2D
  ...

  > Rigidbody (i.e. Unity's 3D Rigidbody component) 
    Box Collider (i.e. a 3D collider)
    Obi Collider (i.e. the 3D version of ObiCollider

At runtime, Obi now adds an ObiRigidbody(2D) to both the upper and the lower gameobject. But I guess that's just what is supposed to happen(?)

> Rigidbody2D
  ObiRigidBody2D
  > Box Collider 2D
  ...

  > Rigidbody (i.e. Unity's 3D Rigidbody component) 
    ObiRigidbody (i.e. the 3D version of ObiRigidbody)
    Box Collider (i.e. a 3D collider)
    Obi Collider (i.e. the 3D version of ObiCollider

But most importantly... All the errors go away!

Print this item

  Built in renderer: fluid texture missing
Posted by: AnupamSingh - 10-10-2025, 09:42 AM - Forum: Obi Fluid - Replies (2)

Hi, I am using Obi Fluid 7.1 in built in pipeline. The textures come fine in scene view but not in game view. Obi Fluid Built In Renderer Feature' component is added to camera. How can i fixed this? Thanks!

Print this item

  How to get collision impulse properly
Posted by: Qriva0 - 09-10-2025, 01:34 PM - Forum: General - Replies (3)

I read collision normal impulse, it's said that unit is newtons x time x time, however I am unable to get timestep independent force.
I tried to divide that force by substep time squared or timestep squared, but the value I get is not similar - I would expect to get very similar force whatever the substep count is 4 or 8.
The goal is to detect if I push against something with force greater than X.

Also is tangent impulse never set? Or it's set only for particles or mesh colliders (I use SDF)?

Print this item

  SDF interpolation
Posted by: Qriva0 - 07-10-2025, 01:09 PM - Forum: General - Replies (7)

Hi, I wonder what would be a good way to modify distance field during runtime.
In my case there are several distance fields, we can treat them as animation keyframes to make this example simple -I want to interpolate between them over time and use it for collision.
The problem with ASDF is those trees have got different number of nodes and it's not trivial to generate new interpolated SDF. What would be good way to tackle this problem?

The best way would be to generate SDF for every update and just swap current nodes in distance field (note I use burst backend), I guess another option is to just sample both an interpolate result, but I would need to modify obi sagnificantly.

Furthermore main question is if such a collision is going to work properly when it comes to simulations itself, I did test with hard swapping colliders and without interpolation it jumps, because of depenetration, so I am not even sure if this would work for normal timesteps (50-60).

Print this item

  Constrain two rods into each other
Posted by: Qriva0 - 26-09-2025, 04:12 PM - Forum: Obi Rope - Replies (3)

I would like to constrain rod by another one and align them to each other.
The way how I want this to work could be compared to putting one rod into another one, like into pipe.

   

I managed to write some script that maps particles from first rod to target position on another second rod (based on displacement), but this method fails to create stable alignment.
That script uses end of simulation to run constraint for both rods on each other. Position is casted and delta is based on nearest particle weights, but I guess because I don't mix orientations it fails to keep shape properly or it's caused by the fact it runs after simulation, but I hope I am wrong. Current result is some kind of broke, because outside of constraint particles "break" into their prefered direction, it's more like teleportation of common part, than physical constraint.

   

My question is - what things I need to take into account to make it work (even if not perfect), and is it actually possible at all without modification of Obi itself?
I also tried to pin particles of inner rod by setting invMass to 0, it kind of works better, but the problem is that it's one sided and first rod does not influence second one.
I wish there was way to kind of "blend" shapes of both rods into each other and make forces to work properly.

Print this item

  Stitcher breaks simulation
Posted by: Qriva0 - 19-09-2025, 11:47 AM - Forum: General - Replies (2)

Enabling or disabling ObiStitcher does not work properly, because simulation is running, error is logged to console.
However deactivation of gameobject with stitcher actually breaks solver in some way and simulation does not work anymore - unity must be restarted.



Attached Files Thumbnail(s)
   
Print this item

  Error building Player: Shader error in 'FluidFoamCollisions'
Posted by: chenji - 18-09-2025, 05:51 PM - Forum: Obi Rope - Replies (2)

I'm not sure how to reproduce in a demo project but my main project now often get this error when I "build and run" (target platform is Android, Obi Rope 7.1):

Error building Player: Shader error in 'FluidFoamCollisions': Buffer count exceeding hard limit. No known hw supports this shader. Consider combining separate buffers into one containing struct elements. at kernel SolveDiffuseContacts (on gles3)


Is there a way to eliminate this problem? I'm only using Obi Rope and this component looks is not related to Obi Rope so maybe I can just do some delete work to work around?

Print this item