Search Forums

(Advanced Search)

Latest Threads
can you remove particles ...
Forum: Obi Softbody
Last Post: aardworm
09-07-2025, 07:09 AM
» Replies: 0
» Views: 35
ObiRope Mesh Renderer
Forum: Obi Rope
Last Post: quent_1982
08-07-2025, 11:27 AM
» Replies: 4
» Views: 162
How to dynamically change...
Forum: Obi Rope
Last Post: quent_1982
08-07-2025, 06:34 AM
» Replies: 6
» Views: 315
Pipeline that bends
Forum: Obi Softbody
Last Post: josemendez
04-07-2025, 09:52 AM
» Replies: 13
» Views: 1,045
How to implement/sync Obi...
Forum: Obi Rope
Last Post: quent_1982
01-07-2025, 01:48 PM
» Replies: 2
» Views: 252
Collisions don't work con...
Forum: Obi Rope
Last Post: chenji
27-06-2025, 03:05 AM
» Replies: 3
» Views: 336
Force Zone apply differen...
Forum: Obi Rope
Last Post: chenji
26-06-2025, 11:41 AM
» Replies: 11
» Views: 969
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,859

 
Pregunta multiple colliders detection problem
Posted by: greyhawk - 22-11-2021, 01:51 PM - Forum: Obi Rope - Replies (6)

Greetings,

I have two colliders that are nested. Each of these has its own tag. When the colliders touch the rope, only the outermost, that is, the first contact with the rope, is seen. How do I solve this?


Quote:void Solver_OnCollision(object sender, ObiSolver.ObiCollisionEventArgs e)
{
    var world = ObiColliderWorld.GetInstance();

    // just iterate over all contacts in the current frame:
    foreach (Oni.Contact contact in e.contacts)
    {
        // if this one is an actual collision:

        ObiColliderBase col = world.colliderHandles[contact.bodyB].owner;
        if (col != null)
        {
            if (col.CompareTag("saw"))
                TearRope(col, contact);
            else if (col.CompareTag("nearMiss"))
            {
                DamageRope(col, contact);
            }

        }
    }
}

Print this item

Pregunta Make damaged rope
Posted by: greyhawk - 22-11-2021, 11:24 AM - Forum: Obi Rope - Replies (11)

Greetings,

How do you think I can supply the damaged rope in the picture with obi rope? Should I find the relevant particle and place a 3d object with this appearance on it? I am open to your suggestions.



Attached Files Thumbnail(s)
   
Print this item

  Holographic Fluid simulation
Posted by: josemendez - 22-11-2021, 09:23 AM - Forum: Made with Obi - No Replies

Using the Voxon VX1 Holographic display, by Voxon Photonics:

Print this item

  Simple Way to Attach Game Object?
Posted by: beegon - 20-11-2021, 09:13 PM - Forum: Obi Softbody - Replies (4)

Is there a simple way to manually attach a game object to a softbody? I just want an object to follow a point or particle on the softbody without influencing the softbody at all, as if the game object were just along for the ride.

I tried the attachment component with both static and dynamic options. Neither give me good results since static will not allow the object to be influenced by the softbody and dynamic causes some wonky and unpredictable 2 way interaction. I noticed some threads here where colliding objects can attach to a softbody at runtime, but I want to set this up manually in edit mode so the game object is always on a specific part of the softbody from the get go. I also tried the obi contact grabber, but that doesn't seem to do anything.

I am not a programmer so I have no idea how to script something like this myself. Any help would be much appreciated!

Print this item

  Flow direction and baking
Posted by: lvladimirov - 20-11-2021, 06:48 PM - Forum: Obi Fluid - Replies (1)

Hi there,
I've been using obi rope for quite a while and I am happy with it, so I bought Fluid as well. I have couple of quick questions.

1) Can a simulation be baked and replayed later for optimal performance (I need to simulate once and then nothing will change in the environment, so ideally I want to be able to replay it as an "animation" as opposed to a brand new simulation), however im not sure if it is even remotely possible to achieve.

2) Can I force the liquid to travel up in a tube (maybe simulate pressure?). Changing gravity is not an option as I need the liquid to end up in a tank and behave normally. 

Thanks!

