Have a copy of the player unit somewhere on the map(same class). Use
getdir to get the current azimuth of the player unit, and
getpos to grab his position. You can use a fade or just simply create the camera and add a new angle to make the switch with
setdir and
setpos of the AI(copy) unit and the player unit, setting the player unit where the AI was and the AI where the player was. Play out your cinema with audio, camera angles and AI manipulation. When you're done, just setpos the AI back to its start position and the player unit back to where he was before the scene.
You may have to grab the current
primary weapon class and/or
backpack class of the player and
add it to the AI before the scene if there is a chance the player could alter his loadout during the mission. You won't need ammo or anything else since it will just be aesthetic.
To detect a players distance from a specific unit(civy) just use distance command in a slow loop script or trigger if you prefer, with a 3 meter condition......player distance civy <=3 : then execute the script or trigger.