BetterCharacterControl Not Behaving Correctly

I am attempting to get the BetterCharacterControl to behave more like what I want. Specifically, I want it to go where the player tells it to go and nowhere else, along with some basic limitations.

I am facing two issues:

  • The BetterCharacterControl is able to effortlessly walk directly uphill on almost vertical parts of my terrain. I want this to be impossible.

  • The BetterCharacterControl’s velocity doesn’t get removed when the player stops pressing any buttons. It also often “jumps” into the air

I often see people citing these sorts of errors as just being “realistic.” I don’t want realism, I want a character that is under the perfect control of the player except for various limitations, such as the lack of an ability to walk up cliifs/walls.

Also, It may be a good idea to dedeprecate the standard CharacterControl. I have always found it did what I want without fussing about “realism” or anything else.

Another solution would be to copy & paste the character control and create your own implementation that you can tweak.

I was considering something similar, but, I would like to at least see what the maintainers have to say about why BetterCharacterControl is actually better and how it can do what I want.

Also, AFAIK, the CharacterControl is being removed for native bullet. I’d rather not go and mess with the C++ libraries.

From my perspective, BetterCharacterControl is a physics based control… meaning if you walk on a boat you will bob with the boat, if you get hit by a boulder you will fly through the air, etc…

CharacterControl is not a physical control. It goes where you want it and if you hit a boulder you will just push it out of the way.

Sounds like you want the second way. I don’t think it’s going anywhere… sometimes you need one, sometimes you need the other.

Normen wrote the better character control so it could have more ‘realism’. Here is his design choices:

The control is made to be extensible and all character-relevant code is in the class (as opposed to the opaque native character). So you can make it do whatever you want it to do. Thats (aside from the added features) the main reason why its better.