I posted a tutorial with various local multiplayer tips, and one of them is how to allow the keyboard for the 1st player and the controller for the 2nd player: https://wiki.unrealengine.com/Local_Multiplayer_Tips
Unfortunately, the only way to do the keyboard/controller split right now is via C++ code. It’s a bit hacky, but it works for now. I think my instructions are possible to follow with even just minimal C++ coding experience.
I do agree that it should be a default feature. The way I could see a “proper” implementation is:
- If the game detects more players than gamepads, the keyboard/mouse is mapped to player 0, and the first controller is mapped to player 1, the second to player two, etc. This behavior could potentially be enabled or disabled by a checkbox, if someone really likes it the current way
- If the game detects gamepads >= num players, then it’s the current behavior where the keyboard/mouse and the first controller is player 0, the second controller is player 1, etc.
Unfortunately, as far as I can tell the engine currently does not have a way of querying the number of gamepads connected, and each platform handles gamepad detection separately. So it would take a bit of work to get it working, though I don’t think it would be that hard. If I have time, I’ll take a shot at making this change and putting a pull request to get the feature added to the engine, but it’s going to be a little while before I can get to it.