Latest Threads |
Fluid ignores colliders o...
Forum: Obi Fluid
Last Post: josemendez
Today, 09:03 AM
» Replies: 2
» Views: 38
|
Particle attachments dont...
Forum: Obi Rope
Last Post: josemendez
13-02-2025, 03:09 PM
» Replies: 1
» Views: 100
|
Dynamic attachment to fix...
Forum: Obi Rope
Last Post: josemendez
12-02-2025, 02:52 PM
» Replies: 9
» Views: 338
|
Changing rope lenth creat...
Forum: Obi Rope
Last Post: josemendez
11-02-2025, 08:35 PM
» Replies: 3
» Views: 179
|
Preventing fabric from vi...
Forum: Obi Cloth
Last Post: josemendez
10-02-2025, 12:36 PM
» Replies: 1
» Views: 125
|
Trouble with Attachments
Forum: Obi Softbody
Last Post: beegon
07-02-2025, 08:29 PM
» Replies: 3
» Views: 229
|
Mesh creating
Forum: Obi Rope
Last Post: alicecatalano
07-02-2025, 11:28 AM
» Replies: 13
» Views: 22,499
|
Collider interactions
Forum: Obi Softbody
Last Post: josemendez
07-02-2025, 09:42 AM
» Replies: 1
» Views: 158
|
RuntimeRopeGenerator basi...
Forum: Obi Rope
Last Post: ayoci
04-02-2025, 04:30 PM
» Replies: 0
» Views: 1,545
|
static 2nd attachment cau...
Forum: Obi Rope
Last Post: josemendez
04-02-2025, 07:53 AM
» Replies: 1
» Views: 197
|
|
|
System.ObjectDisposedException: The UNKNOWN_OBJECT_TYPE has been deallocated |
Posted by: bugbeeb - 15-06-2024, 01:25 AM - Forum: Obi Rope
- Replies (2)
|
![](https://obi.virtualmethodstudio.com/forum/images/default_avatar.png) |
Seeing this exception when debugging in visual studio,
System.ObjectDisposedException: The UNKNOWN_OBJECT_TYPE has been deallocated, it is not allowed to access it
at (wrapper managed-to-native) Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle.CheckDeallocateAndThrow_Injected(Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle&)
at Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle.CheckDeallocateAndThrow (Unity.Collections.LowLevel.Unsafe.AtomicSafetyHandle handle) [0x00000] in <0652bf0e14024522b5c92574ad0ef550>:0
at Obi.ObiNativeList`1[T].Dispose (System.Boolean disposing) [0x0003d] in C:\Users\bugbe\SpinnyWheels\Assets\Obi\Scripts\Common\DataStructures\NativeList\ObiNativeList.cs:110
at Obi.ObiNativeList`1[T].Finalize () [0x00002] in C:\Users\bugbe\SpinnyWheels\Assets\Obi\Scripts\Common\DataStructures\NativeList\ObiNativeList.cs:90
Unity version 2022.3.30
Obi Rope Version 6.5.4
|
|
|
Cloth curtain |
Posted by: balaji.v - 13-06-2024, 01:38 PM - Forum: Obi Cloth
- Replies (2)
|
![](https://obi.virtualmethodstudio.com/forum/images/default_avatar.png) |
Hi,
How can we implement a obi cloth curtain that can expand and shrink using controller drag in Quest?
Thanks.
|
|
|
Efficiently determine actor under ray |
Posted by: 4ringz - 12-06-2024, 11:47 PM - Forum: General
- Replies (2)
|
![](https://obi.virtualmethodstudio.com/forum/images/default_avatar.png) |
Hi,
I'd appreciate some quick advice re: whether there's a more performant way to accomplish what I'm trying to do OOTB. For a first-person "grabbing" system I need to get the particle and related Actor (specifically softbody, but right now code works w/ all actors) closest to an origin point with a given ray.
My current code (adapted crudely from the particle picker example scripts) works, but as it's iterating through A) all particle positions and then B) an undetermined number of softbodies and each of their particles again to relate the particle to an Actor, it's quite inefficient, as I may need many softbodies as well as non-softbody particles in my scenes.
If there are cached bounds/extents per Obi actor I could cluster them into volumes, cast the ray through volumes, and then only iterate over each of their particles, but if those structures exist in ObiActor I can't seem to locate them.
Appreciate any help, thanks!
Code: public ObiActor GetActor(ObiSolver solver, int particleIndex){
foreach (ObiActor actor in solver.actors){
for (int i = 0; i < actor.solverIndices.count; i++){
if (actor.solverIndices[i] == particleIndex){
return actor;
}
}
}
return null;
}
public int Raycast(ObiSolver solver, Ray ray, float radiusScale, float maxDistance, Vector3 origin){
if (solver == null) return 1;
int hitParticle = -1;
float closestMu = float.MaxValue;
float closestDistance = float.MaxValue;
Matrix4x4 solver2World = solver.transform.localToWorldMatrix;
// Find the closest particle hit by the ray
for (int i = 0; i < solver.positions.count; ++i){
Vector3 worldPos = solver2World.MultiplyPoint3x4(solver.positions[i]);
if (Vector3.Distance(worldPos, origin) > maxDistance) continue;
float mu;
Vector3 projected = ObiUtils.ProjectPointLine(ray.origin, ray.origin + ray.direction, worldPos, out mu, false);
float distanceToRay = Vector3.SqrMagnitude(worldPos - projected);
// Disregard particles behind the camera:
mu = Mathf.Max(0, mu);
float radius = solver.principalRadii[i][0] * radiusScale;
if (distanceToRay <= radius * radius && distanceToRay < closestDistance && mu < closestMu){
closestMu = mu;
closestDistance = distanceToRay;
hitParticle = i;
}
}
return hitParticle;
|
|
|
Towel simulation in Quest |
Posted by: balaji.v - 12-06-2024, 07:31 AM - Forum: Obi Cloth
- Replies (13)
|
![](https://obi.virtualmethodstudio.com/forum/images/default_avatar.png) |
Hi,
I am working on a VR project where I need to grab a towel using a controller and then fold and unfold it, as well as rub the cloth on other objects with collision.
Could you please suggest possible ways to achieve the above simulation?
Thanks.
|
|
|
DIINotFoundException when attempting to import ObiRope |
Posted by: orangefire - 11-06-2024, 05:21 AM - Forum: Obi Rope
- Replies (4)
|
![](https://obi.virtualmethodstudio.com/forum/images/default_avatar.png) |
Hello,
I was trying to use ObiRope in Unity 2022.3.18f1 URP. When importing the package via Package Manager, I encountered the following errors
![[Image: AccJccH]](https://imgur.com/a/AccJccH)
Code: DllNotFoundException: libOni assembly:<unknown assembly> type:<unknown type> member:(null)
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)
DllNotFoundException: libOni assembly:<unknown assembly> type:<unknown type> member:(null)
Obi.ObiProfiler.DisableProfiler () (at Assets/Obi/Scripts/Common/Utils/ObiProfiler.cs:84)
Obi.ObiFixedUpdater.Update () (at Assets/Obi/Scripts/Common/Updaters/ObiFixedUpdater.cs:67)
Not sure how to resolve, as the example scenes don't seem to work (I don't see any rope appearing). Some of the materials are also failing to convert to URP (namely the VertexColor one). Would appreciate any help in resolving this!
EDIT: Reading thru the documentation, I made sure Burst, Jobs, Mathematics, and Collections packages are imported as well. However, when I'm trying to open my project again, I get the following compile error
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 was able to quickly change the code from contents.length to contents.Length to fix this. Afterwards project was able to open, but I still get the above DIINotFoundException when attempting to play the example scenes.
|
|
|
Rope Collision Detection |
Posted by: kripa1415 - 10-06-2024, 08:18 AM - Forum: Obi Rope
- Replies (3)
|
![](https://obi.virtualmethodstudio.com/forum/images/default_avatar.png) |
Hi,
I have 3 ropes tanged. I am untangling first rope and avoided collision from the other 2 ropes. How do I detect this ?
I have the on collision subscribed on the solver and getting the contacts. But I want to filter rope wise
RopeGenerator.solver.OnParticleCollision += Solver_OnParticleCollision;
private void Solver_OnParticleCollision(ObiSolver solver, ObiSolver.ObiCollisionEventArgs contacts)
{
if (contacts.contacts.Count <= 0)
{
}
else
{
}
}
|
|
|
Softbody vehicle with many meshes |
Posted by: protomor - 08-06-2024, 07:15 AM - Forum: Obi Softbody
- Replies (3)
|
![](https://obi.virtualmethodstudio.com/forum/images/default_avatar.png) |
Howdy! I'm aiming to do BeamNG like crash damage and come to the conclusion that the Obi Softbody for Unity is the best option for that kind of deformation. The cars come in FBX files with multiple meshes under it. Is there a way to programatically load all of them in one go or some guidance on how to create all of this at runtime? Ideally, the meshes will deform and things like doors will come off. It might be simpler to create primative objects that bind to the overall meshes. Any guidance is appreciated.
|
|
|
|