| 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
|
|
|
| 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.
|
|
|
| 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.
|
|
|
| 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!
|
|
|
| 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.
|
|
|
| [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.
|
|
|
| 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
|
|
|
|