Obi Official Forum
Rope Climb Ability - Printable Version

+- Obi Official Forum (https://obi.virtualmethodstudio.com/forum)
+-- Forum: Obi Users Category (https://obi.virtualmethodstudio.com/forum/forum-1.html)
+--- Forum: Obi Rope (https://obi.virtualmethodstudio.com/forum/forum-4.html)
+--- Thread: Rope Climb Ability (/thread-691.html)



Rope Climb Ability - JacobSiler - 18-09-2018

Hi there.

I am working on a rope climbing system for my game, and I came to a few questions about Obi Rope.

Will I be able to determine particle positions to snap my character's hands to them as she climbs? I would also need the hand and leg contact areas to be similar to pin constraints, because I want my character to be able to affect the rope while climbing and swing on the rope according to keyboard input.

I have a mindmap of my current, and desired features here: https://www.mindmeister.com/1144902602?t=Rw6xppRVNe

Obi Rope definitely tops the other rope assets I could find, so I purchased it in hopes that I can get my design working with it.
If anyone has any tips, or can confirm if this is possible I would be very appreciative!
Thanks.


RE: Rope Climb Ability - josemendez - 19-09-2018

(18-09-2018, 10:22 PM)JacobSiler Wrote: Hi there.

I am working on a rope climbing system for my game, and I came to a few questions about Obi Rope.

Will I be able to determine particle positions to snap my character's hands to them as she climbs? I would also need the hand and leg contact areas to be similar to pin constraints, because I want my character to be able to affect the rope while climbing and swing on the rope according to keyboard input.

I have a mindmap of my current, and desired features here: https://www.mindmeister.com/1144902602?t=Rw6xppRVNe

Obi Rope definitely tops the other rope assets I could find, so I purchased it in hopes that I can get my design working with it.
If anyone has any tips, or can confirm if this is possible I would be very appreciative!
Thanks.

Hi,

You can get particle indices from Obi's collision detection system. With these indices you can get/set any particle properties (positions, velocities, etc), as well as add/remove constraints involving these particles. See:

http://obi.virtualmethodstudio.com/tutorials/scriptingcollisions.html
http://obi.virtualmethodstudio.com/tutorials/scriptingparticles.html
http://obi.virtualmethodstudio.com/tutorials/scriptingconstraints.html


RE: Rope Climb Ability - JacobSiler - 12-10-2018

Thank you for your help.

My character now detects the rope collisions, however, I have been unable to work out how to get the transform of an individual particle to use for positioning the character while she climbs. I assume that perhaps this should actually be done with the pin constraint documentation you sent me, although I am having trouble sorting through what I need and don't need to use for this system.
I am not sure how to get an ObiActor to get particle position information from so my character knows where the rope is positioned.

Is the rope already an ObiActor, or do I need to add one as a component? I have been unable to find one I can add in the inspector.

Thanks again,
JacobSiler


RE: Rope Climb Ability - josemendez - 12-10-2018

(12-10-2018, 02:59 PM)JacobSiler Wrote: Thank you for your help.

My character now detects the rope collisions, however, I have been unable to work out how to get the transform of an individual particle to use for positioning the character while she climbs. I assume that perhaps this should actually be done with the pin constraint documentation you sent me, although I am having trouble sorting through what I need and don't need to use for this system.
I am not sure how to get an ObiActor to get particle position information from so my character knows where the rope is positioned.

Is the rope already an ObiActor, or do I need to add one as a component? I have been unable to find one I can add in the inspector.

Thanks again,
JacobSiler

Hi,

ObiActor is the abstract base class for ObiRope. As an abstract class, you cannot instantiate it. All ropes are already an actor.

Follow the manual for more info on how to get particle positions from an actor:
http://obi.virtualmethodstudio.com/tutorials/scriptingparticles.html

Your best bet if you only need to get the position of a few particles is to use the low-level getters described in the last section, specifically Oni.GetParticlePositions().


RE: Rope Climb Ability - JacobSiler - 28-05-2020

(12-10-2018, 07:31 PM)josemendez Wrote: Hi,

ObiActor is the abstract base class for ObiRope. As an abstract class, you cannot instantiate it. All ropes are already an actor.

Follow the manual for more info on how to get particle positions from an actor:
http://obi.virtualmethodstudio.com/tutorials/scriptingparticles.html

Your best bet if you only need to get the position of a few particles is to use the low-level getters described in the last section, specifically Oni.GetParticlePositions().

Hi Jose.

A couple of years later, I'm trying this again. It seems to be progressing towards solved, but I wondered if you had some advice on what to do with my colliders?

My character has obi collider components added to some of his key colliders so the rope interacts with him properly. They do seem to be causing a collision fighting effect when he starts climbing though. As far as I know, the colliders are on the same phase. How should I proceed to be most successful with this?

Also, my character is kinematic (Using Opsive Ultimate Character Controller) and this seems to keep pin constraints from really working since the mass changes have no effect on the character's behavior so I am following the particles' movement on the character's side. I'm not too sure what to do on this front, as I want the character to be able to swing on the rope. Do you think it would be better to make a non-kinematic character stand in to do the rope interaction, and swap between the character controller and that rope climbing dummy for the ability?


RE: Rope Climb Ability - Alexander34 - 08-08-2023

(12-10-2018, 07:31 PM)josemendez Wrote: Hi,

ObiActor is the abstract base class for ObiRope. As an abstract class, you cannot instantiate it. All ropes are already an actor.

Follow the manual for more info on how to get particle positions from an actor:
http://obi.virtualmethodstudio.com/tutorials/scriptingparticles.html

Your best bet if you only need to get the position of a few particles is to use the low-level getters described in the last section, specifically Oni.GetParticlePositions().
the question above is still valid