Search Forums

(Advanced Search)

Latest Threads
In SolidifyOnContact exsa...
Forum: Obi Fluid
Last Post: asimofu_ok
1 minute ago
» Replies: 2
» Views: 16
Is it possible to render ...
Forum: Obi Fluid
Last Post: asimofu_ok
6 hours ago
» Replies: 2
» Views: 40
Cloth has stretchy behavi...
Forum: Obi Cloth
Last Post: Andreia Mendes
Yesterday, 02:38 PM
» Replies: 22
» Views: 797
Get separate particles pa...
Forum: Obi Fluid
Last Post: slimedev
29-07-2025, 06:51 PM
» Replies: 6
» Views: 3,157
Solver outside of hierarc...
Forum: General
Last Post: Jawsarn
29-07-2025, 06:19 PM
» Replies: 4
» Views: 139
Rope ignoring colliders o...
Forum: Obi Rope
Last Post: josemendez
24-07-2025, 07:03 AM
» Replies: 1
» Views: 124
Ladder made by Ropes (Rat...
Forum: Obi Rope
Last Post: josemendez
23-07-2025, 01:43 PM
» Replies: 5
» Views: 302
can you remove particles ...
Forum: Obi Softbody
Last Post: josemendez
22-07-2025, 02:19 PM
» Replies: 1
» Views: 176
ObiRope Mesh Renderer
Forum: Obi Rope
Last Post: quent_1982
08-07-2025, 11:27 AM
» Replies: 4
» Views: 544
How to dynamically change...
Forum: Obi Rope
Last Post: quent_1982
08-07-2025, 06:34 AM
» Replies: 6
» Views: 759

 
  Burst not installed?
Posted by: Barliesque - 16-07-2024, 01:16 AM - Forum: Obi Fluid - Replies (6)

I'm getting pretty poor performance, which I'm guessing is due to Burst apparently not being active.
The BurstCollisionWorld script is disabled because OBI_BURST is undefined.  I see that the Obi asmdef defines it, as long as the installed version of Burst is at least 1.2.3-verified.  Burst 1.8.12 is installed in the project, so I don't understand what the issue is.  Any help would be greatly appreciated!

Print this item

  Can't Install
Posted by: PaPiPuGames - 13-07-2024, 09:35 PM - Forum: Obi Fluid - Replies (1)

When I tried to import Obi Fluid from package manager, I can't import files under libOni.bandle.
Script Updating Consent window shows when I importing.
The window say that "Some of this projects source files refer to API that has changed. These can be automatically updated. It is recommended to have a backup of the project before updating. Do you want these file to be updated?"
Assets/Obi/Scripts/Common/Rendering/ObiDistanceFieldRendere.cs

Whiecever I chose Yes or No, I can't import files in libOni.bundles folder.
I tried several times with erasing Obi folder in my project, but it didn't work.

The below error is shown at console.
Assets/Obi/Scripts/Common/Backends/Burst/DataStructures/NativeMultilevelGrid.cs(74,46): error CS1061: 'UnsafeList<K>' does not contain a definition for 'length' and no accessible extension method 'length' accepting a first argument of type 'UnsafeList<K>' could be found (are you missing a using directive or an assembly reference?)

Unity:2022.3.24f1
MacBook Pro 16 inch, 2023
Apple M2 Max, 96GB Memories, OS Sonoma 14.4.1

Please tell me how to fix this.
Thanks.



Attached Files Thumbnail(s)
       
Print this item

Exclamación Bug of particle sleep
Posted by: GuoliZheng - 12-07-2024, 06:02 AM - Forum: Obi Fluid - Replies (2)

Dear Developers,
I have encountered a bug related to particle sleeping, which has caused significant issues in my application scenario. As demonstrated in the video, I initially set the sleep threshold value to 0.5. When particles are emitted at a low height, they correctly enter a sleep state. However, when the emission height is increased, the particles fall to the ground and exhibit slow creeping movements. At this point, I have to increase the sleep threshold to 10 to get them to sleep. The higher the velocity the particles experience during activity, the harder it is for them to sleep, which seems unreasonable.
My particles have a relatively small radius of 0.01m. However, this issue also occurs with larger particles, such as those with radii of 0.03m, 0.05m, and 0.08m. Could you please explain why this happens and how it can be resolved? The burst solver back end also shows this issue, although to a lesser extent.
I look forward to your response.
Best regards,

bug video:↓
https://www.bilibili.com/video/BV1kebHec...782833d31a

Print this item

  Usage of particle position variables
Posted by: wenhao_zheng - 11-07-2024, 03:12 PM - Forum: Obi Softbody - Replies (3)

hi!


I see multiple variables about particle coordinates in IkSolver. They are: positions, restPositions, prevPosition, startPosition.
What is the specific update time for them?


In my case,I used two rigid bodies to try to lift the soft body.
Since I can't lift the soft body directly through friction, my design is to use collision detection to update the positions of the particles on the contact surface, so that the outer wall of the soft body is lifted by the rigid body.
For example, as shown in the following code, when OnObiCollision, the y component change of the rigid body is provided to the colliding particles. Although this implementation can make the soft body shake slightly, it still cannot be lifted completely.
If my code implementation is correct, I don't quite understand this problem. In my code, shouldn't the contact surface of the soft body be completely at the same height as the rigid body?
   


Code:
    public void OnObiCollision(ObiSolver solver, ObiNativeContactList contacts)
    {
        collisionnParticleSolverIndexes.Clear();
        leftCollisionParticleSolverIndexes.Clear();
        rightCollisionParticleSolverIndexes.Clear();

        for (int index = 0; index < contacts.count; index++)
        {
            Oni.Contact contact = contacts[index];

            int particleIndexInSolver = solver.simplices[contact.bodyA];

            ObiColliderBase collider = colliderWorld.colliderHandles[contact.bodyB].owner;
            if (collider.transform == leftClaw)
            {
                leftCollisionParticleSolverIndexes.Add(particleIndexInSolver);
            }
            else if (collider.transform == rightClaw)
            {
                rightCollisionParticleSolverIndexes.Add(particleIndexInSolver);
            }
        }

        isBind = leftCollisionParticleSolverIndexes.Count + rightCollisionParticleSolverIndexes.Count > 400;

        if (isBind)
        {
            float leftClawHeightOffset = leftClaw.transform.position.y - leftClawHeightBuffer;
            float rightClawHeightOffset = rightClaw.transform.position.y - rightClawHeightBuffer;

            for (int index = 0; index < leftCollisionParticleSolverIndexes.Count; index++)
            {
                int particleIndex = leftCollisionParticleSolverIndexes[index];

                solver.positions[particleIndex] = solver.startPositions[particleIndex] + new Vector4(0, leftClawHeightOffset, 0);
                solver.velocities[particleIndex] = Vector4.zero;
                solver.angularVelocities[particleIndex] = Vector4.zero;
                solver.externalForces[particleIndex] = Vector4.zero;
                solver.externalTorques[particleIndex] = Vector4.zero;
            }
            for (int index = 0; index < rightCollisionParticleSolverIndexes.Count; index++)
            {
                int particleIndex = rightCollisionParticleSolverIndexes[index];


                solver.positions[particleIndex] = solver.startPositions[particleIndex] + new Vector4(0, rightClawHeightOffset, 0);
                solver.velocities[particleIndex] = Vector4.zero;
                solver.angularVelocities[particleIndex] = Vector4.zero;
                solver.externalForces[particleIndex] = Vector4.zero;
                solver.externalTorques[particleIndex] = Vector4.zero;
            }
        }

        leftClawHeightBuffer = leftClaw.transform.position.y;
        rightClawHeightBuffer = rightClaw.transform.position.y;
    }

By the way, in addition to modifying the positions of the contact surface particles during the collision callback, I also tried to provide the particles with additional upward velocity. But I always feel that the particles on the contact surface seem to be given a downward momentum at some point in some way I don't know.

While retaining gravity, I hope to find a way to present the effect of the soft body being stably fixed in the air by external forces. To be honest, the effect I expected is like ObiParticleAttachment, but due to some project reasons, I can't use ObiParticleAttachment.

Print this item

Triste Issues with Obi Cloth Simulation in Unity – "Shirt Exploding"
Posted by: gunmec - 10-07-2024, 02:48 PM - Forum: Obi Cloth - Replies (5)

Hi everyone,

I'm having trouble with the Obi Cloth asset in Unity. I'm trying to fit a 3D shirt model onto a 3D human model, but the shirt behaves unpredictably and appears to explode.

Details:

- Unity Version: 2022.3.3f1
- Obi Cloth Version: 6.5.4

Setup:
- A human model with MeshCollider and ObiCollider
- A shirt model with ObiCloth, ObiClothRenderer, and a correctly assigned blueprint
- ObiSolver with 8 substeps and Max Depenetration set to 10

Problems:

The shirt tears and looks like it's exploding, even when initially not colliding with the body.

Error Message when Generating Blueprint:

NullReferenceException: Object reference not set to an instance of an object
Obi.ObiActorBlueprintEditor.Refresh () (at Assets/Obi/Editor/Common/Blueprints/ObiActorBlueprintEditor.cs:416)
...


(But I can click on Edit and see the particles of the shirt).

I've tried adjusting physical parameters like Stretch Compliance and Bend Compliance, but without success. Does anyone have any idea how I can fix this issue?

Thanks in advance for your help!

Print this item

Corazón How can I extract the fluid rendering mesh?
Posted by: GuoliZheng - 10-07-2024, 02:34 PM - Forum: Obi Fluid - Replies (3)

Hello,
I have recently tried out the new grid-based fluid renderer and it looks fantastic, very captivating. Now, I would like to extract the mesh from a specific frame. There are many interesting things that can be done with this mesh, such as freezing it and setting it as a mesh collider. The possibilities are quite exciting to think about.
So, how should I go about doing this? How can I extract the mesh from a specific frame and turn it into a prefab, etc.?
Thank you!

Print this item

Corazón Version update help
Posted by: GuoliZheng - 10-07-2024, 09:41 AM - Forum: Obi Fluid - Replies (9)

Hello,
Thank you very much for the tremendous effort you put into Obi 7. I have obtained the custom package for this version. However, I have done a lot of work using Obi Fluid 6.5, and I have projects in the older version. How can I quickly update these projects to Obi Fluid 7 to avoid redundant work? When I tried to directly import the installation package and overwrite the existing one, many errors occurred.

Print this item

Estrella Burst Error
Posted by: aallenfx - 08-07-2024, 03:13 PM - Forum: Obi Cloth - Replies (1)

Hey,



I'm getting this import error. In my previous post things worked, then I tried importing a different obi product (obi fluid) and something got corrupted causing errors that won't self-resolve.



https://imgur.com/a/ud40C13





When deleting/re-importing I keep getting this error, for either or both:






Code:
Assets\Obi\Scripts\Common\Backends\Burst\DataStructures\NativeMultilevelGrid.cs(74,46): error CS1061: 'UnsafeList<K>' does not contain a definition for 'length' and no accessible extension method 'length' accepting a first argument of type 'UnsafeList<K>' could be found (are you missing a using directive or an assembly reference?)




I'm not sure where it came from since I hadn't changed any core things such as adding assembly asmdef files. I did add new packages like Mathematics/Collections/Burst





Burst is version 1.8.13. Updating to 1.8.16 didn't fix it.






I am using Unity 2022.3.22f1 with Universal Render Pipeline. The error is preventing me from loading the plugin.

Print this item

  iOS DllNotFoundException for empty project testing your examples iOS
Posted by: inacen - 08-07-2024, 02:12 PM - Forum: Obi Softbody - Replies (3)

Just testing out your example scenes in empty iOS project in Unity 2022.3.36f1

DllNotFoundException: libOni assembly:<unknown assembly> type:<unknown type> memberTristenull)
Obi.OniBackend.CreateSolver (Obi.ObiSolver solver, System.Int32 capacity) (at Assets/Obi/Scripts/Common/Backends/Oni/OniBackend.cs:17)
Obi.ObiSolver.Initialize () (at Assets/Obi/Scripts/Common/Solver/ObiSolver.cs:883)
Obi.ObiSolver.AddActor (Obi.ObiActor actor) (at Assets/Obi/Scripts/Common/Solver/ObiSolver.cs:1148)
Obi.ObiActor.AddToSolver () (at Assets/Obi/Scripts/Common/Actors/ObiActor.cs:348)
Obi.ObiActor.OnEnable () (at Assets/Obi/Scripts/Common/Actors/ObiActor.cs:323)

Print this item

  Rope between 2 trackers
Posted by: Xameal - 08-07-2024, 08:44 AM - Forum: Obi Rope - Replies (3)

Hello guys,

I need your help to find out if it's possible to create an Obi Rope between 2 trackers?
The idea is to make an extinguisher with a tracker on the "body" of the extinguisher, and an extinguisher at the end of the extinguisher nozzle with a hose connecting the 2 ends. As shown in the photo.

[Image: WSWX9LFA_Update-1.png]

The problem is that the trackers on Unity (ViveTracker or Meta Quest controllers used as trackers) are always positioned at (0, 0, 0). What's more, the ropes are very sensitive to gravity, collisions etc... And so with the trackers always moving (or almost), the rope has trouble staying in place and does 'tricks'. For example, it always turns like a 'skipping rope' around an axis.

Has anyone tried this before? Do you have any advice for this particular case? I'm sure I'm not the first person to want to create a flexible linked by 2 trackers Sonrisa .

Print this item