Latest Threads |
Change rod section at run...
Forum: Obi Rope
Last Post: matty337s
Today, 06:07 AM
» Replies: 0
» Views: 18
|
Sliding along a rope
Forum: Obi Rope
Last Post: vrt0r
Yesterday, 07:43 PM
» Replies: 0
» Views: 19
|
In SolidifyOnContact exsa...
Forum: Obi Fluid
Last Post: asimofu_ok
Yesterday, 04:15 PM
» Replies: 2
» Views: 49
|
Is it possible to render ...
Forum: Obi Fluid
Last Post: asimofu_ok
Yesterday, 10:07 AM
» Replies: 2
» Views: 75
|
Cloth has stretchy behavi...
Forum: Obi Cloth
Last Post: Andreia Mendes
31-07-2025, 02:38 PM
» Replies: 22
» Views: 839
|
Get separate particles pa...
Forum: Obi Fluid
Last Post: slimedev
29-07-2025, 06:51 PM
» Replies: 6
» Views: 3,181
|
Solver outside of hierarc...
Forum: General
Last Post: Jawsarn
29-07-2025, 06:19 PM
» Replies: 4
» Views: 169
|
Rope ignoring colliders o...
Forum: Obi Rope
Last Post: josemendez
24-07-2025, 07:03 AM
» Replies: 1
» Views: 131
|
Ladder made by Ropes (Rat...
Forum: Obi Rope
Last Post: josemendez
23-07-2025, 01:43 PM
» Replies: 5
» Views: 315
|
can you remove particles ...
Forum: Obi Softbody
Last Post: josemendez
22-07-2025, 02:19 PM
» Replies: 1
» Views: 182
|
|
|
Obi Scripts Backends Burst issues |
Posted by: digimbyte - 31-03-2023, 07:42 AM - Forum: Obi Rope
- Replies (1)
|
 |
I have Burst 1.8.4 and Obi Rope 6.5.1 in a new project in 2022.2.12
With this, my console has the following 3 errors: - Assets\Obi\Scripts\Common\Backends\Burst\Solver\DequeueIntoArrayJob.cs(12,31): error CS8377: The type 'T' must be a non-nullable value type, along with all fields at any level of nesting, in order to use it as parameter 'T' in the generic type or method 'NativeQueue<T>'
- Assets\Obi\Scripts\Common\Backends\Burst\DataStructures\NativeMultilevelGrid.cs(34,13): error CS0305: Using the generic type 'UnsafeList<T>' requires 1 type arguments
- Assets\Obi\Scripts\Common\Backends\Burst\DataStructures\NativeMultilevelGrid.cs(88,36): error CS8377: The type 'NativeMultilevelGrid<T>.Cell<T>' must be a non-nullable value type, along with all fields at any level of nesting, in order to use it as parameter 'T' in the generic type or method 'NativeList<T>'
I found a thread where it was suggested that Burst 1.8.3 works, however this did not resolve it for me.
Additionally, I have tried looking for something in FAQ incase I missed a step or dependency version but it seems this is a niche or new bug.
Looking for a way to proceed, thanks.
|
|
|
Can I gather obi cloth |
Posted by: Elsiehar - 31-03-2023, 02:28 AM - Forum: Obi Cloth
- Replies (3)
|
 |
I am trying to simulate a beach towel over my characters shoulder but I can't get the cloth to gather at the shoulder. At the moment I am working outside the character. I have set up 4 particle attachments and put them where the four corners of the shoulders would be and a capsule collider underneath to simulate the shoulder but the cloth isn't gathering. I am just using the exiting materials for now and will change to a beach towel once it is working.
See video below which shows what happens and how I have it set up.
https://360.articulate.com/review/conten...0a3/review
Is this possible using Obi Cloth or do I need to set up the prefab with the gathers already there.
Thanks
Elsiehar
|
|
|
Having Trouble Making the Mesh Update in Sync with the Softbody |
Posted by: oski223 - 29-03-2023, 07:51 PM - Forum: Obi Softbody
- Replies (1)
|
 |
Ive tried binding the skin of the mesh multiple times as well as re-generating my soft body, but every time I try to use the soft body, the mesh acts like a normal rigid body. When I add a particle renderer it shows the particles working, but the mesh still dysynced.
Any help would be much appreciated.
Thanks!
|
|
|
Oscillations when setting cable lengths, probably due to dynamics |
Posted by: rohit_dhak - 29-03-2023, 09:36 AM - Forum: Obi Rope
- Replies (7)
|
 |
So I have a scene as shown below:
I am sending control to change cable lengths of all 4 cables at once (action = [25.23, 26.18, 35, 33.67]).
Code: //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//|Method to control cables individually
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Method to perform control actions for cable 1
public void set_c1()
{
if (c1_len > c1_control_ip)
{
cursor_1.ChangeLength(rope_1.restLength - c1_control_ip * time_dt/10);
}
else if(c1_len < c1_control_ip)
{
cursor_1.ChangeLength(rope_1.restLength + c1_control_ip * time_dt/10);
}
else
{
Debug.Log("Current Length and Control input are the same");
}
}
// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//
// Method to perform control actions for cable 2
public void set_c2()
{
if (c2_len > c2_control_ip)
{
cursor_2.ChangeLength(rope_2.restLength - c2_control_ip * time_dt/10);
}
else if(c2_len < c2_control_ip)
{
cursor_2.ChangeLength(rope_2.restLength + c2_control_ip * time_dt/10);
}
else
{
Debug.Log("Current Length and Control input are the same");
}
}
// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//
// Method to perform control actions for cable 3
public void set_c3()
{
if (c3_len > c1_control_ip)
{
cursor_3.ChangeLength(rope_3.restLength - c3_control_ip * time_dt/10);
}
else if(c3_len < c3_control_ip)
{
cursor_3.ChangeLength(rope_3.restLength + c3_control_ip * time_dt/10);
}
else
{
Debug.Log("Current Length and Control input are the same");
}
}
// -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------//
// Method to perform control actions for cable 4
public void set_c4()
{
if (c4_len > c4_control_ip)
{
cursor_4.ChangeLength(rope_4.restLength - c4_control_ip * time_dt/10);
}
else if(c4_len < c4_control_ip)
{
cursor_4.ChangeLength(rope_4.restLength + c4_control_ip * time_dt/10);
}
else
{
Debug.Log("Current Length and Control input are the same");
}
}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//|Method to control all cables parallely
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
public void set_control()
{
Parallel.Invoke(set_c1, set_c2, set_c3, set_c4);
}
However it looks like the cable lengths are overshooting while setting and because of that
Code: if (c2_len > c2_control_ip)
{
cursor_2.ChangeLength(rope_2.restLength - c2_control_ip * time_dt/10);
}
else if(c2_len < c2_control_ip)
{
cursor_2.ChangeLength(rope_2.restLength + c2_control_ip * time_dt/10);
}
These above 2 conditions are counteracting to each other and I am getting an oscillating behavior of the system as shown in the following video.
Oscillation behavior
|
|
|
Releasing softbody particles from anchor |
Posted by: blobman - 26-03-2023, 11:57 PM - Forum: Obi Softbody
- Replies (2)
|
 |
Following along the script example here:
Code: using UnityEngine;
using System.Collections;
using Obi;
[RequireComponent(typeof(ObiActor))]
public class DistanceAnchor : MonoBehaviour {
ObiActor actor;
public Transform anchor;
public float anchorRadius = 0.5f;
void Awake(){
actor = GetComponent<ObiActor>();
}
void Start(){
if (actor.isLoaded){
for (int i = 0; i < actor.solverIndices.Length; ++i){
int solverIndex = actor.solverIndices[i];
// if the particle is visually close enough to the anchor, fix it.
if (Vector3.Distance(actor.GetParticlePosition(solverIndex), anchor.position)
< anchorRadius)
{
actor.solver.velocities[solverIndex] = Vector3.zero;
actor.solver.invMasses[solverIndex] = 0;
}
}
}
}
}
From: http://obi.virtualmethodstudio.com/manua...icles.html
What is a good approach to later release the softbody particles from the anchor?
I tried saving a copy of `velocities` and `invMasses` prior to setting them to 0, and then restoring them on the actor's solver when some callback gets invoked. This did not seem to work.
or is there a way to disable gravity on the exclusively on the softbody particles?
|
|
|
Using Obi cloth for unskinned 3D garment on a 3D avatar |
Posted by: mandeepdhalor28 - 23-03-2023, 12:59 PM - Forum: Obi Cloth
- Replies (5)
|
 |
Hi
I have purchased obi cloth for trying my 3D garments on my 3D avatars. The tutorials those I have seen uses skinned clothes on 3D avatar to simulate the clothes. But I want to simulate my clothes using unskinned 3D garments. Can you please share a tutorial or example which I can follow to implement the same.
Thanks
|
|
|
Teleporting Characters with Solver |
Posted by: masamoto - 20-03-2023, 04:06 PM - Forum: Obi Cloth
- Replies (4)
|
 |
Hello, I have a character with solvers under it.
The character needs to be able to teleport freely in the world.
At the moment the ways character are spawned is at World Origin and then Teleported to the designated location.
What would be the best way to allow teleportation.
The Solver is set to gravity "World Space" and the whole prefab is being Teleported with the solver somewhere inside it.
Best Regards
Thomas P.
|
|
|
|