Free climb problems

wuyan

Member
Hi,

I have 2 problems about the free climb.

1, If the character is climbing to the top of a capsule. After dismount. it will trigger a fall. If the capsule is high enough (it doesn't seem to be the height from the ground, but the relative height from mount position to dismount position). Although the character doesn't actually fall, and still stands on the top of the capsule, but he will fall to death/get hurt.

Take a look at the screenshot. In the demo, I added the character health component to Nolan. Add a capsule which scale (2,10,2). If I climb directly from the ground to the top, this problem will occur. If I jump from the top of the nearby cube to a certain position of the capsule (for example, 3 meters to the top of the capsule), then mount, climb to the top, and the falling damage is only calculated for this 3 meters. Even if I climb to the bottom and then to the top, still only calculate this 3 meters.

I tried to use state to turn off fall damage when free climb ability is activated. But it failed because the falling triggered when the climb ability is end.

1635269225325.png

2, After click F to dismount and end climb, how to mount and climb again during the falling. For example, when a character falls from a high wall in a natural state (not climb). He can mount and start climb during the falling. However, if click Action/Jump key to stop climb during climbing, cannot mount again during falling.

Thank you!
 
1. To determine where the damage is coming from can you add a Debug.Log statement to Health.OnDamage and paste the call stack?

2. This is not currently supported. It shouldn't be too hard to add support for though so I can get it in the next climbing update.
 
Hi Justin,

Thank you!

1. To determine where the damage is coming from can you add a Debug.Log statement to Health.OnDamage and paste the call stack?
attacker:UMA_Character (UnityEngine.GameObject) UnityEngine.Debug:Log (object) Opsive.UltimateCharacterController.Traits.CharacterHealth:OnDamage (Opsive.UltimateCharacterController.Traits.Damage.DamageData) (at Assets/Opsive/UltimateCharacterController/Scripts/Traits/CharacterHealth.cs:82) Opsive.UltimateCharacterController.Traits.Health:Damage (Opsive.UltimateCharacterController.Traits.Damage.DamageData) (at Assets/Opsive/UltimateCharacterController/Scripts/Traits/Health.cs:318) Opsive.UltimateCharacterController.Traits.Health:Damage (single,UnityEngine.Vector3,UnityEngine.Vector3,single,int,single,UnityEngine.GameObject,object,UnityEngine.Collider) (at Assets/Opsive/UltimateCharacterController/Scripts/Traits/Health.cs:294) Opsive.UltimateCharacterController.Traits.Health:Damage (single,UnityEngine.Vector3,UnityEngine.Vector3,single,int,single,UnityEngine.GameObject,UnityEngine.Collider) (at Assets/Opsive/UltimateCharacterController/Scripts/Traits/Health.cs:275) Opsive.UltimateCharacterController.Traits.Health:Damage (single,UnityEngine.Vector3,UnityEngine.Vector3,single,UnityEngine.GameObject) (at Assets/Opsive/UltimateCharacterController/Scripts/Traits/Health.cs:244) Opsive.UltimateCharacterController.Traits.CharacterHealth:OnCharacterLand (single) (at Assets/Opsive/UltimateCharacterController/Scripts/Traits/CharacterHealth.cs:140) Opsive.Shared.Events.InvokableAction`1<single>:Invoke (single) Opsive.Shared.Events.EventHandler:ExecuteEvent<single> (object,string,single) Opsive.UltimateCharacterController.Character.UltimateCharacterLocomotion:UpdateGroundState (bool,bool) (at Assets/Opsive/UltimateCharacterController/Scripts/Character/UltimateCharacterLocomotion.cs:883) Opsive.UltimateCharacterController.Character.CharacterLocomotion:DeflectVerticalCollisions () (at Assets/Opsive/UltimateCharacterController/Scripts/Character/CharacterLocomotion.cs:1125) Opsive.UltimateCharacterController.Character.CharacterLocomotion:UpdatePosition () (at Assets/Opsive/UltimateCharacterController/Scripts/Character/CharacterLocomotion.cs:777) Opsive.UltimateCharacterController.Character.UltimateCharacterLocomotion:UpdatePosition () (at Assets/Opsive/UltimateCharacterController/Scripts/Character/UltimateCharacterLocomotion.cs:989) Opsive.UltimateCharacterController.Character.CharacterLocomotion:UpdatePositionAndRotation () (at Assets/Opsive/UltimateCharacterController/Scripts/Character/CharacterLocomotion.cs:543) Opsive.UltimateCharacterController.Character.UltimateCharacterLocomotion:UpdatePositionAndRotation () (at Assets/Opsive/UltimateCharacterController/Scripts/Character/UltimateCharacterLocomotion.cs:857) Opsive.UltimateCharacterController.Character.CharacterLocomotion:UpdatePositionAndRotation (bool) (at Assets/Opsive/UltimateCharacterController/Scripts/Character/CharacterLocomotion.cs:521) Opsive.UltimateCharacterController.Character.CharacterLocomotion:OnAnimatorMove () (at Assets/Opsive/UltimateCharacterController/Scripts/Character/CharacterLocomotion.cs:1456) Opsive.UltimateCharacterController.Character.UltimateCharacterLocomotion:OnAnimatorMove () (at Assets/Opsive/UltimateCharacterController/Scripts/Character/UltimateCharacterLocomotion.cs:1786)

2,By the way, when character falling and mount on the wall. At this time,is it possible to add a recoil transition animation? It will looks more realistic. For example, when the character falls from 5 meters high and grabs the wall. Need a short pause and can't climb immediately. Will play a downward inertia animation.

Even play different animations according to different fall height/speed. For example, if fall from a height of 20 meters, will slide down 1 meter on the wall to mount. Of course, if the character will move like this. More factors may have to be considered. If for simplicity, I think a transition animation without displacement will be enough and look much better.

I don't know if I've made it clear. This is not necessary for me. But it will look more better and realistic.:)
 
Last edited:
1. Turning off fall damage is the correct solution for this. Maybe you could turn it off within a trigger area so it works with the fall ability?

2. Right now it's not possible to reattach to the object at all when falling.
 
Right now it's not possible to reattach to the object at all when falling.
2, After click F to dismount and end climb, how to mount and climb again during the falling. For example, when a character falls from a high wall in a natural state (not climb). He can mount and start climb during the falling. However, if click Action/Jump key to stop climb during climbing, cannot mount again during falling.
Hi Justin,

I don't know if you fully understand what I mean. I upload 2 videos.

1, In fact, a normal drop can reattach.

2, If actively end the climb during the climb, then cannot reattach during the fall untill land again.
 
Last edited:
That's correct - with the current version the climb ability requires the character to be grounded again before it can be reattached.
 
That's correct - with the current version the climb ability requires the character to be grounded again before it can be reattached.

Hi Justin,

Now there is a problem. Because once the character and climbing object move towards each other, the climb ability will be activated. I don't know if this is a bug or a design. This will often untimely activate climbing in the game. And cause many problem. The animator often get stuck in my test.

Just like in many games, Would you please changed to that the character can repeatedly activate climb ability in the air by pressing key. This can avoid many problems,and interesting.

 
Last edited:
Hi, I'm sorry ahead of time. But I have been meaning to post these issues and haven't gotten around to it. so I'm gonna quickly add them to this post as some are semi relevant.

On Free climb if you jump off a platform fall a bit and then climb, once you dismount even at a higher elevation you take fall damage for the height fallen before the climb. in my experience if I turn off fall damage for the dismount, Ill still take the fall damage next time I fall or dismount from any hight once I turn fall damage back on.

when using the free climb and swim abilities, if you free climb from swimming in water and then fall back into swimming in the water, you can no longer free climb from water, until your character collider either becomes grounded again, or swims underwater until its collider touches the ground. (this is very annoying) and makes the two abilities useless together.

I have another bug I want to report about the state system where you create a State for IK to modify a value and it does not override.

I think its the right hand position spring or the right hand rotation spring (or both) and the dampening value.. sorry its been awhile, this caused me some confusion for awhile and is still something I need frequently and its just never worked.

I'm using the TPC controller not the new controller, I'm so confused now what controller is what, I thought I was using TPC 2, but I see a lot of people seem to be confused as to which controllers are which now, I see this controller labeled as legacy or TPC 1 now a lot of places and the new controller listed as 2 in documentation etc, im so confused on this, honestly I just gave up. the introduction of the new version of the controller has made finding information in documentations for different controllers just very confusing. I bought this controller a little over a year ago using the latest version, and the latest version of unity. but these bugs exist in every version of unity I have used and every version of the controller I have used so I don't think the technical specs matter all that much.

anyway cheers..
 
I am currently working on updating the Climbing Pack and will look at this for version 3. The updated Climbing Pack will only be available for version 3 of the controller and we will no longer be supporting version 2 of the controller anymore.
 
I'm just gonna be straight forward as possible here, I only bought the v2 controller last year along with other Opsive products not limited to but including the climbing and swimming pack and maybe I should had been little more cautious when I made these purchases, but I'm not making the change to v3 of Opsive for my Project, too much work has went into modifying v2 and the changes aren't applicable to the new version of the controller. I'm not saying I wasn't goning to buy it anyway, but I think this is bad practice to "Stop" support for v2 controller after people have invested their time and money into the product, and by not at least fixing long standing issues with the v2 controller or even newly found issues that are uncovered or surface after your v3 release, makes me feel less confident in your company and your products.

so far as the climbing and swimming packs are concerned I purchased them because they were made by the same people who made the controller and are abilities, so I thought that the fact that they should or even would work together wouldn't had even been questionable.

all this being said, the invector controller is fantastic, all their add ons are compatible with one another, including their swimming and free climbing packs they have fantastic IK solutions and the controller is well polished and they continue to support their products and their products cost less over all, I bought both controllers before I started my project and the only reason I choose Opisve for this product was the fact at the time Opsive had more integrations and the UIS, but reevaluating today, Invector integrations, add ons and controller are literally on par with v2 or better and absolutely killing Opsive v3 controller, If I switch products, I wouldn't be using v3 opsive controller.

Lastly I'm not angry or mad or any other emotional give a fucks, I'll fix the issues with v2 myself, but this is my opinion, and I think that most people would expect about as much when they buy any product, im not saying that support is everlasting, I'm saying that people will expect you to at least fix the issues with the product they already purchased and not be told to get a fix, they need to buy a new product.
dropping support for a old product means no more active support, development etc, doesn't mean you shouldn't fix problems with those versions you already sold to customers, make sure it works completely and when there are no issues discontinue the product.

I like Opsive Controller, I like UIS, I couldn't had created either of those products, so I hope you guys the best over all, I gave UIS a fantastic review last year, and I haven't reviewed the controller yet.

regards
 
Thanks for your feedback and support :)

While I wish that we were able to support all of our products forever for free, that's just not a sustainable way to run a business. No software is perfect, and at some point we have to draw the line of when we stop fixing a particular version. I hate this line, but on the Asset Store you are purchasing the asset at the time of sale and there is no guarantee of any future updates to that asset. We support our assets the way we do because we love the community that we are in.

There are some publishers on the Asset Store who do not charge for updates but that's not a sustainable business model for us. A lot depends on where you are located and the cost of living, but we are also choosing to grow instead of stay stagnant. On Monday we are announcing a new machine learning project that was partly funded by the version 3 upgrades (though it was a small percent - this project has been in development for 2+ years). This machine learning project is something that could change the workflow for a lot of indies/other studios in one area of the game development process.
 
Yeah, Man, we buy controllers and such like this to save time. it takes along time to build anything of value, halfway threw your development cycle, you don't want to hear that a key aspect of the development will no longer be supported and the only way forward is to not only buy (which in itself isn't a problem) a new version, but have to figure out a way to salvage months of development to just get the new version to work,
not to mention the integrations with many other packages all used in an effort to reduce man hours, which will take a huge amount of effort to get working with v3. all in the name of a few features that don't really seem like they add a lot of value to what we are doing anyway. the only worth wild feature (for me) I seen, I had already added myself.

so now it's not about some small sum of money, the cost to gain continued support would be months of work, if v3 had been a direct upgrade
then I'd had bought it and updated v2 and kept moving forward and I would assume so would your support, but its not. so now I feel like I have a problem, I may yet stumble onto something that I can not fix myself and then the loss for me could be high.
Maybe you should consider a support package of some sorts, I can't imagine this is a problem unique to me. I feel like there have to be plenty of people out there who are too far in their development cycles to consider the v3 upgrade; but want continued support. I'd be happy to pay the cost of the v3 controller to extend support, even annually.
to be clear this isn't about free upgrades or support, its about not having a viable way to gain continued support, its your controller if its broke
I want you to fix it, not because of any point of being, but because you know it better then me and your the best person for the job. if you had said here's v3 for $$$ but we also have v2 extended support package for the same amount of $$$. then I'd had just purchased the support package because ultimately I just want to know the company behind anything I'm using is gonna stand behind it
if I find a legit issue with their product.


but whatever its your company and you guys can run it how you see fit.
ill be looking for the announcement on Monday with some interest.

regards
 
to be clear this isn't about free upgrades or support, its about not having a viable way to gain continued support, its your controller if its broke
I want you to fix it, not because of any point of being, but because you know it better then me and your the best person for the job. if you had said here's v3 for $$$ but we also have v2 extended support package for the same amount of $$$. then I'd had just purchased the support package because ultimately I just want to know the company behind anything I'm using is gonna stand behind it
That's a really interesting idea and one that we never considered. Thinking about it some more, my line of thought is that if somebody is going to upgrade they will be mid to early stages of development. For somebody who is far along in development they would have had all of the kinks worked out by now. The upgrade to version 3 is seamless if you aren't using items, but the item system did get a major improvement so those aren't able to be upgraded. I know of some mid-sized studios going through the upgrade right now and overall the experience has been positive. Honestly I don't think the upgrade notes market how big of a change some of the version 3 improvements are.

With that said, having extended support for version 2 is a really good idea if you are in a particular situation that prevents you from being able to upgrade. It's definitely something that I'll consider, though at this point I am just focused on the machine learning project and getting version 3 at add-on/integration parity with version 2.

I almost have climbing almost done updated to version 3 and fixed the grounded bug. You can fix it by changing TraversalClimb.CanStartAbilty to:
Code:
            if (!base.CanStartAbility()) {
                return false;
            }

            if (InputIndex != -1 || m_HasBeenGrounded) {
                return true;
            }
            return false;
 
I've worked alone on my Project for little over two years, I can code some, I took basic programming course in school and I've messed with Game engines for little over two decades, I'm a decent Artist and musician. This is always just been a hobby for me. This project came in to being by accident. I was just making things that I thought were cool and I realized that I had something sort of special. With my limited coding ability I didn't know if I'd be able to do everything, so I'd work on some thing until I could get it to work and then abandon it and move on to other things that I didn't yet know how to do. At some point I outgrew my simple character controller and looked at Opsive and Invector controllers and from there I seen UIS, and browsing at the integrations I seen that this had the capability to take an absolute impossible amount of work to do on my
own and make the project actually possible .
the amount of work is still mind blowing, I have lists of 3d Models in the hundreds, sound effects, music, story boards, Animations, and now the many systems I have wrote myself I have to constantly fix and change as some requirements change or I find bugs in my own stuff so when I find a bug in an asset I bought I don't generally want to fix it( I have so much on my plate already), most of the time it would take me hours to fix something minor in your code that you could probably fix in a few minutes because you wrote it, understand it inside and out, I have to study your code to make a change and sometimes it takes me days to work my systems into TPC or UIS for instance. If I find a bug, sometimes I just work out a quick fix, like with the swimming and climbing, I made a work around months ago and that's what I been using, it does work but its more complicated then the fix you supplied above (Thank You) and I don't feel confident it was the right way to go about it, (and it wasn't).
So the support too me is valuable, I want to actually work on my stuff because I know I can fix my stuff, I don't know that I can fix some of the things in your controller because they are beyond my ability to write, but so long as your controller works I can work with it to build some amazing things, I've done a lot of very cool stuff using the TPC Abilitys for instance and States etc and I know a lot about the controller on a deep level when it comes to the the different systems and how all the systems work in the editor etc at this point but I couldn't create it on my own, so support is important too me.

I have searched the new Product and registered for the email on the AI Animation product, is there anywhere I can get more information?
So far I only surmise that it is machine learning animation tool and nothing else lol..

I have an absolutely insane amount of animation work on going, so naturally I'm very interested in the tool and what it can do..
I have a couple questions outside of "What Exactly is it", Like is it a standalone tool, not requiring other Opsive products, for instance
is it made to work with Opsive products only, or is it a general purpose Animation tool that can modify / create animations on its own that
can be used with anything else in unity?
Animation is a crux for me and always has been, I can animate but its a slow process and takes a lot of time, I'd be very interested in buying
this ASAP, to get some access as early as possible, because like I said above I have an insane amount of animation work on going and I hate to find out in 3 months that this tool would had saved me a lot of time and energy after the time and energy has already been spent.

plus with the amount I work, I'd put it threw its paces using it likely more then the developers building it. I'm one of those people who work 18 hours a day 7 days a week until I die, and that feedback maybe useful to Opsive..

thanks for the fix.
Regards
 
I have searched the new Product and registered for the email on the AI Animation product, is there anywhere I can get more information?
So far I only surmise that it is machine learning animation tool and nothing else lol..
I am working on a newsletter now describing in more detail what it is. We will also be updating the website with more info but that'll take a bit longer.
I have a couple questions outside of "What Exactly is it", Like is it a standalone tool, not requiring other Opsive products, for instance
is it made to work with Opsive products only, or is it a general purpose Animation tool that can modify / create animations on its own that
can be used with anything else in unity?
Are you on discord? I've been answering a lot of questions there to give a better idea of what it is. In short it is a cloud service that will generate animations for you. It will generate a fbx or bvh file allowing you to use it within any program that supports those formats (such as Unity).
Animation is a crux for me and always has been, I can animate but its a slow process and takes a lot of time, I'd be very interested in buying
this ASAP, to get some access as early as possible, because like I said above I have an insane amount of animation work on going and I hate to find out in 3 months that this tool would had saved me a lot of time and energy after the time and energy has already been spent.
I think that this tool will really help you. Can you hop in the discord channel and describe the type of animations that you are looking for?
 
1. Turning off fall damage is the correct solution for this. Maybe you could turn it off within a trigger area so it works with the fall ability?

Is this the actual default solution for this? My character takes damage when dismounting on top of a ladder - is this intended behavior by design for the climbing ability for any character or is there something wrong with my character specifically? Seems really odd to take fall damage after climbing up.

Edit: Taking your advice from here (not sure if it's still applicable) fixes the damage when climbing up, but then it gives the same damage when dismounting at the bottom! https://www.opsive.com/forum/index.php?threads/fall-damage-in-ladders.8591/#post-42413
 
Last edited:
Turning off fall damage is the correct route. When you are climbing technically you are not grounded so the fall damage comes into play.
 
Turning off fall damage is the correct route. When you are climbing technically you are not grounded so the fall damage comes into play.
1. Would you suggest that or would it be a better idea to set grounded as true whenever the character is climbing a ladder? Whats a more stable solution?
2. The solution in the link I posted above, is that a correct solution to this?


Fixed it by turning off fall damage as suggested.
(Also had to force turn off gravity to make this work - the Use Gravity option in Climb Ladder ability didn't uncheck the bool, and so the UltimateCharacterLocomotion code around line 899 wasn't executing correctly.)
 
Last edited:
Top