Search Forums

(Advanced Search)

Latest Threads
Obi Softbody IndexOutOfRa...
Forum: Obi Softbody
Last Post: Aroosh
Yesterday, 11:37 AM
» Replies: 2
» Views: 87
Rope pinned to two dynami...
Forum: Obi Rope
Last Post: Crimson1462
09-05-2025, 07:51 PM
» Replies: 2
» Views: 151
Unity 6 Console Spam abou...
Forum: Obi Fluid
Last Post: josemendez
09-05-2025, 08:03 AM
» Replies: 3
» Views: 1,118
the Obi cloth has some co...
Forum: Obi Cloth
Last Post: josemendez
09-05-2025, 08:00 AM
» Replies: 2
» Views: 89
Hard crash in build after...
Forum: Obi Rope
Last Post: goldfire
04-05-2025, 10:10 PM
» Replies: 2
» Views: 222
Particle collision with s...
Forum: Obi Softbody
Last Post: Duncano
03-05-2025, 02:07 PM
» Replies: 2
» Views: 242
Memory leak warning with ...
Forum: Obi Fluid
Last Post: Softscale
02-05-2025, 04:36 PM
» Replies: 3
» Views: 280
Rope cursor with attachme...
Forum: Obi Rope
Last Post: josemendez
01-05-2025, 07:19 PM
» Replies: 1
» Views: 192
Issue Saving/Loading Part...
Forum: Obi Rope
Last Post: josemendez
30-04-2025, 01:20 PM
» Replies: 10
» Views: 849
Rope extension, vibration...
Forum: Obi Rope
Last Post: josemendez
29-04-2025, 04:09 PM
» Replies: 26
» Views: 2,111

 
Pregunta Pause Cloth simulation on just the unfixed particles of a skinned mesh?
Posted by: rjGhost - 19-12-2018, 05:24 PM - Forum: Obi Cloth - Replies (7)

I'm attempting to "pause" the simulation of just the unfixed particles on an Obi cloth that's skinned. The entire mesh is one cloth, and I've used optimize to get rid of the unused particles. 

Turning off the solver pauses the simulation, but it also prevents the mesh from being updated via the skinned mesh renderer. 
If I set the inverse masses of the unfixed particles to zero, they just revert to their original positions. 

I would like to be able to pause the simulation of the particles and have them remain in their current positions, but also be able to move the mesh via the joints in that mesh. 

Has anyone tried this before? I'd appreciate any and all help on this.

Print this item

  Simulation order and OnAnimatorMove
Posted by: MTG_Derek - 18-12-2018, 05:58 PM - Forum: Obi Cloth - Replies (4)

Hi all!

First off, I want to say that ObiCloth is an amazing and very affordable product that is far superior to Unity's built-in cloth system. Kudos to the team for providing such a performant and well-documented/programmed system.

First off, I've noticed that there are pretty obvious differences in simulation quality between FixedUpdate and LateUpdate, which is to be expected, especially when the FPS is low. For instance, it seems much more likely that the cloth will clip through colliders with LateUpdate and, in general, it seems to 'crumple' more. Ideally, we'd like for the cloth's simulation order to be FixedUpdate. 

Our character movement is driven by root motion, which is applied to the character during its OnAnimatorMove function--IE, we translate the character directly from within this function. This allows us to have incredibly smooth/accurate motion and, to my knowledge, is commonly done in many video games. Our character does not use physics and only has a rigidbody (set to kinematic) because Obi requires one. All movement is driven by transform.Translate and not velocity or AddForce updates. Furthermore, our Animator update mode is set to Normal and not AnimatePhysics since we are not using physics. I should also add that our camera tracks the main character from within LateUpdate (and not Update or FixedUpdate, nor will it ever--aka, changing the update mode of the camera is not an acceptable solution for us.) Perhaps you see where I'm going with this...

The problem, then, is that, for whatever reason, setting the Simulation order to "FixedUpdate" changes the delta times received by the OnAnimatorMove function. It seems to, instead of using a DT that represents the current framerate (say, 0.016 at 60 FPS), we receive a DT of 0.02, which is the default (and ours) Unity fixed time step. I have no idea how the Obi controller code is able to 'hijack' this, but nevertheless, this introduces a problem for us where there is obvious and noticeable stutter--this is because the character movement is slightly 'off' from where the camera expects it to be if it were driven by the correct deltaTime. 

Hopefully this problem makes sense, and I'm wondering if there is a way to have cloth that still works with FixedUpdate, without that simulation order altering our update rate, or if there is some code change we can make that can enable this behavior. To recap, our game does not use physics at all and nothing happens in FixedUpdate, nor do we want it to. The only thing that we 'need' it for would be the cloth, unless there's some way to achieve a more accurate/stable simulation in LateUpdate.

Print this item

  Metadata for particle interactivity
Posted by: nrvllrgrs - 17-12-2018, 09:21 PM - Forum: Obi Cloth - Replies (1)

I'm using VRTK to interact with an ObiCloth asset, allowing the player to grab and manipulate the cloth. I want the cloth only to be grabbable at specific particles. Is there a way to mark specific particles as Interactable and other particles as not? If not are there any suggestions how I could best accomplish this task?

