We will be out of office from December 23th to January 7th. During this time we'll check the forums less often, we'll be back at full throttle soon. Take care, Merry Christmas!
I've encountered a bug in my project, and was able to encounter it again on a new clean projet. I'm using Unity 2019 LTS and Obi Rope 5.6.2
1. I've a prefab, containing two objects dynamically linked by a rope. The solver is inside the prefab (with ObiFixedUpdater)
2. I put 3 instances of this prefab in a simple scene
3. Then, if I delete A, then B, then C, everything is fine...
BUT ! If I delete C first, there is a big bug, and ropes from A go crazy and jump (or the spheres/cubes fly away) ! The attachment is almost broken (there is a big gap between the rope and the sphere)
Could you help me/resolve this bug ?
I can send a zip package is necessary,
I've encountered a bug in my project, and was able to encounter it again on a new clean projet. I'm using Unity 2019 LTS and Obi Rope 5.6.2
1. I've a prefab, containing two objects dynamically linked by a rope. The solver is inside the prefab (with ObiFixedUpdater)
2. I put 3 instances of this prefab in a simple scene
3. Then, if I delete A, then B, then C, everything is fine...
BUT ! If I delete C first, there is a big bug, and ropes from A go crazy and jump (or the spheres/cubes fly away) ! The attachment is almost broken (there is a big gap between the rope and the sphere)
Could you help me/resolve this bug ?
I can send a zip package is necessary,
Thanks,
Hi there,
If you could send a .zip of the project to support(at)virtualmethodstudio.com I will take a look at it. I don't quite understand your description.
04-02-2021, 10:45 AM (This post was last modified: 04-02-2021, 10:46 AM by josemendez.)
This is a known bug in dynamic attachments, introduced in 5.6.1 and fixed in 6.0 (yet unreleased). A quick fix is to open up ObiParticleAttachment.cs, and just remove/comment out line 456:
Code:
//if (torn) // <---comment this out
m_Actor.SetConstraintsDirty(Oni.ConstraintType.Pin);
One thing I though I should point out about your current setup: you're using an independent updater/solver for each prefab instance. This is a big no-no. This means each solver and its rope will be updated sequentially, negating most multithreading benefits. Usually you're supposed to have a single Updater component in your scene that updates all solvers in parallel. See: http://obi.virtualmethodstudio.com/tutor...cture.html http://obi.virtualmethodstudio.com/tutor...aters.html
To make things worse, all updaters use 3 substeps and have "substep unity physics" enabled. This will force rigidbody physics in your scene to be updated 3 times per updater, for a total of 9 full physics updates per frame. For very simple scenes it might be ok, but as soon as you add a few more ropes it will absolutely obliterate performance.
(04-02-2021, 10:45 AM)josemendez Wrote: This is a known bug in dynamic attachments, introduced in 5.6.1 and fixed in 6.0 (yet unreleased). A quick fix is to open up ObiParticleAttachment.cs, and just remove/comment out line 456:
Code:
//if (torn) // <---comment this out
m_Actor.SetConstraintsDirty(Oni.ConstraintType.Pin);
One thing I though I should point out about your current setup: you're using an independent updater/solver for each prefab instance. This is a big no-no. This means each solver and its rope will be updated sequentially, negating most multithreading benefits. Usually you're supposed to have a single Updater component in your scene that updates all solvers in parallel. See: http://obi.virtualmethodstudio.com/tutor...cture.html http://obi.virtualmethodstudio.com/tutor...aters.html
To make things worse, all updaters use 3 substeps and have "substep unity physics" enabled. This will force rigidbody physics in your scene to be updated 3 times per updater, for a total of 9 full physics updates per frame. For very simple scenes it might be ok, but as soon as you add a few more ropes it will absolutely obliterate performance.
let me know if I can be of further help. cheers!
It's working now ! Thank you a lot for your efficiency
Yes, for my original project (not the simple that I made to send for the bug report), I've one Updater, and dynamically add/remove solvers to it. The number of substeps is relative to the number of solvers.