I am prototyping with a tank vehicle (see pic below) that will have a gunner and a driver. Each will have their own view, or camera, relative to the tank. When they mount the vehicle, they will blend from first person character to third person vehicle.
I have currently two Seat Actors (PilotSeat & Gunner Seat). When the player gets near a Seat Actor, he can interact with it, which leads to sitting in the Seat. The Seat would then receive inputs when the IMC for the Seat is pushed on the stack and the Seat would then process and then forward the appropriate event to their parent Pawn, without having to know anything about the parent other than it should support the event the Seat Actor is firing.
I found this approach very useful from a scripting perspective, but it requires me to Attach the Seat Actors to the Vehicle Pawn when the Vehicle spawns.
Next, if I have two Camera Components on the tank, then only one would be accessible using the blend node.
So I tried to give each Seat their own Camera, and that worked. But from a designers’ perspective, it was difficult to determine where the origin of the SpringArm should position relative to the Seat. Sitting up the Seat BP was a hit and miss sort of experience - not good!
So I now have two Seat Actors and two Seat Cam Actors. I can Attach each Actor to the tank simply to their respective Sockets. When someone sits in a Seat, the Seat then assigns and blends to its respective Camera. And this makes the process trivial for designers.
(Also, in case anyone asks, I could not use Actor Components, because the Set View Target with Blend node would then only consider the vehicle as the Actor to consider.)
But it seems like I am over engineering this by having to attach Actors to the Pawn at run time. Is there a simpler way to achieve all of these goals with just the vehicle Pawn? If so, can someone point me to a sample/video/tutorial?