12-11-2021, 08:55 AM
(This post was last modified: 12-11-2021, 10:27 AM by josemendez.)
(12-11-2021, 01:01 AM)Snail921 Wrote: In the obi system, all obi actors should belong to a single solver to interact with each other but according to the wip manual, obi bone actor's solver should generally be at the root of the character rig. How can we make that "dragon's tail" to whip and mix obi fluid in a scene, for example?
That's why the manual says "generally" and not "always" . If you want bones to interact with rigidbodies -which I believe is the most common case- the solver can be anywhere so placing it at the character's root is the obvious choice. For interacting with other Obi actors (fluid, cloth, etc). they all must share the same solver, so you can place it higher in the hierarchy (at the root of the room/area/level).
Solvers can really be placed anywhere, as long as you keep in mind:
- They behave as inertial reference frames.
- Actors in different solvers can't interact (just like rigidbodies in different physics scenes can't interact).
- There's some global settings per-solver (gravity, damping, etc).
(12-11-2021, 01:01 AM)Snail921 Wrote: Regarding collisions, obi bone locates particles at each joint. How do we fill collision between collision between particles? Adding Unity's default colliders accordingly?
You use surface collisions. They've been around for a while now:
http://obi.virtualmethodstudio.com/manua...sions.html
These have the advantage of being cheap, integrating seamlessly with particle-based collisions, and allowing for stuff that regular colliders don't (capsule colliders can't shear/stretch or have varying radius along their length, for instance)
Note that adding regular colliders to Obi actors will never work. It's like placing bicycle wheels on a car, doesn't make sense: Colliders are meant to work with Rigidbodies in the Unity physics engine. Obi uses its own collision detection pipeline and its own dynamics engine, Unity and Obi are separate physics engines.