Help with obtaining images from multiple cameras within a single world

I am working on an open source robot simulation in Unreal Engine that involves multiple vehicles, each of which has its own FPV camera. The original software was written for a single robot/camera ((ref: GitHub - microsoft/AirSim: Open source simulator for autonomous vehicles built on Unreal Engine / Unity, from Microsoft AI & Research)), so I am trying to extend it for multiple vehicles, each vehicle considered as an Actor. I am trying to record images from each camera’s perspective as the vehicles move in the world. I am a beginner when it comes to Unreal Engine, so I’ve been having some trouble with this part.

Naturally, I only have one of the vehicles that’s considered as the primary target for the Camera director, and the vehicles themselves are different instances of the same class in the code. I am able to control the vehicles individually etc., but when I try to record images from these different instances, I always get the same image from the ‘main’ vehicle (which is the primary target for the camera director), so it looks like the scene is not being individually rendered from each of these multiple views. The capture is being done through a “GetActorComponent” method. The code is along the lines of:

capture = GetActorComponent<USceneCaptureComponent2D>('camera_description');  
FTextureRenderTargetResource* resource = capture->TextureTarget->GameThread_GetRenderTargetResource();    
resource->ReadPixels(final_image);  

As mentioned above, this works fine if there’s only one camera; but it doesn’t seem to recognize the difference between multiple cameras. How do I replicate this process for multiple cameras? I’ll be happy to provide any additional information required.

Could you create a CaptureComponent class, with myRenderTarget as a private member of that class, and work from there? With multiple instances of the class you should be able to place each camera manually (or via code) then see separate outputs?