Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Help  Obi Rope Cursor and Resolution
#1
I'm trying to extend the rope using Obi Cursor. I have a resolution of 0.5 in my blueprint. I needed some extra precision at start and end of the rope so I added some extra points manually (higher resolution more points) but I want the rope to continue with less resolution in the middle and I'm extending the rope from middle as well. But I'm facing a problem that its copying the resolution of source as well and I'm ending up with higher resolution in middle as well.

[Image: 1.png]

As the image shows that extra points at top and bottom of rope. But when I increase length of rope in middle I get higher resolution like this.

[Image: 2.png]

All 5 high resolution points are repeated in the middle.


Now even if i move the source a little up like 0.1 i still get the same result. How source works? its copying all the points?
Reply
#2
Ropes have a single "resolution" value, Obi does not support multirresolution / adaptive resolution ropes.

As a result, adding control points does not affect the rope blueprint's resolution value. Since each control point ensures a particle is placed exactly at the control point location, placing many control points togethers makes you end up with more particles in that area. However particle spacing as far a resolution is concerned remains unchanged.

Cursors only copy particle properties form the source (mass, radius, color, etc). The spacing used when placing new particles is the rope's average particle spacing, calculated from the rope's blueprint rest state. You could abuse this to force slightly larger distance between particles in the middle of the rope, by adding more particles to the mid-section of the rope in its rest state. The more particles there are with longer spacing between them, the higher the average inter-particle distance used by the cursor will become.

kind regards,
Reply
#3
(15-11-2024, 10:13 AM)josemendez Wrote: Ropes have a single "resolution" value, Obi does not support multirresolution / adaptive resolution ropes.

As a result, adding control points does not affect the rope blueprint's resolution value. Since each control point ensures a particle is placed exactly at the control point location, placing many control points togethers makes you end up with more particles in that area. However particle spacing as far a resolution is concerned remains unchanged.

Cursors only copy particle properties form the source (mass, radius, color, etc). The spacing used when placing new particles is the rope's average particle spacing, calculated from the rope's blueprint rest state. You could abuse this to force slightly larger distance between particles in the middle of the rope, by adding more particles to the mid-section of the rope in its rest state. The more particles there are with longer spacing between them, the higher the average inter-particle distance used by the cursor will become.

kind regards,

I wanted the rope to have some extra particles at the start because at that point i need some extra precision and collision but the rest can follow a low resolution. So i manually points at the start. Now is it possible that the rest of the rope when extended from the middle follow the same resolution as blue print and start contains some extra points (which i have manually added)?
Reply
#4
(15-11-2024, 10:30 AM)vrtraining Wrote: I wanted the rope to have some extra particles at the start because at that point i need some extra precision and collision but the rest can follow a low resolution. So i manually points at the start. Now is it possible that the rest of the rope when extended from the middle follow the same resolution as blue print and start contains some extra points (which i have manually added)?

No, that's not possible by default. As explained, Obi does not support multirresolution ropes.

You could modify rope blueprints to report a custom average inter particle distance for the rope, this is the separation distance cursors use when adding new particles. Open up Obi/Scripts/RopeAndRod/Blueprints/ObiRopeBlueprint.cs and around lines 85-90 you'll see how the inter-particle distance is calculated:

Code:
int numSegments = m_ActiveParticleCount - (path.Closed ? 0 : 1);
if (numSegments > 0)
    m_InterParticleDistance = path.Length / (float)numSegments;
else
    m_InterParticleDistance = 0;

As you can see this is just the length of the rope divided by the amount of segments (gaps between particles). You can perform your own calculation here, or just add a multiplier to make the distance longer.

kind regards,
Reply