Search Forums

(Advanced Search)

Latest Threads
How did they do with with...
Forum: Obi Cloth
Last Post: josemendez
13-03-2026, 10:53 PM
» Replies: 5
» Views: 320
Non destructive blueprint...
Forum: General
Last Post: Qriva0
06-03-2026, 02:40 PM
» Replies: 5
» Views: 458
Anisotropic Particle Dens...
Forum: Obi Softbody
Last Post: josemendez
03-03-2026, 08:22 AM
» Replies: 1
» Views: 242
Alternative methods to an...
Forum: Obi Softbody
Last Post: midivagrant
27-02-2026, 04:50 PM
» Replies: 2
» Views: 497
Burst job schedule overhe...
Forum: General
Last Post: Qriva0
23-02-2026, 02:23 PM
» Replies: 4
» Views: 778
Trying to make obi fluids...
Forum: Obi Fluid
Last Post: josemendez
20-02-2026, 03:55 PM
» Replies: 5
» Views: 993
VR Fishing Project
Forum: Made with Obi
Last Post: astro.domine
19-02-2026, 07:49 PM
» Replies: 0
» Views: 210
Emit rope like silly stri...
Forum: Obi Rope
Last Post: josemendez
19-02-2026, 12:01 PM
» Replies: 18
» Views: 3,683
Procedurally applying dif...
Forum: Obi Cloth
Last Post: josemendez
18-02-2026, 11:50 AM
» Replies: 1
» Views: 380
Softbody High Particle Co...
Forum: Obi Softbody
Last Post: Eritar
13-02-2026, 02:15 PM
» Replies: 6
» Views: 1,050

 
Exclamación NullReference
Posted by: Evgenius - 29-01-2019, 09:15 AM - Forum: Obi Cloth - Replies (2)

I'm trying to create a simple cloth, but no matter what I do, create my own or just copy/paste cloth (with solver and other components) from sample scene, I get an exception:

NullReferenceException: Object reference not set to an instance of an object
Obi.ObiCloth.AddToSolver (System.Object info) (at Assets/Obi/Scripts/Actors/ObiCloth.cs:167)
Obi.ObiActor.Start () (at Assets/Obi/Scripts/Actors/ObiActor.cs:163)

Debugging shows that the null is in the "topology.HalfEdgeMesh", but as I said, I just copied the existing and working cloth into another, almost empty scene (at least without any other Obi objects). There were no such a problem with 3.5

Print this item

Pregunta Performance comparison
Posted by: Evgenius - 29-01-2019, 07:25 AM - Forum: Obi Cloth - Replies (2)

I tested two sample scenes. One in Unity 2017.1.0, with ObiCloth 3.5, and the other one in Unity 2018.3.1, with ObiCloth 4.0. Result is totally unexpected Triste I thought it would be the opposite.

2017 (3.5):
[Image: oLgxR37.png]

2018 (4.0):
[Image: doxcR7C.png]

Print this item

  Initializing Obi Cloth at runtime?
Posted by: aelbannan - 28-01-2019, 10:13 PM - Forum: Obi Cloth - Replies (1)

Hi,

Any way to initialize Obi Cloth at runtime via script? I am creating a mesh topology dynamically and want to initialize it at runtime.

Thanks.

Print this item

  ObiRope 2D + threaded rings
Posted by: oraspec - 28-01-2019, 07:47 PM - Forum: Obi Rope - Replies (1)

Hi guys,

I am looking for a solution to have 2D thread with rings on it. Rings should not be attached to specific particle. It should move on a thread back and forth influenced by real physics/gravity. Can you advise whether it is possible to realize it with ObiRope for 2D without programming the threaded rings physics?

Thanks in advance.

Print this item

  Instantiate Rope during Runtime
Posted by: crychair - 28-01-2019, 05:02 PM - Forum: Obi Rope - Replies (3)

