Search Forums

(Advanced Search)

Latest Threads
Obi Rope Cursor and Resol...
Forum: Obi Rope
Last Post: vrtraining
35 minutes ago
» Replies: 0
» Views: 2
FullBodyVolumetricSoftbod...
Forum: Obi Softbody
Last Post: alexm
11 hours ago
» Replies: 0
» Views: 23
Calculating and Reproduci...
Forum: Obi Fluid
Last Post: ZacharyP
Yesterday, 05:11 PM
» Replies: 0
» Views: 36
Basic SDF implementation ...
Forum: Obi Cloth
Last Post: AdamZ101
12-11-2024, 03:01 PM
» Replies: 4
» Views: 158
The skinned renderer is u...
Forum: Obi Cloth
Last Post: josemendez
11-11-2024, 06:31 PM
» Replies: 1
» Views: 88
Garment explodes on Andro...
Forum: Obi Cloth
Last Post: josemendez
05-11-2024, 11:44 AM
» Replies: 3
» Views: 273
Foam Rendering suggestion...
Forum: Obi Fluid
Last Post: spikebor
05-11-2024, 10:11 AM
» Replies: 4
» Views: 484
The objects within the tw...
Forum: Obi Cloth
Last Post: ziziza93
05-11-2024, 05:08 AM
» Replies: 2
» Views: 419
Unity 6 Console Spam abou...
Forum: Obi Fluid
Last Post: josemendez
04-11-2024, 12:48 PM
» Replies: 1
» Views: 138
Fluid are always Opaque
Forum: Obi Fluid
Last Post: josemendez
04-11-2024, 08:51 AM
» Replies: 1
» Views: 760

 
Pregunta Change size of spheres using Softbody
Posted by: charlieatron1 - 15-05-2024, 06:52 PM - Forum: Obi Softbody - Replies (4)

I'm trying to make a simulation of many sphere-shaped cells that swim around and squish into each other, with each sphere being a Softbody actor in a single Solver. Ideally I'd like to be able to change the size of a single cell during runtime, for instance if one eats a food particle it will bump up in size slightly. The bigger cell would push other cells out of the way as it takes up more space.

I did see one other post on the forum saying that scaling the actors is not possible, but I'm wondering if there's any potential workarounds? I figured that spheres are a lot simpler than a detailed mesh, so it could be possible to achieve the same effect somehow through a force, constraint value, modifying blueprint, etc., but I'm not familiar enough with the plugin yet to know what to try.

Does anyone know how to achieve something like this, or have any ideas for things to try out? Or is this not possible? Thanks!

Print this item

Estrella Request a different way to spawn particles.
Posted by: spikebor - 15-05-2024, 06:37 AM - Forum: Obi Fluid - Replies (2)

First, I want to use Obi particle as a way to shoot things > collect contacts > do gameplay things like apply damage.

But when I use the Obi Emitter, I see there is really heavy limitation.
It only has a speed value, albeit having a lot of shapes to spawn from, it still cannot do things like shoot a particle(s) with a target velocity.

The speed value tied to both spawn rate and particle speed.
That is: low speed value will spawn less particles, and the spawned particles also have less speed.
Big speed value will spawn more particles, and they fly with high speed.

This is not good, this leaves a hole where we want a low particle spawn rate, but travel at high-speed.

So can you consider add a scripting API that does Spawn(int count, float velocity);
Thank you!

Edit: Anyway, I think I should forgo this idea about using particle > collect contacts > do damage thing, this is better task for shuriken since it has no limit in collision size.
Obi particle can't have big size as I just tinker with the Granular blueprint, and found out that it can only go as far as max 1.

Print this item

  Obi7 | Ropes make fluid sim from 3ms to 30ms
Posted by: spikebor - 14-05-2024, 05:07 PM - Forum: Obi Fluid - Replies (3)



As shown in the video:
20 softbodies + pool = 5ms.
but 2 ropes + pool = 30ms  Huh
So I think this is a bug.
package: https://drive.google.com/file/d/120oZvq9...sp=sharing
Note that I do not pack the [Graphy] into the package.
scene: Assets/Spike/Scenes/Test OBI.unity