This is different from unpinned versus pinned particles. One could have a non-interactable, unpinned particle OR a non-interactable, pinned particle OR a interactable, unpinned particle (I suppose one could have an interactable, pinned particle -- although I'm uncertain of its behavior).

Print this item

  Linux Support?
Posted by: metzzo - 15-12-2018, 09:53 AM - Forum: Obi Rope - Replies (1)

Hey,

I've switched to developing on Linux and want my game to support Linux as well, but I sadly just noticed that Obj Rope does not run on Linux. Are there any plans to make it run on Linux?


Robert

Print this item

  Obi Fluid lagging severely on high end workstation
Posted by: arrnav96 - 13-12-2018, 02:55 PM - Forum: Obi Fluid - Replies (1)

Hi,

We have just bought Obi Fluid to get fluid simulations similar to this -

https://www.youtube.com/watch?v=xf_BN5K0pd8

We want bubbles generated inside the water as well as it flows. We are also okay with just 2D fluid flow in case this can't be achieved in 3D or will be too heavy. The bubble sizes may also be dynamically be changed in the water by a slider. (For example, annular fluid flow). The attached picture shows the kind of flows we need. Can such continuous dynamic flow be achieved with this asset?

Our workstations each have 2 Intel Xeon CPUs and Quadro P5000 GPUs and have enough power to simulate fluid on small scale.

But when we try to use Obi Fluid on our high end workstations, it lags abnormally (5-7 FPS). The asset seems to use only one thread and doesn't seem to be optimized enough to utilize the Quadro GPUs.


Please help.



Attached Files Thumbnail(s)
   
Print this item

Pregunta Calculating the pull on a pin constraint?
Posted by: KjetilMV - 13-12-2018, 12:34 PM - Forum: Obi Rope - Replies (5)

Hi

I need to calculate how much the pinned rigidbody is pulling on the rope. Is there a simple way to calculate the pull on a pin constraint?

Thanks in advance.

Print this item

  Can you provide the Soccer Net scene?
Posted by: Ty-TG - 12-12-2018, 05:51 PM - Forum: Obi Cloth - Replies (1)

I sent an email, but just to be safe I thought I would post here:

We were looking for a good soccer net asset for our game, and your youtube demo video. We'd love to use that, and so I wanted to know if we buy the ObiCloth and ObiRope assets from the store, can you provide us with the soccer net?

Thanks

Print this item

  Fluid does not get lit
Posted by: razveck - 12-12-2018, 05:06 PM - Forum: Obi Fluid - Replies (3)

Hi,
My fluid in the scene does not get any lighting information. It looks very flat and out of place in the scene. Turning lights on or off has no effect on its appearance. I am also using Aura, if that makes any difference.

I would appreciate some help on this matter. I have tried adjusting the shaders but with no success.
Thanks.

Print this item

  Curve and Mesh generation with updates
Posted by: micsanbr - 11-12-2018, 01:42 PM - Forum: Obi Rope - Replies (2)

Hello VM & Forum,

I've created a simple c# script that creates a curve on the fly using a set of positions, using "Obi/Scripts/Utils/ObiRopeHelper.cs" as a reference (great example BTW).

Instead of relying on the solver to update the positions of the curve, inside Update() I'd like to set the "controlPoints" of the "ObiCatmullRomCurve" component and update the mesh of the ObiRope connected to the curve. Is there a way to do this?

Basically I am interested in using the tool only to create procedural tubes / cables / wires meshes, without the physics solver.

Thanks a lot in advance!
-m

Print this item

  Swinging rope not behaving right
Posted by: aphixe - 10-12-2018, 03:40 AM - Forum: Obi Rope - Replies (3)

Problem I am having with how the rope is behaving, not sure how to fix it or what not. I did have some troblem with the code I used a ObiPinConstraintBatch, which for whatever reason was missing on the http://obi.virtualmethodstudio.com/tutor...aints.html page, unless i am wrong.  code is at end if it helps.
I want to be able to swing with the rope.


[Image: ftJz131.jpg]

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

[RequireComponent(typeof(ObiSolver))]
public class grabrope : MonoBehaviour
{
   [SerializeField]
   private ObiRope rope;
   public ObiCollider character;  // add player in inspector with obi collider
   public float ropeOffset = .25f;
   private int particleLocation = 7; //sets where player is attached on rope.
   ObiSolver solver;

   Obi.ObiSolver.ObiCollisionEventArgs collisionEvent;

   void Awake()
   {
       solver = GetComponent<Obi.ObiSolver>();
       rope = GetComponent<ObiRope>();
   }

   void OnEnable()
   {
       solver.OnCollision += Solver_OnCollision;
   }

   void OnDisable()
   {
       solver.OnCollision -= Solver_OnCollision;
   }

   void Solver_OnCollision(object sender, Obi.ObiSolver.ObiCollisionEventArgs e)
   {
       foreach (Oni.Contact contact in e.contacts)
       {
           if (contact.distance < 0.01)
           {
               Component collider;
               if (ObiCollider.idToCollider.TryGetValue(contact.other, out collider))
               {
                   if (Input.GetKeyDown(KeyCode.E))
                   {
                       rope.PinConstraints.RemoveFromSolver(null);
                       ObiPinConstraintBatch batch = (ObiPinConstraintBatch)rope.PinConstraints.GetFirstBatch();
                       batch.AddConstraint(particleLocation, character, Vector3.up * ropeOffset, 1);
                       rope.PinConstraints.AddToSolver(null);
                   }
                 
               }
           }
       }
   }

}

Print this item