Latest Threads |
can you remove particles ...
Forum: Obi Softbody
Last Post: aardworm
09-07-2025, 07:09 AM
» Replies: 0
» Views: 39
|
ObiRope Mesh Renderer
Forum: Obi Rope
Last Post: quent_1982
08-07-2025, 11:27 AM
» Replies: 4
» Views: 179
|
How to dynamically change...
Forum: Obi Rope
Last Post: quent_1982
08-07-2025, 06:34 AM
» Replies: 6
» Views: 324
|
Pipeline that bends
Forum: Obi Softbody
Last Post: josemendez
04-07-2025, 09:52 AM
» Replies: 13
» Views: 1,055
|
How to implement/sync Obi...
Forum: Obi Rope
Last Post: quent_1982
01-07-2025, 01:48 PM
» Replies: 2
» Views: 253
|
Collisions don't work con...
Forum: Obi Rope
Last Post: chenji
27-06-2025, 03:05 AM
» Replies: 3
» Views: 339
|
Force Zone apply differen...
Forum: Obi Rope
Last Post: chenji
26-06-2025, 11:41 AM
» Replies: 11
» Views: 971
|
Can I blend in and out of...
Forum: Obi Cloth
Last Post: josemendez
24-06-2025, 04:42 PM
» Replies: 3
» Views: 316
|
Using a rigidbody/collide...
Forum: Obi Cloth
Last Post: josemendez
24-06-2025, 09:29 AM
» Replies: 1
» Views: 189
|
Solver is too performance...
Forum: Obi Rope
Last Post: quent_1982
20-06-2025, 08:09 AM
» Replies: 40
» Views: 4,878
|
|
|
Performance issues |
Posted by: khalvr - 24-01-2018, 04:00 PM - Forum: Obi Rope
- Replies (12)
|
 |
