Input axis binding cancelled

OK guys, so I bound the input axis MoveForward to &ADHCharacter::MoveForward
which adds input vector (0.5f * forward direction * axis value * ((axis value > 0) ? ForwardSpeedModifier : BackwardSpeedModifier)) to character movement, and sprinting modifies forward speed modifier.
( The reason for scaling 0.5 is add movement input with scale over 1 has same velocity as 1, so I reduce normal movement to 0.5 and apply modifiers )

Anyways, I implemented the sprinting FOV effect in blueprint, but now MoveForward isn’t calling &ADHCharacter::MoveForward, And I have to do this manually:


Why is the input unbinding?

Here’s the full blueprint:

When I experimented with Input bindings in UE 4.8 I noticed that when binding keys both in C++ and the Project Settings, the latter appeared to get ignored. Using key bindings only in C++ or only in the Project Settings worked fine. I might have been doing something wrong, though. Maybe you’re experiencing the same?

Currently (using 4.9.2) we define the key binding in the Project Settings and bind the defined actions to functions in C++.

It’s also possible something is wrong with the binding in C++. Can you show a code snippet?

Here’s the character’s input code

/** Sets up input for this pawn */
void ADHCharacter::SetupPlayerInputComponent(class UInputComponent* InputComponent)

	InputComponent->BindAxis(AXIS_MoveForward,				this,	&ADHCharacter::MoveForward);
	InputComponent->BindAxis(AXIS_MoveRight,				this,	&ADHCharacter::MoveRight);
	InputComponent->BindAxis(AXIS_Turn,						this,	&ADHCharacter::Turn);
	InputComponent->BindAxis(AXIS_LookUp,					this,	&ADHCharacter::LookUp);
	InputComponent->BindAxis(AXIS_TurnAtRate,				this,	&ADHCharacter::TurnAtRate);
	InputComponent->BindAxis(AXIS_LookUpAtRate,				this,	&ADHCharacter::LookUpAtRate);

	InputComponent->BindAction(PRESSED(ACTION_Sprint),		this,	&ADHCharacter::StartSprint);
	InputComponent->BindAction(RELEASED(ACTION_Sprint),		this,	&ADHCharacter::StopSprint);
	InputComponent->BindAction(PRESSED(ACTION_Crouch),		this,	&ADHCharacter::StartCrouch);
	InputComponent->BindAction(RELEASED(ACTION_Crouch),		this,	&ADHCharacter::StopCrouch);
	InputComponent->BindAction(PRESSED(ACTION_Jump),		this,	&ADHCharacter::StartJump);

Macro definitions:

#define AXIS_MoveForward					"MoveForward"
#define AXIS_MoveRight						"MoveRight"

#define AXIS_Turn							"Turn"
#define AXIS_LookUp							"LookUp"
#define AXIS_TurnAtRate						"TurnAtRate"
#define AXIS_LookUpAtRate					"LookUpAtRate"

#define AXIS_EquipItem						"EquipItem"

#define PRESSED(action)						action, IE_Pressed
#define RELEASED(action)					action, IE_Released

#define ACTION_Sprint						"Sprint"
#define ACTION_Crouch						"Crouch"
#define ACTION_Jump							"Jump"