This maybe because I enabled all the constraints there is in the solver, making the simulation more complex than needed.
I know there is a recommend on the website that you should disable all the constraints you don't use to save performance, but to make use of
all the Obi actors, let them interact with each other, shouldn't we have to have a Solver with all the constraints On?
I plan to make a game world with only one Solver, and as my Player run around, I'll add / remove actors into that one Solver as they go into near Player range.
Is this a good setup?
If there is more good practices to setup game world with Obi world, pls tell me, thanks!

Print this item

  Unable to load DLL 'Oni'.
Posted by: Rabidus_4k - 14-05-2024, 03:19 PM - Forum: General - Replies (3)

Code:
Unable to load DLL 'Oni'. Tried the load the following dynamic libraries:
Unable to load dynamic library 'Oni' because of 'Failed to open the requested dynamic library (0x06000000) dlerror() = dlopen failed: library "Oni" not found

faced with the problem that unity is sending errors

Stack trace

I also checked Any Platform in Obi.asmdef as i build apk file. previously it worked fine!

Print this item

  I contact with softbody but it is treated as contact with the rope
Posted by: spikebor - 14-05-2024, 12:20 PM - Forum: Obi Rope - Replies (2)

Hi, pls take a look at this video



package: https://drive.google.com/file/d/1WNSuRz9...sp=sharing
In this you will find the scene: Assets/Spike/Scenes/Cut the Rope.unity
In the scene you will have the rope cutter object Rope Cutter with script RopeCutOnCollide.cs
and the masterSolver object with script ObiContactDebug.cs

First part of the video, everything is fine, the rope cutter can cut rope at exact element.
But when it hit the softbody ball, it also treated as hit the rope.

Print this item

  Need the positions to drive VFX graph
Posted by: spikebor - 13-05-2024, 06:42 PM - Forum: Obi Fluid - Replies (4)



Hi, I'm very close to achieve greatness  Gran sonrisa
The target: I want just the positions that the ObiParticleRenderer script is getting to render those spheres.
If I go to the solver and get the positions, the result is all the positions of particle in the solver, including non-active particles.
Which explains the bad effect in the video, we have many particles that just lying around.

Unity 2022.3.16f1 URP14, VFX graphs + samples installed.
Script and scene in this package: https://drive.google.com/file/d/1mmDuFSi...sp=sharing
Scene: Assets/Spike/Scenes/FireBreath VFX and Fluid.unity
Script: ObiVFXRenderer.cs

The script will set positions buffer to VFX graph through GraphicsBuffer, since there is no computation here, so no ComputeShader is needed.
All it need is correct positions that are same as the ObiParticleRenderer is using to render the spheres.
If this is doable, then I can have fireBreath effect that can collide with environment and damage character using Obi collisions.
The fire effect should match the particle 100%, so I can't use advection.

Print this item

  Changing solver gravity vector has no effect on particles
Posted by: T-1000 - 13-05-2024, 06:21 PM - Forum: Obi Fluid - Replies (2)

I have a scene in Unity that uses Obi Fluid. The flow of the fluid can be controlled by rotating the Obi solver's gravity vector in response to WSAD (or the gyroscope input when running on a mobile device, which I haven't tested in the new version but which worked in the old). Note that changing the gravity vector is more convenient programmatically than rotating scene objects because it means I can more easily use a generic script. It also seems to be more stable than rotating geometry.

This all works fine when using `Obi Fluid v6.0.1 in Unity 2021.3.31`, but no longer works using `Obi Fluid 6.5.4 in Unity 2022.3.28`.

In the old version, I set the gravity vector in the `void Update()` method using




Code:
if (Input.GetKey(KeyCode.W))
{
    obiSolver.parameters.gravity = Quaternion.Euler(0, 0, zRotationRate * Time.deltaTime) * obiSolver.parameters.gravity;
}

obiSolver.PushSolverParameters();


(and three others for the other keys), and it works fine (I write the gravity vector to a textbox afterward) - the particles move in response to the changing direction of gravity.

However, in the new version this doesn't actually change the parameter at all. Weirdly, after some trial and error, I found I have to use a temporary `Vector3` variable and then set the parameter.





Code:
if (Input.GetKey(KeyCode.W))
{
    TempGravityVector = Quaternion.Euler(0, 0, zRotationRate * Time.deltaTime) * TempGravityVector;
}

obiSolver.parameters.gravity = TempGravityVector;
obiSolver.PushSolverParameters();


