till213 / SkyDolly

Sky Dolly connects with Flight Simulator 2020 and records the flight path and basic instruments for replay.
MIT License
77 stars 9 forks source link

Drone path #120

Open Ironcock opened 9 months ago

Ironcock commented 9 months ago

Hello Is there a way to make it record a drone path? Default replay tool can record drone path when plane is on pause. Sky dolly seems to be tied to the plane and it dosent record drone path

till213 commented 8 months ago

Hello,

First of all let me apologise for my late reply! And thank you for raising this issue.

Let me tell you an open secret about the name "Sky Dolly": the later part - Dolly - refers to the name of the first cloned sheep of the same name "Dolly". But that is only an afterthought, because the first reference is meant to be "camera dolly".

In movie making a camera dolly is meant to move the camera - and that was exactly my initial idea with Sky Dolly, to (also) be able to control the MSFS camera, move it on predefined paths around the aircraft etc.

Unfortunately I pretty soon realised that the official SimConnect API does not support (yet?) access to the camera, that is it is currently impossible to either read the coordinates (e.g. relative to the aircraft, or absolute world coordinates) of the current (drone) camera, or to control the camera path (one can however switch the camera between the predefined camera positions at least).

In fact, there is a long-standing feature request ("idea") on the official developer support forum, to suggest a "camera API" that would let us developers control the camera (and possibly also get access to the (relative) coordinates of the current camera (drone or cockpit/pilot head view).

I know that the internal MSFS recorder can record the (drone) camera: in fact I once had a look at the recorded file, and indeed, it contains data like "Camera Up/Left" vectors - data that is not (currently) available via the SimConnect API.

Then there seems to be other software that claims to be able to record the camera movement, but to my understanding it does so by simply recording (repeated) keystrokes that control camera movement (and you need to tell the software which keys control the camera). The downside of this: depending on the current location and the camera speed (that may have changed since the actual recording) you may or may not accurately reproduce the camera movement, so I consider this a "hack" at best. Arguably better than nothing, but not optimal, as you can't tell for sure by how many degrees the camera will rotate or by how much it will move with a single (replayed) keystroke.

In short, while taking control of the camera (as in "rotate drone camera around user aircraft" etc.) is certainly something that I'd like to do, and by extension possibly also record the camera movement (just like the current internal MSFS recorder can do), this is currently simply not possible with the current SimConnect API - at least not in a reliable way.

I will keep this issue open as a feature request for now, but please don't hold your breath: we may have to wait until MSFS 2024 until sometime next year, and even this is uncertain, as Asobo has been quiet on the above feature request.

Also note that e.g. Prepar3D (that also implements the SimConnect API, which originally was implemented in the FSX days, or so I understand) actually did extend the API and does provide a "camera API", e.g.

https://www.prepar3d.com/SDKv3/LearningCenter/utilities/simconnect/simconnect.html#SimConnect_CameraSetRelative6DOF

But again, this API is not availble in the current MSFS implementation of the SimConnect API.