[4.7.1] Uncrouch does not work

using crouch/uncrouch in my project, but when crouched, it is not possible to uncrouch.

To check if it is working or not I defined a “Special” key, that does crouching when pressed and uncrouch when released.

after pressing this key once, the character stays in crouch mode, whatever I try I can’t make it uncrouch.

Any ideas?

Many thanks.

To make sure, that correct settings are done:

created a new Character/Pawn and tried, but same behavior. :frowning:

Heyo MagicTigger,

I wanted to clarify something before proceeding with your issue. When you say that the character stays in crouch mode, you’re saying that the IsCrouched bool stays true and does not return to false after releasing the key?

I recreated this in the first person template. I had to make the assumption that the Crouch and Uncrouch functions simply set the IsCrouched bool to true and false, respectively. With this setup, I was able to get the bool to return to false upon release of the key.

I would like to take a look at your project, if that’s alright. Can you upload it to the storage location of your choice (google drive, dropbox, etc)? You can either post a link here or PM me on the forums with the link.

Thanks,

Hello ,

thank you for the comeback.

Yes, on one side the " the IsCrouched bool stays true and does not return to false after releasing the key" as well as the character/pawn speed stays at the “Max Walk Speed Crouched”.

Will send you the link to storage via PM.

Many Thanks.

Cheers!

Tigger

Hi ! link sended, upload done. :slight_smile: Many thanks. Best, Tigger

Hey Tigger,

I’ve been racking my brain on this as much as you probably have haha. It may have something to do with a lot of the other conditions that need to be true for bIsCrouched to read true or return to false in code (as far as I can tell). The Crouch and UnCrouch functions modify the bWantsToCrouch variable, which is one of a number of variables and conditions that determine if bIsCrouched is true or false. I think that one of the other conditions is keeping bIsCrouched from returning to false.

I’m going to forward this to one of the devs who works on Paper2D and get their input, but unfortunately they are at GDC right now and may not be able to respond very quickly.

I would like to note one other thing, your Character is using the parent class of Character. I believe for Paper2D you are expected to use the PaperCharacter class as the parent. I don’t really have time to recreate your whole set of nodes in a new PaperCharacter blueprint, but you might want to try that too.

PS - Block of text = whoops!

Hey ,
tried/created an PaperCharacter.
Result: it never goes to IsCrouched=true, it stays false. strange.
Created UnrealStickFigure2D, inserted “newlycreated” crouch/uncrouch - same effect false/false. :frowning:
Looking forward to Devs answer.
Many thanks.

-TiggA

Hey Tigger,

Perfect timing, actually. I was literally just talking about this today with the dev I sent it to a while back. He gave me some suggestions that I’m looking into. Sorry for the delay, but this issue is back on my plate and I’ll try to get you something as quickly as I can.

-.

Any news on this? :slight_smile:

Hey Tigger,

I’m sorry about the sparse responses on this, but we are still working on it. I’m consulting with one of the engine devs who is in charge of character movement functionality and hoping that I’ll hear back before the weekend. I’d also like to know if you’ve had any progress on your end experimenting with it.

-.

referred me to your project today and I took a look. I think there are some engine fixes we can make, but there is also a simple workaround you can use in your project as well.

The issue here is that you have the capsule set up as:
HalfHeight: 150
Radius: 150
CrouchedHalfHeight: 145

The actual capsule can’t actually get a lower half-height than 150 (it must be >= radius to be a valid capsule/sphere).

The default behavior of the engine was to allow this to set the IsCrouching flag to true, but the capsule didn’t actually change size. Then there was some code in the character that says if you are trying to uncrouch and you are already at the target height, don’t uncrouch (this is broken and I’m fixing it). In fact Crouch itself says don’t crouch if already at the crouch height, but you happened to avoid that by having a lower CrouchedHalfHeight. I’m fixing the engine to simply toggle the state no matter the current / target sizes, you should be able to set the crouched state as you wish.

You can work around this easily by setting the standing HalfHeight to 150.1 and CrouchedHalfHeight to 150, for example.

Cool, glad it worked! That change in the number is just a quirk with how floating point numbers work. You can’t represent 0.1 exactly in floats, but it’s close enough for most purposes :slight_smile:

Heya Zak!
That does the trick. 4.7.5 makes a “150.100006” from the Capsule Half Height, but when setting the Crouched Half Height to “150.0” it works!
Many thanks!
Best,
Tigger

Hello! I have a pretty similar issue regarding uncrouch, but changing the capsule half height itself, not using crouch() and uncrouch(). Please take a look, I cant find the solution anywhere: Capsule half height doesnt update physics - Blueprint - Epic Developer Community Forums