# Using RTCs {{< callout context="note" title="NOTE" icon="outline/bulb" >}} Unfortunately the edition of RTCs is not entirely available for external use, and is a work-in-progress. For the moment, only RTCs defined in mission files are available to you for creating and editing. {{< /callout >}} RTC's (Real Time Cinematics) take animation information from a {{< glossterm >}}gltf{{< /glossterm >}} file and convert it into a cinematic camera event based on triggers. To use them involves the setup of the camera data (using an external tool like 3DS Max), and then the edition of various XML files in an add-on project to generate the events that call the animation. On this page you will find an overview of how the RTC system works, and you can find a sample project with a single Hangar RTC which you can examine from the following link: - RTC Aircraft     ### RTC Structure RTC's are comprised of three building blocks that together form a chain of *actions*. The building blocks are: - ``: this is base container for RTCs and will contain actions to execute. It can contain one or more `RTCSequence` and/or other `RTCSequencers`. Essentially, the `RTCSequencer` is the one managing all the different animations if an RTC contains more than one animation. - ``: this is an object able to create a list of `RTCShots` with some specifications (animation names, path to include, shot count and more). - ``: this is an object able to play one animation with one target and one camera from a {{< glossterm >}}gltf{{< /glossterm >}} file. Each shot is considered a single *action*.   Some things to note about the structure of an `RTCSequencer`: - an `RTCSequencer` can contain another `RTCSequencer` and each `RTCSequencer` will be counted as 1 action - an `RTCSequencer` can contain an `RTCshot`: each `RTCshot` will be counted as 1 action - an `RTCSequencer` can contain multiple `RTCSequence` and each `RTCSequence` can generate multiple actions It is important to understand that an `RTCSequence` is *not* an action and it can be considered as more of an action *generator*. An `RTCSequencer` with only one `RTCSequence` that does not generate any actions (ie: the sequence has no `RTCShot`s) will have 0 actions. Conversely, an `RTCSequencer` containing two `RTCSequencer` will have 2 actions, no matter how many actions both sub-`RTCSequencer` contain. {{< callout context="caution" title="IMPORTANT!" icon="outline/alert-triangle" >}} An Action is defined by its {{< glossterm >}}guid{{< /glossterm >}}. and as such it is imperative that you know this value for the items you want to use RTC's on. {{< /callout >}}   Now that you have a better understanding of the different elements that go into making an RTC sequence, you may want to create your first `RTCSequencer`. In general, it is a relatively simple task with only a few steps to follow, but you *must* do everything outlined below in the given order if you want your `RTCSequencer` to work properly.     ### The RTCSequencer To start with, you need to decide where you want to play the `` element. You have three possible choices: - Player Aircraft - Airport - {{< glossterm >}}poi{{< /glossterm >}} There may also be different specific case *types* for each of them - for example, do you want the RTC to be triggered only by a specific airport or any (generic) airport? The table below outlines the priorities for each type and case:   PRIORITY TYPE Aircraft Airport POI 1 Mission file Mission file Mission file 2 `RTC_.xmlRTC_ICAO.xmlRTC_POIGeneric.xml` 3 `RTC_.xmlRTC_AirportGeneric.xml`   4 `RTC_AircraftGeneric.xml`       We can now write the XML for the `RTCSequencer` in the appropriate file, in this case the `RTC_AirportGeneric.xml`. In the following example, we're setting up an RTCSequencer to play on generic airports: ``` xml RTC_Airport_Intro ```   You'll notice that the `InstanceId` field above is empty. That's because it requires a {{< glossterm >}}guid{{< /glossterm >}}, and you have decide what GUID to use there. If the `RTCSequencer` is a new one you're creating then you can generate a new and unique GUID for it ([see here](../../../introduction/using-the-sdk/#GUIDs) for information on how to do this), but if the `RTCSequencer` is replacing an existing one, then the `InstanceId` field should be set to use the existing `RTCSequencer` GUID so that the RTC you're creating overrides the existing one. GUID's should be enclosed in `{}` and **must be all uppercase**. The XML should look something like this now: ``` xml RTC_Airport_Intro ```   At this point you have an empty, basic `RTCSequencer`, and now you'd normally also add in a few other options to tell Microsoft Flight Simulator 2024 how it should be displayed, with the final XML looking a bit like this: ``` xml RTC_Airport_Intro True True False False ```   You can find a complete description of the different XML elements available from the [RTC Definition Properties](rtc-xml-properties/) page.     ### Adding Actions To The RTC Now you have the sequencer set up you can add *actions* to it. An action can be a single `` or you can add an `` with with multiple `RTCShot`s, or you can even add another `RTCSequencer`. In this case we'll add some single RTCShot actions: ``` xml RTC_Airport_Intro True True False False ```   As you can see, here we're playing two different `RTCSshot` actions for the generic flight intro, and by reading the IDs, we understand that the first action object "RTC\_Airport\_Intro" is for an airport and the second action object is for an aircraft, "RTC\_Overview\_Aircraft\_Intro".     ### Tutorials On the following pages you can find tutorials to help you with the creation of your own RTC's. One follows how to make simple RTCs using the built in camera properties, and the other is a slightly more comprehensive look at creating an RTC that focuses on the Aircraft Hangar: - [Creating A Simple RTC](creating-a-simple-rtc/) - [Creating Hangar / Showcase RTC's](creating-hangar-showcase-rtcs/)