Code:
    public void makeRope(Vector3 pos1, Vector3 pos2, GameObject obj1, GameObject obj2) {
        
        
        GameObject rope = Instantiate(obiRopePrefab);
        BetterRopeHelper helper = rope.GetComponent<BetterRopeHelper>();
        helper.SetPoints(pos1, pos2);
        helper.GenerateRope(obj1, obj2);

    }
Code:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Obi;

[RequireComponent(typeof(ObiRope))]
[RequireComponent(typeof(ObiCatmullRomCurve))]
public class BetterRopeHelper : MonoBehaviour
{


   public ObiSolver solver;
   public ObiRopeSection section;
   public Material material;
   private ObiActor actor;
   private ObiRope rope;
   private ObiCatmullRomCurve path;

   private Vector3 start, end;

   public void SetPoints(Vector3 startpoint, Vector3 endpoint)
   {
       // Get all needed components and interconnect them:
       rope = GetComponent<ObiRope>();
       path = GetComponent<ObiCatmullRomCurve>();
       rope.Solver = solver;
       rope.ropePath = path;
       rope.section = section;
       GetComponent<MeshRenderer>().material = material;

       // Calculate rope start/end and direction in local space:
       start = startpoint;
       end = endpoint;
       Vector3 localStart = startpoint;
       Vector3 localEnd = endpoint;
       Vector3 direction = (localEnd - localStart).normalized;

       // Generate rope path:
       path.controlPoints.Clear();
       path.controlPoints.Add(localStart - direction);
       path.controlPoints.Add(localStart);
       path.controlPoints.Add(localEnd);
       path.controlPoints.Add(localEnd + direction);
   }

   public void GenerateRope(GameObject obj1, GameObject obj2)
   {
       // Setup the simulation:
       StartCoroutine(Setup(obj1, obj2));
   }

   IEnumerator Setup(GameObject obj1, GameObject obj2)
   {

       // Generate particles and add them to solver:
       yield return StartCoroutine(rope.GeneratePhysicRepresentationForMesh());
       rope.AddToSolver(null);

       // Fix first and last particle in place:
       //rope.invMasses[0] = 0;
       //rope.invMasses[rope.UsedParticles - 1] = 0;
       //Oni.SetParticleInverseMasses(solver.OniSolver, new float[] { 0 }, 1, rope.particleIndices[0]);
       //Oni.SetParticleInverseMasses(solver.OniSolver, new float[] { 0 }, 1, rope.particleIndices[rope.UsedParticles - 1]);
       //rope.PushDataToSolver(ParticleData.INV_MASSES);


       //batchConstraints = pinConstraints.GetBatches() as ObiPinConstraintBatch;
       //pinConstraints.RemoveFromSolver(null);
       //Debug.Log(obj1.name);
       //batchConstraints.AddConstraint(0, obj1.GetComponent<ObiCollider>(), Vector3.zero, 0f);
       //batchConstraints.AddConstraint(rope.UsedParticles - 1, obj2.GetComponent<ObiCollider>(), Vector3.zero, 0f);
       //pinConstraints.AddToSolver(null);
       //pinConstraints.PushDataToSolver();
       rope.PinConstraints.RemoveFromSolver(null);
       ObiPinConstraintBatch batch = (ObiPinConstraintBatch)rope.PinConstraints.GetFirstBatch();
       Vector3 offset1 = obj1.transform.InverseTransformPoint(start);
       Vector3 offset2 = obj1.transform.InverseTransformPoint(start);
       batch.AddConstraint(0, obj1.GetComponent<ObiCollider>(), offset1, 1f);
       batch.AddConstraint(rope.UsedParticles - 1, obj2.GetComponent<ObiCollider>(), offset2, 1f);
       rope.PinConstraints.AddToSolver(null);


       //actor.enabled = true;
   }
}


I have the method and helper above and it works. My issue is that I want the rope to be taught on instantiation rather than modifying it after. Is there some way to do this. currently when the rope is generated it become slack and weighs itself down. 

