Add Controller Yaw/Pitch ignored when managing input from Player Controller

I initially posted this on the forums about 4 days ago I believe. In hindsight I realize it might have been a question better suited for the AnswerHub, and seeing as I haven’t gotten any response on the forums I’m giving it a go here. Hope it’s ok that it is essentially a copy & paste of the forum post.


So the long story short, I wanted to move input management from the pawn (ThirdPersonCharacter) to the player controller (ThirdPersonController). The main reason is that I intend to allow for two movement modes; direct control of the pawn, or clicking an area on the screen to have the character auto-navigate to the location.

As you’ve probably understood I used the Third Person template, and as such the same control principles apply: WASD movement, jump on spacebar and mouse controls camera. However, after trying to get the input management on the controller, for some reason it seems to ignore the camera controls.

First of all, screenshots of the two relevant blueprints.

ThirdPersonController

  • Note: I haven’t actually implemented the auto-navigation, so the branch has both options pointing to direct movement.

ThirdPersonCharacter

Now, the jumping works fine. So does movement. However, the camera controls, implemented via Turn Axis->Add Controller Yaw and LookUp Axis->Add Controller Pitch are ignored. To be certain that it actually registers values on the axes, I also print the values to the screen. It certainly receives values, as whenever I move the mouse the numbers for Turn and LookUp change… it just seems like the Add Controller Yaw/Pitch functions simply ignore it.

I have also tried unhooking the Val inputs on the Add Controller Pitch/Yaw nodes and manually inserted a number. Still, no dice.

Any suggestions? Am I doing something wrong? Is this by design, and there is some concept I have failed to grasp? Or is this a bug in the engine?

For the record, I’m using Unreal Engine version 4.18.3 on a Windows 10 system.

I’ve also added a video to show how this works (or rather, how it doesn’t work) in the game. As you can see in the video around the 7 seconds in, I am moving my mouse and it is registering axis input (as indicated by the debug messages), but nothing happens.

YouTube Video Link: UE4 4.18.3 - Controller vs pawn input issue

Make sure your Input Scale options are >0 in the controller default settings

This remains unresolved, and I’ve yet to find a reliable workaround. If anyone knows how to fix this, please help!

Is the pawn set to use control rotation yaw/pitch values?

1 Like

Do you have screen shots of your setup? I can barely see the OP’s nodes so if you are doing something similar post some new and improved screen shots.

In my setup, where I’ve simply replicated the built-in FPC blueprint:
“Controller rotation pitch” is checked off, “controller rotation yaw” is checked on, “controller rotation roll” is checked off. This seems to work fine for a standard FPC blueprint.

All of these settings are found under “Pawn” in the details panel under self. I’ve fiddled with them and they don’t seem to change anything.

Also: I’m using Unreal 4.20.3

Sure. I’m using a standard FPC blueprint and sending the player’s input data both to the player controller and to a remote pawn controller that possesses another pawn. This setup allows me to synchronize the movements of the FPC and the pawn. However, like Kresjah’s situation, the pawn controller doesn’t recognize my pitch and yaw input:

Elsewhere in the Blueprint I properly set and possess Pawn 1 .

When I hover over one of the input functions, it says that the function “adds input to the Controller’s rotation, if it is a local PlayerController.” Perhaps the problem is that Pawn1 is not a local player controller. Could this be it? And if so, how do I work around this?

Any ideas? Still haven’t figured this out.

I was having a similar issue with the spectator pawn. When I had input bindings in the player controller, any yaw control from the spectator pawn would be ignored. I had to call DisableInput from the player controller to relinquish control and let the pawn take over. It seems that the player controller consumes any inputs if there are bindings and does not allow any controlled pawns to handle.