Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Trying to make Kelp
#1
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?
Reply
#2
(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.
Reply
#3
(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.
Reply