Any help is appreciated.

Print this item

  Trial version?
Posted by: JonesW - 28-01-2019, 04:33 PM - Forum: General - No Replies

Hi,

I'm intrigued by the assets you have created and I would like to try them out before buying.
Is there any possibility for a trial or a demo version to try out on my own?

Cheers!

Print this item

  Can you show me a boob & butt physics?
Posted by: akuei2 - 28-01-2019, 10:31 AM - Forum: Obi Softbody - Replies (2)

Hi, I'm doing a practice at whole morning ... but, I still no idea how to achieve boob & butt physics with this plugin.

Can you show me some tutorial with video style ?

Print this item

  Problem of FinalIK and 4.0 ObiAnimatorController
Posted by: yasuchiki - 28-01-2019, 02:27 AM - Forum: Obi Cloth - Replies (2)

Hello! I am using ObiCloth for normal recalculation after character bone deformation. There was no problem with the combination with FinalIK and ObiCloth so far. I think that ObiAnimatorController which can automatically do to the root of the character is absorbing the delay problem.
 
However, in the latest version 4.0, when using FinalIK, the mesh applying ObiCloth is deformed, but the mesh not using other Obi got encountered a problem that bone deformation is not done.
This phenomenon can be solved by disabling FinalIK, even if you disable ObiAnimatorController, it will be resolved.
However, in that case, we will use Unity's Animator and one frame delay will occur with the mesh applying ObiCloth and the other skinning parts.
 
There was no problem until ObiCloth 3.5, ObiAnimatorController was valid and delayed without using FinalIK.
The execution order of scripts using 3.5 and 4.0, the solver, and the update settings of Animator are the same. I tried various things, but it did not solve it.
 
I think that there is something wrong with ObiAnimatorController in this 4.0. Can you solve this problem?
As far as I'd like to use it back to 3.5,
I also want to use the 4.0 Fluid and Softbody, so I'd like to ask for a solution as soon as possible.
 
Or, will you release a new component (new asset) only with the normal recalculation function of the mesh that transforms the bone? I think that it is a very pleasing feature for users who were dissatisfied with bone deformation in Unity so far.

Print this item

  [Solved] Oni.WaitForAllTasks - Slow performance.
Posted by: Tesrym - 27-01-2019, 02:04 PM - Forum: Obi Softbody - Replies (6)

Using Unity 2018.3.3f1 + HD Render Pipeline
Softbody 4

I have low performance on most scenes.
Deep profiler image attached highlighting Oni.WaitForAllTasks.
No errors or warnings, except for Plastic Sheet scene.*

Affected scenes:
Deformable Barrels
Elastic Character
*Plastic Sheet (The wall in this scene is missing a mesh, causing NullReferenceException for ObiSoftBody.CreateBones)
Rubber Dragon
---
Ball Pool is OK

This is a clean new project.



In 2018.2.20f1, the profiler has a different look.
No HD Render Pipeline in this project.
Clean project to test the asset.

Print this item

  Changing values procedurally via code
Posted by: Lozmosis - 27-01-2019, 09:58 AM - Forum: Obi Cloth - Replies (1)

Hello devs,

Noob here,

I'm trying to set up some nice egg/yolk physics.

One of the things I'm trying to do is to have the soft body yolk inflate from the cracked egg like a balloon.

The way I've found that would work is to lerp the values:
- ObiVolumeConstraints.overpressure from 0 to 70
- ObiDistanceConstraints.stretchingScale from 0 to 4

I've tried setting this up through a co-routine, or using animations to do so but neither seem to work.

The values do change in the inspector, however it doesn't seem to affect the mesh.

When I modify these values real-time in the editor while running, the mesh responds fine (sliding the values up and down will inflate/deflate the yolk).

Any tips?

Much appreciated!
Thank you <3

Print this item