Print this item

  Clothing implodes on itself
Posted by: ElDonte - 19-11-2021, 05:47 PM - Forum: Obi Cloth - Replies (1)

Hello there, I recently bought Obi Cloth to use in my project for a character creation tool. I have followed the tutorial you guys have posted on your YouTube channel: 

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

My main issues is that after following the tutorial step-by-step, my shirt just implodes on itself. I have tried different skin parameters combinations in the blueprint editor but the problem persists. I do not have any personal scripts running, I made a new project to test out Obi Cloth and only imported the necessary stuff. Any ideas what might be causing this? I'm also not sure what other information I should give out, so help is appreciated there as well. Thank you in advance.

Print this item

  Paper (bank note) simulation
Posted by: Romahaaa - 18-11-2021, 10:45 AM - Forum: Obi Cloth - Replies (23)

Hi,

First of all would like to say that your assets are awesome.
Before purchasing the Cloth I would like to clarify, would it be possible to create a bank note simulation using that asset? It should band only by 1 axis.

Print this item

  Multiple user data and more flexible diffuse
Posted by: Chua Polar - 18-11-2021, 06:02 AM - Forum: Obi Fluid - Replies (5)

Currently, there is only one Vecotr4List userdata provided and all the terms of each vecotr4 will be manipulated by the diffuse. 
However, I want to use the userdata for different usages, like temperature and fluid number(like fluid1: water, fluid2: lava, fluid3: wine......) at the same time.
It will be great if you can either make diffuse a vector4 or make the userdata a List of vector4list with multiple diffuse. Really thanks! Sonrojado

Print this item

  How to set diffuse of liquid correctly?
Posted by: Chua Polar - 18-11-2021, 05:39 AM - Forum: Obi Fluid - Replies (6)

What is the correct range of liquid diffuse? And is it relative to the diffusion data size?
When I set the diffuse of the 2 chemical liquids in LiquidMixing sample, I got these visual and log errors in the video.

Print this item

Pregunta Oncollision detection and cut rope problem
Posted by: greyhawk - 17-11-2021, 05:36 PM - Forum: Obi Rope - Replies (9)

Greetings, I am working with OnCollision on a  mechanic that will cut the  rope as a result of contact with objects such as saws, knives and similar objects that can cut the rope.

In addition,3 ropes can interact physically with each other. Trying to cut one, the other is cut. Each one has its own blueprint.

How can I fix the bug in the code I wrote?


You can see the script I wrote
Code:
using System.Collections.Generic;
using UnityEngine;
using Obi;

namespace _Game.Scripts.Entities.Rope
{
    [RequireComponent(typeof(ObiSolver))]
    public class RopeCutter : MonoBehaviour
    {
        ObiSolver solver;
        public List<ObiStructuralElement> ropeElements;
       
        void Awake(){
            solver = GetComponent<Obi.ObiSolver>();
        }

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

        void OnDisable(){
            solver.OnCollision -= Solver_OnCollision;
        }
        void Solver_OnCollision(object sender, ObiSolver.ObiCollisionEventArgs e)
        {
            var world = ObiColliderWorld.GetInstance();

            // just iterate over all contacts in the current frame:
            foreach (Oni.Contact contact in e.contacts)
            {
                // if this one is an actual collision:
                if (contact.distance < 0.01);
                {
                    ObiColliderBase col = world.colliderHandles[contact.bodyB].owner;
                    if(col !=null)
                    TearRope(col, contact);
                }
               
            }
        }

        private void TearRope(ObiColliderBase col, Oni.Contact contact)
        {
            if (!col || !col.CompareTag("saw")) return;
            //int particleIndex = solver.simplices[contact.bodyA];
            ObiSolver.ParticleInActor pa = solver.particleToActor[contact.bodyA];
            if (pa == null) return;

            var actor = pa.actor as ObiRope;
            if (!actor) return;
      
            if (pa.indexInActor >= actor.elements.Count) return;

            actor.Tear(actor.elements[pa.indexInActor]);
            actor.RebuildConstraintsFromElements();
        }
       
    }
}



Attached Files Thumbnail(s)
   

.png   Resim2.png (Size: 5.05 KB / Downloads: 42)
Print this item