/* create render surface */
// создание объекта в текстуру которого будет рендерится изображение с камеры
_bb = "Land_Billboard_F" createVehicle position player;
// создание поцедурной текстуры в которую будет идти рендер изображения с камеры
_bb setObjectTexture [0, "#(argb,512,512,1)r2t(uavrtt,1)"];
/* create uav and make it fly */
// создание беспилотника
uav = createVehicle ["B_UAV_01_F", _bb modelToWorld [0,100,100], [], 0, "FLY"];
createVehicleCrew uav;
uav lockCameraTo [_bb, [0]];
uav flyInHeight 100;
/* add loiter waypoint */
// создание точки вокруг которой будет кружиться беспилотник
_wp = group uav addWaypoint [position _bb, 0];
_wp setWaypointType "LOITER";
_wp setWaypointLoiterType "CIRCLE_L";
_wp setWaypointLoiterRadius 100;
/* create camera and stream to render surface */
// создание камеры изображение с которой будет рендерится в текстуру созданного выше билборда
cam = "camera" camCreate [0,0,0];
cam cameraEffect ["Internal", "Back", "uavrtt"];
/* attach cam to gunner cam position */
// аттачим созданную камеру к беспилотнику
cam attachTo [uav, [0,0,0], "PiP0_pos"];
/* make it zoom in a little */
// настраиваем зум камеры
cam camSetFov 0.1;
/* switch cam to thermal */
// настраиваем эффект отрисовки полученной с камеры картинки
"uavrtt" setPiPEffect [2];
/* adjust cam orientation */
addMissionEventHandler ["Draw3D", {
// этот код вызывается каждый фрейм, с целью коррекции направления камеры
_dir =
(uav selectionPosition "PiP0_pos")
vectorFromTo
(uav selectionPosition "PiP0_dir");
cam setVectorDirAndUp [
_dir,
_dir vectorCrossProduct [-(_dir select 1), _dir select 0, 0]
];
}];