I have a flying creature in a game I’ve been working on that’s playable. We also have an aquatic animal the player can control. What we did is have all of our input commands from the player go into the Player Controller blueprint. There, it decides whether it wants to send the control inputs to the flying logic, swimming logic, or terrestrial logic based off what the player is controlling. It works well for us so far.