Obi Official Forum

Full Version: Trying to make Kelp
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi I'm trying to recreate the kelp stalks from Abzu, and I'm trying to figure out if Obi Rope is a good solution.

Video of the Abzu kelp forest

I'm not looking to have as many kelp as they do, maybe between 10-20, but I'm looking to emulate the visuals and behavior of the kelp as closely as possible.

Here is what I'm hoping to achieve:
  • Grow and shrink the kelp dynamically
  • Kelp stalks swaying
  • Leafs being pulled around by the stalks
  • Have 'current' forces that push kelp stalks and leafs around
Note that I don't need the kelp to be pushed around by the player or other moving objects, but I wouldn't mind it either.

Does that seem feasible with Obi Rope?
(08-04-2018, 02:02 AM)gentlemango Wrote: [ -> ]Hi I'm trying to recreate the kelp stalks from Abzu, and I'm trying to figure out if Obi Rope is a good solution.

Video of the Abzu kelp forest

I'm not looking to have as many kelp as they do, maybe between 10-20, but I'm looking to emulate the visuals and behavior of the kelp as closely as possible.

Here is what I'm hoping to achieve:
  • Grow and shrink the kelp dynamically
  • Kelp stalks swaying
  • Leafs being pulled around by the stalks
  • Have 'current' forces that push kelp stalks and leafs around
Note that I don't need the kelp to be pushed around by the player or other moving objects, but I wouldn't mind it either.

Does that seem feasible with Obi Rope?

imho ObiRope not a good tool to simulate this, for various reasons:

- Ropes do not model torsion, so controlling the motion of leaves attached to them is pretty much imposible.

- Rope mesh geometry is recalculated every frame. This is unnecessary in your case as the kelp does not deform a lot.

- Ropes are meant for accurate collision detection, two-way rigidbody coupling, etc. Kelp in the video you sent is pretty much passive: it just gets out of the way of the diver, when it gets too close. Its dynamics could be easily implemented in a vertex shader (which would also be a much more performant solution). The swaying could be a implemented as simple sin() function, or more complex ones depending on what you need.

I strongly encourage you to use a simpler, shader-based custom solution to deform a static mesh. This is also probably the way the kelp in the video was done.
(09-04-2018, 05:20 PM)josemendez Wrote: [ -> ]imho ObiRope not a good tool to simulate this, for various reasons:

- Ropes do not model torsion, so controlling the motion of leaves attached to them is pretty much imposible.

- Rope mesh geometry is recalculated every frame. This is unnecessary in your case as the kelp does not deform a lot.

- Ropes are meant for accurate collision detection, two-way rigidbody coupling, etc. Kelp in the video you sent is pretty much passive: it just gets out of the way of the diver, when it gets too close. Its dynamics could be easily implemented in a vertex shader (which would also be a much more performant solution). The swaying could be a implemented as simple sin() function, or more complex ones depending on what you need.

I strongly encourage you to use a simpler, shader-based custom solution to deform a static mesh. This is also probably the way the kelp in the video was done.

Thanks for the reply.