Beginner question: changing input bindings dynamically

I would like to change the input bindings on my game characters on a level-by-level basis. On some levels I want a 3rd person controller, on others, it’s a more GUI-driven thing where actions are controlled via the HUD. How might I set this architecture up? The SetPlayerInputComponent(UInputComponent *) API seems to be a good starting point, but it depends when and where this is called from the engine as to whether it’s usable or not?