After setting `TempGravityVector = obiSolver.parameters.gravity;` in the `Start()` method, obviously). That does set the gravity parameter. However, it has no effect on the particles at all. The gravity vector does change but the particles don't seem to know it, and I'm flummoxed as to why. Anyone have any ideas?

PS I haven't tried other combinations of versions of Obi and Unity as that would seem to me to be a nightmare.

Print this item

  When I use ObiBone with my blender model, all bones are clustered together.
Posted by: lu_dens - 13-05-2024, 04:26 PM - Forum: Obi Rope - Replies (3)

When I use ObiBone with my blender model, all bones are clustered together. How can I fix it?
All parameters are same as sample's(CharacterTentacles).
When I use Mixamo's models, everything looks normal.
Is there any specific requirement for obiBone in terms of model setup?

Print this item

  Usando ejemplo del RollingFriction
Posted by: d38u993r - 13-05-2024, 02:53 AM - Forum: Obi Fluid - Replies (1)

estoy usando el ejemplo de RollingFriction y lo que hice es usar mi modelo de un grano de elote el cual lo tuve que escalar 100 en el Scale Factor. luego tengo el modelo de un Vaso el cual tiene un MeshCollider y la opcion de Convex activado



Pero cuando le ejecuto el programa los granos salen por debajo del vaso


también cuando termina de emitir los granos estos quedan flotando no se quedan juntos como en el el ejemplo de RollingFriction que todas las piedras quedan juntas.




Aquí se ve como quedan flotando los granos dentro del vaso aunque afuera si estan juntas, según yo deberían de quedar en el vaso también juntas como si se tratara del ejemplo de Granular (no use granular porque ese solo dibuja circulos ) y el RollingFriction se parece al granular pero usa un Modelo3D





   




que estare haciendo mal, porque yo solo modifique el modelo de Rock por mi modelo 3D de una Grano?

Print this item

Exclamación Problems deleting obi colliders with pin constraints
Posted by: btduser - 12-05-2024, 07:29 AM - Forum: Obi Rope - Replies (7)

Hello, I'm trying to do something seemingly trivial - to cleanly delete an object with an ObiCollider and not have my pin constraints blow up - but apparently it's complicated.

I'm creating these pins via scripting, following examples from the documentation. The pinning works fine until I destroy a collider in my scene. When that happens, my console starts getting spammed with the following:

Code:
System.IndexOutOfRangeException: Index 15 is out of range of '15' Length.

This Exception was thrown from a job compiled with Burst, which has limited exception support.

[redacted rest due to forum anti-spam]


After a lot of excruciatingly painful debugging, I finally have an idea of why this is happening, but no idea how to proceed.

From what I have gathered, the issue is due to the fact that when I destroy (or disable) a collider, this changes the number of items in `ObiColliderWorld.instance.colliderHandles`, but the collider handle indexes in the pin constraints don't ever get updated. This also happens if I disable the object. Presumably because in either case, `ObiColliderBase.RemoveCollider` is invoked, which modifies the collider handle list.

This either spams burst errors or causes the rope to jump to completely unrelated obi colliders. Even just disabling and re-enabling an obi collider will steal ropes from other objects - e.g. if I have 10 colliders in my scene, with a pin on collider A at index 9, disabling collider B at index 5 rearranges the list so that A is now at index 8 and index 9 is invalid, which will spam errors until I re-enable B, which causes B to get assigned index 9 again, and now the pin is pointing to B instead of A.

I have no idea how to proceed. I've tried deleting the collider at different steps of the process (using the actor callbacks) in case it was timing-related, but the issue persists. Explicitly calling `rope.SetConstraintsDirty(Oni.ConstraintType.Pin);` after destroying my object doesn't seem to fix anything either.

I don't know what I'm doing wrong - it seems like the issue is a fundamental one, that removing any collider in the scene has the potential to break completely unrelated pin constraints. The only solution I can think of is to modify my pins any time any obi collider is destroyed, but I don't see how that's feasible, since there's no way to make pins immediately aware of the change.

I'm using obi 6.5.4 with burst backend (burst 1.8.14), and the problem persists with oni backend as well (ropes just jump to wrong colliders instead of throwing exceptions). I'm basically at my wit's end here - any help is appreciated.

Print this item