RTC XML PROPERTIES
This page lists the different elements and attributes required to generate properly formed XML for the RTC camera system. More information about RTCs can be found here, and examples of RTC XML can be found here.
It should be noted that you can include these elements within a mission XML file, in which case all the top level elements should be prefaced with SimMission
, for example:
<SimMission.RTCSequencer InstanceId="{344EC464-2B26-4C8B-A6E9-6D89E8BDD609}">
<Descr>RTC_LC_Carrier_Aircraft_Intro</Descr>
<NeedPreload>True</NeedPreload>
<FadeFromBlack>True</FadeFromBlack>
<Immediate>False</Immediate>
<Actions>
<ObjectReference id="RTC_LC_Carrier_Aircraft_1Overview" InstanceId="{CD97AD42-830F-4948-9941-7653CC9128C6}"/>
<ObjectReference id="RTC_LC_Carrier_Aircraft_2Fixed" InstanceId="{9CFDB592-B269-45D5-AE52-0CBB0BB3067F}"/>
<ObjectReference id="RTC_LC_Carrier_Aircraft_3Fixed" InstanceId="{9AF72D0C-6451-4A09-833D-11B9D7FDFAD4}"/>
</Actions>
</SimMission.RTCSequencer>
NOTE: RTC XML files will be compiled into SPB files when the package is built.
Elements that can be used in this way at the top level are as follows:
<RTCSequencer>
The <RTCSequencer>
element is the container element for all RTC events., and requires the following attribute:
Attribute | Description | Type | Required |
---|---|---|---|
InstanceID |
a GUID for referencing the RTCSequencer being defined | String | Yes |
The element can contain the following sub-elements:
<Descr>
(Required)<Skippable>
<Pausable>
<LoopAnimation>
<Shuffle>
<Actions>
<RTCSequence>
<FadeFromBlack>
<FadeToBlack>
<ReuseSameCycle>
<NeedPreload>
<ShotCount>
<LoopAnimation>
This element has no attributes and is used to set whether the parent <RTCSequencer>
animation can loop or not. The element can be either TRUE (will loop) or FALSE (will not loop), and is not a required element. If not defined, then looping will default to FALSE.
<Actions>
This element has no attributes and is used to provide one or more "actions" to the parent <RTCSequencer>
element. Actions are give as either an <ObjectReference />
or a <SimMission.ObjectReference />
, and you can supply one or more of these elements.
<ReuseSameCycle>
This element has no attributes and is used to set whether the parent <RTCSequencer>
element will use the same order cycle of defined cameras or not. The element can be either TRUE (a new order will be created each cycle after the first) or FALSE (the first cycle order will be maintained for each cycle), and is not a required element. If not included then the camera order will be shuffled at the end of each cycle. Note that this element is independent of the <Shuffle>
element, which will shuffle the order on the first cycle only.
<NeedPreload>
This element has no attributes and is used to set whether the parent <RTCSequencer>
element requires specific streaming. The element can be either TRUE (the sequencer does need streaming) or FALSE (no streaming required), and is not a required element. If not included then it defaults to no streaming required.
<RTCSequence>
The <RTCSequence>
element is used to setup one or more animations to be included as part of a <RTCSequencer>
. The element has no attributes and should be a unique child of the <RTCSequencer>
element. It can contain the following elements:
<ShotType>
(Required)<ShotCount>
<RootPosition>
<FileToInclude>
<FileToExclude>
<AnimationToInclude>
<AnimationToExclude>
<PathToInclude>
<PathToExclude>
<DepthOfField>
<FadeFromBlack>
<FadeToBlack>
<Fov>
<Shuffle>
<CameraLinkedToPlayer>
<TargetLinkedToPlayer>
<ShotType>
This sub-element of <RTCSequence>
is used to define the type of RTC shot that is to be played to the user, and must be included as part of the Sequence definition. The element has no attributes, and can only be one of the following:
- Aircraft - For aircraft only
- Airport - For airports only
- POI - For POI only
<FileToInclude>
This sub-element of <RTCSequence>
is used to tell the simulation that any animations need to come from a glTF file matching the filename given. The element is optional and has no attributes.
<FileToExclude>
This sub-element of <RTCSequence>
is used to tell the simulation that no animations should come from the glTF file matching the filename given. The element is optional and has no attributes.
<AnimationToInclude>
This sub-element of <RTCSequence>
is used to tell the sequence that any detected animations need to contain one of the names listed in this element. The element is optional and has no attributes.
<AnimationToExclude>
This sub-element of <RTCSequence>
is used to tell the sequence that any detected animations should not contain any of the names listed in this element. The element is optional and has no attributes.
<PathToInclude>
This sub-element of <RTCSequence>
is used to define a path for files that should be included with the RTC. This allows you to include subfolders that are not included by default. The element is optional and has no attributes.
<PathToExclude>
This sub-element of <RTCSequence>
is used to define a path for files that should not be included with the RTC. This allows you to exclude subfolders that are note required by the sequence being defined. The element is optional and has no attributes.
<RTCShot>
The RTC shot element can be used to define a single camera shot as part of an RTC XML file. This is a top-level element, and you can have multiple of these definitions within a single file, and they can be called by using the InstanceID
and <Descr>
in the <ObjectReference />
element as part of a <RTCSequencer>
. This element has the following attribute:
Attribute | Description | Type | Required |
---|---|---|---|
InstanceId |
GUID referencing the Object to execute | String | Yes |
Within this element you can use the following XML sub-elements:
<Descr>
<LinkedToPlayer>
<AttachedWorldObject>
<WorldPosition>
<RootPosition>
<Orientation>
<FileGUID>
<AnimationName>
<CameraNodeName>
<TargetNodeName>
<Skippable>
<Pausable>
<DepthOfField>
<FadeFromBlack>
<FadeToBlack>
<CameraBehaviors>
<Fov>
<CameraLinkedToPlayer>
<TargetLinkedToPlayer>
<LinkedToPlayer>
This sub-element of <RTCShot>
is used to set whether the animation should be linked to the player (TRUE) or not (FALSE). The element has no attributes and is optional, defaulting to FALSE if not included.
<AttachedWorldObject>
This sub-element of <RTCShot>
is used to set whether the animation should be linked to a world object. If this element is included, then you need to supply the following sub-elements to define the world object to target as well as the orientation and position of the camera:
<Orientation>
<OffsetXYZ>
<WorldPosition>
<FileGUID>
<AnimationName>
<CameraNodeName>
<TargetNodeName>
<ObjectReference />
<OffsetXYZ>
This sub-element of <AttachedWorldObject>
is used to define the position offset from the x/y/z position of the world object that the camera shot is being attached to. The element has no attributes and requires 3 float values, separated by a comma, to define the X, Y and Z offsets.
<WorldPosition>
This sub-element of <AttachedWorldObject>
is used to define the position within the world for the camera shot animation. The element has no attributes and requires 3 float values, separated by a comma, to define the X, Y and Z position.
<FileGUID>
This sub-element of <AttachedWorldObject>
is used to specify the GUID of the glTF file where the shot animation is contained. The element has no attributes.
<AnimationName>
This sub-element of <AttachedWorldObject>
is used to specify the name of the shot animation as defined within the glTF file. The element has no attributes.
<CameraNodeName>
This sub-element of <AttachedWorldObject>
is used to specify camera node of the shot animation within the glTF file. The element has no attributes, and is optional, defaulting to [AnimationName]_CAMERA
(where the animation name is the name given in the <Descr>
element).
<TargetNodeName>
This sub-element of <AttachedWorldObject>
is used to specify target node of the shot animation within the glTF file. The element has no attributes, and is optional, defaulting to [AnimationName]_TARGET
(where the animation name is the name given in the <Descr>
element).
<RTCCameraShot>
This element describes an animation that is able to go through various points called "ShotPoints", which are themselves defined by the cameras.cfg
file as different camera definitions. This permits you to create RTCs without using any 3D software or create any glTF files. The <RTCCameraShot>
element has the following attribute:
Attribute | Description | Type | Required |
---|---|---|---|
InstanceId |
GUID reference that will be used to reference the camera shot (must be unique). | String | Yes |
The XML sub-elements for <RTCCameraShot>
are as follows:
<RTCShotPoints>
The <RTCShotPoints>
element is a container element for one or more <RTCShotPoint>
elements, depending on how many cameras you want to use. It has no attributes.
<RTCShotPoint>
This element is a child of the element, and you can have multiple of these within that container. It is used to define an RTC camera animation using a predefined camera from the cameras.cfg
file. This element has no attributes and has the following sub-elements:
<CameraName>
<CameraGUID>
<CameraLinkedToPlayer>
<TargetLinkedToPlayer>
<RootPosition>
<ShotDuration>
<Interpolation>
<DepthOfField>
<CameraName>
This is a sub-element of <RTCShotPoint>
and it has no attributes. It sets the name of the camera being targeted as defined in the cameras.cfg
file.
<CameraGUID>
This is a sub-element of <RTCShotPoint>
and it has no attributes. It sets the GUID of the camera being targeted as defined in the cameras.cfg
file.
<ShotDuration>
This is a sub-element of <RTCShotPoint>
and it has no attributes. It sets the duration between the previous <RTCShotPoint>
and the current one in seconds. If this element is not defined then the duration will default to 1 second.
<Interpolation>
This is a sub-element of <RTCShotPoint>
and it has no attributes. This element sets the type of interpolation to use, whioch will affect how quickly the camera will move depending on the time. Available values are as follows:
- Linear: Camera is moving in a Linear way all the time
- Exponential: Begin slowly, then end quickly
- Logarithmic: Begin quickly, end slowly
- PushEdge: Begin and end is slow, the middle is quick
- PushMid: Begin and end is quick, the middle is slow
If this element is not included, then the interpolation will default to Linear.
<DepthOfField>
This element has no attributes and is a sub-element of <RTCSequence>
, <RTCShot>
, and <RTCShotPoint>
. This element is used to set different depth of field effects using the following sub-elements:
<Blur>
This is a sub-element of <DepthOfField>
that has no attributes and is used to set the amount of blur being used by the camera shot. The element has no attributes and requires a value between 0 and 2 where:
- 0.1 = small amount of blur
- 2.0 = a lot of blur
If this element is not included, then the default blur value will be 0.25.
<FocalDist>
This is a sub-element of <DepthOfField>
that has no attributes and is used to set the focal distance of the camera shot. A value of 0 means that the focal distance will be set automatically, whiel any value greater than 0 will be used to set the focal distance. If the element is not used, then the default value will be 0 (automatic).
<Activate>
This is a sub-element of <DepthOfField>
that has no attributes and can be used to activate (TRUE) or deactivate (FALSE) the depth of field effect. Deactivating the effect will mean that no blur is applied to the camera. If this element is not included then it will default to TRUE (active).
<AutoFocusSpeed>
This is a sub-element of <DepthOfField>
and is used to set the coefficient for the autofocus speed. The element has no attributes and the value given here should be between 0 and 1 where:
- 0 = No auto-focus will be applied
- 1 = Auto-focus will be instant
If this element is not included then the default focus speed coefficient will be set to 0.05.
<ApplyFrontFocus>
This is a sub-element of <DepthOfField>
that has no attributes and is used to set whether the depth of field blur should be applied to the foreground (TRUE) or not (FALSE). Note that - depending on the focus distance - blur may not be applied to the foreground even if set to TRUE. If this element is not included then it will default to FALSE (no foreground focus).
<Fov>
The <RTCSequence>
element and the <RTCShot>
element can contain the <Fov>
element to set different field of view (FOV) parameters for the animations. This element has no attributes and serves as a container for the following elements that are used to define the look of the FOV:
<FovLength>
This is a sub element of <Fov>
and has no attributes. It is used to set the aperture angle of the zoom in radians where:
- a minimum of 0.1 = zoomed in really close (approx. 5º)
- a maximum of 2.75 = looking from very far away (approx. 160º)
If this element is not used then the FOV length will default to 0.8 (which is approximately 45º).
<SmoothTimeFov>
This is a sub element of <Fov>
and has no attributes. It is used to set the timing of the change from the old FOV value to the new FOV value in seconds. If this element is not used then the time is 0 (instant change).
<UseGltfFov>
This is a sub element of <Fov>
and has no attributes. It tells the camera to use the FOV that is defined as part of the glTF animation being used. If this element is not used then the FOV from the camera glTF will not be used.
<CameraBehaviors>
This element is a container element for one or more <CameraBehavior>
elements, and it has no attributes. The element is used to define the way that the different cameras behave when an RTC is active.
<CameraBehavior>
This element is used to define how the camera should behave during the RTC event. The element uses the <CameraBehaviorAttributes>
sub-element, and has the following attribute:
<CameraBehaviorAttributes>
This is a sub-element of <CameraBehavior>
and acts as both a container element and an element for assigning behaviours via an attribute. In general you would have one of these elements with no attributes as the container, and then within that you would have one or more versions of the element using the following attribute:
Attribute | Description | Type | Required |
---|---|---|---|
CameraBehaviorStrAttribute |
The behaviour description. |
String |
No |
You can find an example of this element in use from the following link:
<Descr>
This element has no attributes and is used to define the name (a string) of the parent <RTCSequencer>
or <RTCShot>
element. Note that this is a required element and must be included as part of the parent element definition.
<Skippable>
This element has no attributes and is used to set whether the parent <RTCSequencer>
or <RTCShot>
element can be skipped by the user. The element can be either TRUE (can be skipped) or FALSE (can't be skipped), and is not a required element. If not included then skipping will default to TRUE.
<Pausable>
This element has no attributes and is used to set whether the parent <RTCSequencer>
or <RTCShot>
element can be paused by the user. The element can be either TRUE (can be paused) or FALSE (can't be paused), and is not a required element. If not included then pausing will default to TRUE.
<Shuffle>
This element has no attributes and is used to set whether the initial order of Actions/Shots/Sequences should be shuffled (randomised) or not. It can be included as a child element of the <RTCSequencer>
or <RTCShot>
elements, and will be either TRUE (elements will be shuffled) or FALSE (elements will be played in the order defined). This is not a required element, and if not included then shuffling will default to FALSE.
<FadeFromBlack>
This element has no attributes and is used to set whether the parent <RTCSequencer>
or <RTCSequence>
element will be gradually faded in from black at the beginning. The element can be either TRUE (will fade in) or FALSE (will not fade in), and is not a required element. If not included then the fade in from black will default to FALSE.
<FadeToBlack>
This element has no attributes and is used to set whether the parent <RTCSequencer>
or <RTCSequence>
element will gradually fade out to black at the end. The element can be either TRUE (will fade out) or FALSE (will not fade out), and is not a required element. If not included then the fade out to black will default to FALSE.
<ObjectReference />
This is a reference to another RTC "object", either an <RTCShot>
or a <RTCSequencer>
, or some object within the simulation world. It is a self-closing sub-element of <Actions>
and <AttachedWorldObject>
, and requires the following attributes:
Atributes | Description | Type | Required |
---|---|---|---|
id |
The unique name of the RTCShot or RTCSequencer , as defined by the <Descr> element. Or the ID of the world object if used in the <AttachedWorldObject> element. |
String | Yes |
InstanceId |
The unique GUID associated with the RTCShot or RTCSequencer as defined by the InstanceID attribute of the element, or the GUID of the associated world object. |
String | Yes |
<ShotCount>
This element has no attributes and is used to set the number of shots that are to be played by the <RTCSequencer>
or <RTCSequence>
element. The value should be between 1 and the maximum number of defined shots, or -1 to play all shots. If this element is not supplied it default to playing all shots.
<Orientation>
This element is used both by <RTCShot>
and <AttachedWorldObject>
to set the orientation of the target animation. It has no attributes, and requires 3 float values, separated by a comma for pitch, bank and heading (in degrees).
<RootPosition>
This is sub-element of <RTCSequence>
, <RTCShot>
, <RTCShotPoints>
and <RTCShotPoint>
. It has no attributes and is used to define the general position where to place the animation, which can be one of the following:
- None: No specific position, will be on the plane
- DefaultRunway: Will be placed on the default runway
- PlayerAtSequenceStart: Will be at the place the plane starts
- NoSpecification: If it's an airport type it will be the same as for "DefaultRunway", if its aircraft type, it will be the samne as for "None"
- RunwayStart: Start of the default runway
- RunwayEnd: End of the default runway
- RunwayCenter: Center of the default runway
- Tower: First tower of the airportParking: First parking of the airport
- ActivePOI: Will be on the active Point Of Interest
<CameraLinkedToPlayer>
This is a sub-element of <RTCSequence>
, <RTCShot>
, <RTCShotPoints>
and <RTCShotPoint>
, and defines whether the camera animation is linked to the player (TRUE) or not (FALSE). This element has no attributes and is optional. If it is not included then the following defaults will be used:
- Aircraft: True
- Airport: False
- POI: False
<TargetLinkedToPlayer>
This is a sub-element of <RTCSequence>
, <RTCShot>
, <RTCShotPoints>
and <RTCShotPoint>
, and defines whether the camera animation should always point towards the player (TRUE) or not (FALSE). This element has no attributes and is optional. If it is not included then the following defaults will be used:
- Aircraft: True
- Airport: False
- POI: False