I'm using Obi Rope to simulate cords and wires in a VR truck service simulator. Since it was extremely unpractical and unstable to let Obi manage the rope length constraints, i decided to make all rigidbodies kinematicForParticles and use spring joints between the plugs (and dummy rigidbodies pinning the ropes together at all junctions) to keep them connected, just using ObiRope to simulate the aesthetics of the cords with pin constraints. The results are not 100% accurate, but it looks good enough for my purposes. Despite this, and despite rendering over 30 million triangles in the scene, ObiRope still stands for over 60% of the CPU load. This is despite the fact that i only use 2 solvers (one in each sub-scene), each with all constraints except pin, stitch, distance and collision disabled, and iteration counts set to 3 and below. There are maybe around 50 obi colliders in the scene. I also have a resolution of below 0.2 on all my ropes - in total, there are roughly 700 particles simulating. If i hang ropes on the wall (by attaching a fixed joint to one of the plug ends), obi will eventually even crash unity very suddenly and without warning. I have changed it so that the solvers run in LateUpdate, and reduced the advection radius to 0.05, but the performance is still utter crap. Am i doing something wrong, or does it simply not get better than this?
EDIT: Before Unity crashes, i get a huge wave of errors starting with:
Assertion failed: Assertion failed on expression: 'CompareApproximately(det, 1.0F, .005f)'
UnityEngine.Quaternion:FromToRotation(Vector3, Vector3)
Obi.CurveFrame:Transport(Vector3, Vector3, Single) (at Assets/Obi/Scripts/Actors/ObiRope.cs:61)
Obi.ObiRope:UpdateRopeMesh() (at Assets/Obi/Scripts/Actors/ObiRope.cs:962)
Obi.ObiRope:UpdateProceduralRopeMesh() (at Assets/Obi/Scripts/Actors/ObiRope.cs:892)
Obi.ObiRope:UpdateVisualRepresentation() (at Assets/Obi/Scripts/Actors/ObiRope.cs:590)
Obi.ObiRope:OnSolverFrameEnd() (at Assets/Obi/Scripts/Actors/ObiRope.cs:365)
Obi.ObiSolver:EndFrame(Single) (at Assets/Obi/Scripts/Solver/ObiSolver.cs:536)
Obi.ObiSolver:LateUpdate() (at Assets/Obi/Scripts/Solver/ObiSolver.cs:665)
Eventually i get this:
rigidbody.velocity assign attempt for 'Breakout Box' is not valid. Input velocity is { NaN, NaN, NaN }.
UnityEngine.Rigidbody et_velocity(Vector3)
Obi.ObiRigidbody:UpdateVelocities() (at Assets/Obi/Scripts/Collisions/ObiRigidbody.cs:68)
Obi.ObiColliderBase:UpdateRigidbody(Object, EventArgs) (at Assets/Obi/Scripts/Collisions/ObiColliderBase.cs:262)
Obi.ObiArbiter:WaitForAllSolvers() (at Assets/Obi/Scripts/Solver/ObiArbiter.cs:82)
Obi.ObiSolver:SimulateStep(Single) (at Assets/Obi/Scripts/Solver/ObiSolver.cs:499)
Obi.ObiSolver:LateUpdate() (at Assets/Obi/Scripts/Solver/ObiSolver.cs:659)
Assertion failed: Assertion failed on expression: 'fRoot >= Vector3f::epsilon'
UnityEngine.Quaternion:FromToRotation(Vector3, Vector3)
Obi.CurveFrame:Transport(Vector3, Vector3, Single) (at Assets/Obi/Scripts/Actors/ObiRope.cs:61)
Obi.ObiRope:UpdateRopeMesh() (at Assets/Obi/Scripts/Actors/ObiRope.cs:962)
Obi.ObiRope:UpdateProceduralRopeMesh() (at Assets/Obi/Scripts/Actors/ObiRope.cs:892)
Obi.ObiRope:UpdateVisualRepresentation() (at Assets/Obi/Scripts/Actors/ObiRope.cs:590)
Obi.ObiRope:OnSolverFrameEnd() (at Assets/Obi/Scripts/Actors/ObiRope.cs:365)
Obi.ObiSolver:EndFrame(Single) (at Assets/Obi/Scripts/Solver/ObiSolver.cs:536)
Obi.ObiSolver:LateUpdate() (at Assets/Obi/Scripts/Solver/ObiSolver.cs:665)
And also this:
Assertion failed: Invalid worldAABB. Object is too large or too far away from the origin.
The way i interpret it, a rounding error propagates in the quaternion calculations causing forces to be scaled high enough to instantly propel objects out of the scene. It's just a qualified guess, though, and i'm not sure why forces would be applied anyway since the objects are all kinematic as far as Obi is concerned. In this particular case, the crash only occurs when the cord is hanging against the wall, but i've had it before as well in various situations (Always the AABB error).
EDIT2: Some more of the errors:
Assertion failed: Converting invalid MinMaxAABB
UnityEngine.Mesh:SetTriangles(List`1, Int32, Boolean)
Obi.ObiRope:CommitMeshData() (at Assets/Obi/Scripts/Actors/ObiRope.cs:911)
Obi.ObiRope:UpdateRopeMesh() (at Assets/Obi/Scripts/Actors/ObiRope.cs:1037)
Obi.ObiRope:UpdateProceduralRopeMesh() (at Assets/Obi/Scripts/Actors/ObiRope.cs:892)
Obi.ObiRope:UpdateVisualRepresentation() (at Assets/Obi/Scripts/Actors/ObiRope.cs:590)
Obi.ObiRope:OnSolverFrameEnd() (at Assets/Obi/Scripts/Actors/ObiRope.cs:365)
Obi.ObiSolver:EndFrame(Single) (at Assets/Obi/Scripts/Solver/ObiSolver.cs:536)
Obi.ObiSolver:LateUpdate() (at Assets/Obi/Scripts/Solver/ObiSolver.cs:665)
Mesh '': abnormal mesh bounds - most likely it has some invalid vertices (+/-inifinity or NANs) due to errors exporting.
Mesh bounds min=(-1.#J, -1.#J, -1.#J), max=(-1.#J, -1.#J, -1.#J). Please make sure the mesh is exported without any errors.
Assertion failed: Invalid worldAABB. Object is too large or too far away from the origin.
It seems to be triggered primarily by collisions between ObiColliders with an attached ObiRigidbody.
|
|
|
Earlier Versions of Obi Rope |
Posted by: binhong87 - 24-01-2018, 11:04 AM - Forum: Obi Rope
- Replies (2)
|
 |
Hello,
Can you provide a earlier version of Obi Rope?
I want to use it on Unity 5.4.x.
I have already purchased this plugin, with order #12369623925197
Thanks,
Bin
|
|
|
Simulate a solid steel chain |
Posted by: zhuchun - 22-01-2018, 02:12 PM - Forum: Obi Rope
- Replies (3)
|
 |
Hi,
I'm new to Obi Rope and have finished the doc, But don't know how to simulate a solid steel chain without any elasticity.
Any help would be greatly appreciated!
Cheers,
Zhu Chun
|
|
|
ObiClothDragger question |
Posted by: rendezvous - 21-01-2018, 05:55 AM - Forum: Obi Cloth
- Replies (2)
|
 |
Jose,
I was wondering if there's a way to modify the default behavior of picking/dragging a mesh and letting go. It seems that the stretched part of the mesh always snaps back to its initial form. Is there a way to make the mesh transformation remain the way you left it after picking & dragging?
|
|
|
How to collide the cloth with the character? |
Posted by: panda_pajama - 20-01-2018, 06:46 PM - Forum: Obi Cloth
- Replies (3)
|
 |
I want to have a loose skirt hanging from the waist of a character, and I want the animation of the character, especially the legs, to move the skirt from the inside.
It is not necessary for this to work in real time, as I will export the resulting animation for later playback in real time.
So I tried Option 1, which is to put an Obi Cloth in the skirt mesh, which locks the triangles in the waist very well, but I can't seem to correctly remove the bone influences so the rest of the cloth can move completely independent of the bones.
Then I tried Option 2, which is to have a non skinned mesh of just the skirt, as a child of the character pelvis. I then pin the vertices in the waist, and this gives a relatively good result, before collisions.
So now to add collisions, I first tried approximating the shape of the legs with capsule colliders, but either they're too thin, and the cloth intersects with the leg mesh, or they're too fat and the cloth bulges incorrectly.
Then I tried instead of capsule colliders, create an editor script that creates a small sphere collider at the center of each triangle in the leg mesh (remember I don't need this in real time), with a script that relocates the collider each frame to the skinned position of each triangle, but for some reason the cloth seems to completely ignore the colliders.
For most accuracy, I also tried creating mesh colliders, one for each triangle (as a prism to ensure the resulting mesh is convex), and updating them to relocate the resulting mesh each frame. Again, the cloth seems to ignore the colliders.
What would be a good way to achieve my goal of having the cloth pushed by the legs in the inside?
|
|
|
Cloth jumping on first frame |
Posted by: panda_pajama - 20-01-2018, 06:33 PM - Forum: Obi Cloth
- Replies (7)
|
 |
I have created a cloth attached to a character.
In the editor, the character appears in T-pose, and the cloth is attached to this character.
When I press play, the first frame of the character animation is not quite the same as the T-pose, and so the cloth jumps abruptly in the direction of the movement between T pose and the first frame of the animation.
This jump puts the cloth in a place I don't want to, and getting it out of there is very difficult.
How do I make sure the cloth doesn't jump in the first frame of animation?
|
|
|
|