Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Considering buying (again)
#1
Hello. I tried the Obi soft body a year ago, but it didn't quite fit my needs and expectations at the time but I'm seeing some improvements and things I could use now. 

What I want to do is attach multiple obi simulations to characters rigid body based skeleton and to be able to enable and disable them on the fly for optimisation, and to have body parts with different sim resolution. I would make my own skinning and rigging and would read from particle positions to drive the skin bones. The skin should still have morphs. 

Would that be a reasonable approach or would that be possible at all? Is two way coupling between soft body particles and rigidbodies possible? Are there maybe some overheads and performance costs from reading particle positions or sth like that?

What I would actually want is multiple Obi soft bodies attached to the same mesh with different sim resolution and with ability to turn their sim on or off individually. But I don't expect that those features exist.

Also I remember there was no manual control of individualparticle placement. Is that still the case? Or is editing particle transforms via script is possible so that I can implement my own editor?

Could you also please tell me when the sale ends? I'm very tempted to buy the whole set.
Reply
#2
Hi!

(30-12-2021, 01:42 AM)illinar Wrote: What I want to do is attach multiple obi simulations to characters rigid body based skeleton and to be able to enable and disable them on the fly for optimisation, and to have body parts with different sim resolution.

Yes, you can do this. Softbodies can be individually enabled/disabled (just enable/disable the component). Each softbody can use a different blueprint and have different resolution.

(30-12-2021, 01:42 AM)illinar Wrote: I would make my own skinning and rigging and would read from particle positions to drive the skin bones.

Obi already works like this: one extra bone is created for each particle in the simulation, and these bones are appended to your skeleton. There's no extra benefit in manually driving your own bones, except for extra control in skin weight distribution.

(30-12-2021, 01:42 AM)illinar Wrote: The skin should still have morphs. 

If by morphs you mean blend shapes, not possible. Blend shapes are applied *after* skinning, and softbody simulation is applied *before* skinning. If all you want is the mesh changing after the simulation that's okay, but you can't use blend shapes to affect the simulation in any way.

(30-12-2021, 01:42 AM)illinar Wrote: Would that be a reasonable approach or would that be possible at all?

Except for the blend shape part, yes. What you describe is basically how Obi works by default.

(30-12-2021, 01:42 AM)illinar Wrote: Is two way coupling between soft body particles and rigidbodies possible?

Yes, full two-way coupling is supported out of the box. Been there from 1.0, as it was the main reason Obi came into existence: Unity's built-in cloth simulation didn't have support for rigidbody coupling and I needed, so I wrote Obi out of necessity.

(30-12-2021, 01:42 AM)illinar Wrote: Are there maybe some overheads and performance costs from reading particle positions or sth like that?

No, you can read/write particle positions (and orientations, radii, mass, velocities, etc) by simply accessing an array. Doesn't get any faster than that. See:
http://obi.virtualmethodstudio.com/manua...icles.html

(30-12-2021, 01:42 AM)illinar Wrote: What I would actually want is multiple Obi soft bodies attached to the same mesh with different sim resolution and with ability to turn their sim on or off individually. But I don't expect that those features exist.

Yes, this is what Obi does. Simulation and mesh binding are decoupled from each other.

(30-12-2021, 01:42 AM)illinar Wrote: Also I remember there was no manual control of individualparticle placement. Is that still the case? Or is editing particle transforms via script is possible so that I can implement my own editor?

This has also been always possible. You can set/get any per-particle property (including position, orientation and size) at any time. See the above link.

(30-12-2021, 01:42 AM)illinar Wrote: Could you also please tell me when the sale ends? I'm very tempted to buy the whole set.

New Year Sale has ended around January 7th past years, not sure about this one. We publishers do not have any special information about sales compared to regular users, Unity simply asks us if we want to participate or not, that's all.

cheers!
Reply
#3
Thank you very much for the answers. 

Just want to clarify some things because I have not worded them very clearly. I meant that I need multiple soft bodies per single skinned mesh (so that I can disable some of them when I need to), and those bodies having resolution different from one another (but that of course is possible if I have the full control over the particles at least via code). So is that possible?

The morphs are actually gonna be mostly applied on character generation stage. So, let's say I changed the shape of the mesh at runtime. I assume it shouldn't be a problem to conform obi particles to that mesh after the fact, by setting their new default positions. I can do all the calculations for that manually.

If those things I can do, then I'm pretty sure this is way better than making my own collider and joint based simulation, so I'm pretty hapy with this.

In a dream world I would be able to control simulation resolution based on the interacting bodies. For example if a small object like a hand in a VR game is colliding with the soft body, it will activate and interact with the highest resolution skin layer, and will switch to course large scale particles otherwise but I doubt that such swapping and reskinning would be cheap.
Reply
#4
(30-12-2021, 01:10 PM)josemendez Wrote: Hi!
Just trying to @ you Sonrisa
Reply
#5
(30-12-2021, 08:42 PM)illinar Wrote: Just want to clarify some things because I have not worded them very clearly. I meant that I need multiple soft bodies per single skinned mesh (so that I can disable some of them when I need to), and those bodies having resolution different from one another (but that of course is possible if I have the full control over the particles at least via code). So is that possible?

Yes, that’s possible. As I mentioned simulation and mesh skinning/binding are decoupled, that means you can skin the same mesh to multiple softbodies(*), or skin multiple meshes to a single softbody.

(*)Note however that this only works for non-overlapping regions of the mesh. If the same region of a mesh is skinned to multiple softbodies, only the latest softbody will be used. This means you can’t have multiple “skins” to multiple softbodies, which I can imagine would be useful for LOD systems where you have multiple versions of the same softbody and switch between them. This is what you describe in your last paragraph, I believe.

If you’re gonna apply morphs to the mesh as a kind of “preprocess”, you can then either re-generate the blueprint from the morphed mesh and re-skin it (easy, bruteforce approach) or set particle positions to match the morphed mesh and re-calculate rest shape matching.
Reply
#6
(02-01-2022, 02:41 PM)josemendez Wrote: Yes, that’s possible. As I mentioned simulation and mesh skinning/binding are decoupled, that means you can skin the same mesh to multiple softbodies(*), or skin multiple meshes to a single softbody.

(*)Note however that this only works for non-overlapping regions of the mesh. If the same region of a mesh is skinned to multiple softbodies, only the latest softbody will be used. This means you can’t have multiple “skins” to multiple softbodies, which I can imagine would be useful for LOD systems where you have multiple versions of the same softbody and switch between them. This is what you describe in your last paragraph, I believe.

If you’re gonna apply morphs to the mesh as a kind of “preprocess”, you can then either re-generate the blueprint from the morphed mesh and re-skin it (easy, bruteforce approach) or set particle positions to match the morphed mesh and re-calculate rest shape matching.
This should work great for me. I purchased 3 of the assets. Thank you.
Reply