Understanding Cameras in FSX

understanding fsx cameras featured

This tutorial will help you understand how the system of cameras works in Flight Simulator X, and how to edit or add your own. The terms camera and view can be used interchangeable on this page. When editing .cfg files, use notepad, or a similar text editor to to edit them. Always backup files before you edit them if you are unsure of what you are doing. It is helpful to have hidden files and folders, along with file extensions shown.


Type of Cameras

Cameras in FSX define how you view your aircraft, and also the surroundings. The 7 main types of cameras and there typical sub categories are as follows.

  • Cockpit
    • Cockpit
    • Virtual Cockpit
    • Other cameras unique to aircraft
  • Outside
    • Spot
    • Locked Spot
    • FlyBy
    • Top-Down
  • Tower
    • Nearest Tower
    • Next Closest Towers
  • Aircraft
    • Cameras unique to an aircraft
  • Runway
    • Runways in proximity to aircraft
  • Air Traffic
    • Air traffic in proximity to aircraft
  • Fixed
    • Custom made cameras

Some of these cameras apply to all aircraft, while some are unique to a certain aircraft.

Camera Configuration Locations

The cameras that apply to all aircraft include cockpit, outside, tower, runway, air traffic, and fixed. These cameras are located in the Cameras.cfg file, located in the following directories:

Windows XP: C:\Documents and Settings\”User”\Application Data\Microsoft\FSX
Windows Vista/7/8/10: C:\Users\”User”\AppData\Roaming\Microsoft\FSX

There are also cameras that apply to a specific aircraft, which include aircraft and cockpit cameras. These cameras are located in the aircraft.cfg file for an aircraft, which can be found in the following directories.

DVD Version: C:\Program Files (x86)\Microsoft Games\Microsoft Flight Simulator X\SimObjects\”Airplanes” or “Rotorcraft”\
Steam Version: C:\Program Files (x86)\Steam\steamapps\common\FSX\SimObjects\”Airplanes” or “Rotorcraft”\ 

Camera Definition Properties

The following is taken from the FSX SDK Camera Configuration, showing each camera property, and what it does. Yes and No are interchangeable with True and False.

Camera PropertyRangeDescriptionExamples
TitleCamera title; appears in the upper-right corner of the view window when changing cameras.Title = “Tail”
GuidA guid, or globally unique identifier is a unique reference number used for identification. They are made up of letters and numbers forming a 32 character long string. The guid number for a camera definition must be different from any other guid numbers in the file. Guidgen is a good site for generating a guid number to use.Guid = {18EF1F08-7138-
4530-948C-07698E51940D}
DescriptionCamera description. This is not used by the system, but can be used to provide a descriptive string in the configuration file.Description = View from the right wing tip looking at the cockpit
OriginCockpit
Virtual Cockpit
Center
Pilot
Tower
Fixed
WorldObject
Every camera definition must have an origin that defines the object or point on which the camera is oriented:
“Cockpit” Camera is locked at fixed position in the 2D cockpit. Forward views include 2D instrument panel. Oblique view angle show virtual cockpit interior.
“Virtual Cockpit” Camera is mounted at the eye point defined in the aircraft’s CFG file.
“Center” External (spot plane) camera that points at the center of the aircraft’s visual model.
“Pilot” External (spot plane) camera that points at the pilot position inside the aircraft’s visual model.
“Tower” External camera mounted at a control tower defined via the facilities (BGLCOMP) database.
“Fixed” External camera at a fixed position. Fixed camera definitions must include FixedLatitude, FixedLongitude and FixedAltitude values.
“WorldObject” Used by SimConnect clients. Not available through CFG settings.Note that this does not affect the View menu that the camera title appears in, the menu is set by the category parameter.
Origin = Tower
ShowPanelYes/NoDetermines whether the 2D instrument panel is shown. This property seems to not work after testing in various cameras.ShowPanel = Yes
SnapPbhAdjustNone
Ordinal
Swivel
Orthogonal
These settings control how camera movement is handled when the camera system receives a view pan or “snap to” command.

“None” Commands are ignored (position remains fixed).
“Ordinal” Camera moves to the next ordinal compass position in the direction of the command (similar to the standard “snap” 2D cockpit view in Flight Simulator 2004).
“Swivel” Camera moves incrementally in the direction of the command (similar to panning virtual cockpit and spot plane views in Flight Simulator 2004).
“Orthogonal” Camera rotates in the direction of the command (used in top-down view).

SnapPbhAdjust = Ordinal
SnapPbhReturnTrue/FalseIf true, camera position returns to its initial position when the snap movement command key is released.SnapPbhReturn = True
PanPbhAdjustNone
Ordinal
Swivel
Orthogonal
Same range of options as snappbhadjust.PanPbhAdjust = Swivel
PanPbhReturnTrue/FalseIf true, camera position returns to its initial position when the pan movement command key is released.PanPbhReturn = False
TrackNone
FlyBy
Track
TrackBank
FlatChase
FlatChaseLocked
External cameras have the ability to track a user or AI object. The Track parameter controls this behavior:

“None” No tracking behavior. User has manual control over the camera.
“FlyBy” Fly-by mode; the camera is positioned away from the user aircraft (at a location given by ChaseDistance, ChaseAltitude and ChaseHeading values) and tracks the aircraft for ChaseTime seconds before computing a new position.
“Track” Camera tracks the object while maintaining its position (similar to Tower view in prior versions of Flight Simulator).
“TrackBank” Camera tracks the object while maintaining its position (similar to Tower view in prior versions of Flight Simulator).
“FlatChase” Camera moves with the object, maintaining a fixed distance from it (similar to Spot view in prior versions of Flight Simulator). Camera movements are dampened.
“FlatChaseLocked” Camera moves with the object, maintaining a fixed distance from it (similar to Spot view in prior versions of Flight Simulator). Camera movements are rigid.

Track = FlatChase
ShowAxisYes
No
FrontOnly
Determines whether the axis indicator is shown.ShowAxis = FrontOnly
AllowZoomYes/No True/FalseControls whether the camera responds to zoom commands.AllowZoom = TRUE
InitialZoom0.0 to 512.0Sets the initial zoom.InitialZoom = .3
SmoothZoomTime0.0 to 30.0
Default: 5.0
The zoom time in seconds. By default, zooming in and out is “smoothed” by changing between old and new zoom levels over a small time period (5 seconds). This setting enables you to control this effect on a per-camera basis.SmoothZoomTime = 2.0
ShowWeatherYes/NoDetermines whether weather visuals are shown.ShowWeather = Yes
InitialXyzXYZDetermines the camera’s location in relation to the origin, in meters.
x= distance left or right. + is right and – is left.
y= distamce up and down. + is up and _ is down.
z= distance forward and back. + is forward and – is backwards
InitialXyz = 20.0, 0.0, -2.0
InitialPbhXYZCamera pitch, bank and heading orientation offset from the default in degrees.
p= pitch. + is down and – is up.
b= bank. + banks it to the left and – banks it to the right.
h= heading. + is right and – is left. Note: 180=-180, 90=-270.
InitialPbh = 0, 0, 180
XyzAdjustTrue/FalseControls whether the camera responds to position change commands.XyzAdjust = True
XyzRateDefault: 0.25The desired speed of the camera in meters per second. The direction of movement is determined by the camera control keys that are pressed.
xyzAccellerator
Time
Default: 5.0The time in seconds it will take for the camera to reach the speed set by xyzRate. A value of 0 will disable acceleration. Note that xyzAdjust must be set to True for this feature to be enabled.
AllowPbhAdjustYes/NoControls whether the camera responds to pitch, bank and heading change commands.
ShowLensFlareTrue/FalseDetermines whether lens flare effect can be shown (based on user setting).ShowLensFlare = False
CategoryAircraft
AirTraffic
Cockpit
Custom
Outside
Multiplayer
Runway
Scenery
Tower
Every camera definition must include a category that defines how the camera is exposed in the user interface. Categories define the view cycling behavior (S and A keys) as well as the menu structure. Some categories (AirTraffic, Runway, Multiplayer and Tower) can also be instance-based, meaning new cameras are created automatically based on the object type.Category = Cockpit
MomentumEffectYes/NoControls whether the camera exhibits momentum effect.MomentumEffect = Yes
ZoomPanScalar0.0 to 100.0One side effect of zooming in on an object is that it becomes difficult to make fine camera panning adjustments because the absolute movement of the camera around its position remains constant. The ZoomPanScalar setting compensates for this by adjusting panning movements by the given factor in relation to zoom level. Movement is scaled by dividing the ZoomPanScalar value by the zoom level.

For example, with a ZoomPanScalar setting of 1, camera panning is reduced by half at 2x zoom (1 / 2). A setting of 2, on the other hand, accelerates panning to twice the normal rate at 1x zoom (2Â Â / 1) and is exactly the normal rate at 2x zoom (2 / 2).

ZoomPanScalar = 1.0
PitchPanRate0.0 to 100.0Controls the rate at which pitch is changed in degrees per second.PitchPanRate=20
HeadingPanRate0.0 to 100.0Controls the rate at which heading is changed in degrees per second.HeadingPanRate=60
Panacceleratortime0.0 to 30.0
Default: 5.0
Pan acceleration time in seconds. When panning the camera, an acceleration/deceleration effect is added over a period of time. The larger this value is the longer it takes for the pan movement to reach its full rate (as controlled by PitchPanRate and HeadingPanRate), thus yielding smoother panning movement. Lower numbers yield more abrupt panning.
HotKeySelect1 to 10Links the camera to one of the 10 pre-defined key events for activating cameras; see the Control Assignments dialog.HotKeySelect=2
TransitionYes/NoWhen switching between camera views Flight Simulator can provide a “smooth” transition by moving the camera in real time from its old location to the new one. Note that this behavior is only applied if the Transition settings for both cameras are set to yes. If either or both are set to No then the view switch is instantaneous.Transition = Yes
ClipModeNormal
Minimum
Spot
Tower
This setting is used to control how the clip planes are computed. Clip planes are used to set the minimum and maximum distances for rendering in a 3D graphics program. The relative location of these planes determines how precise the graphics engine can maintain the Z-order of objects. A discussion of clip plane management is beyond the scope of this document. However, the concept is relevant to the camera system because it determines whether the camera favors near or far objects in the view:

“Normal” The near clip plane is scaled along with the zoom level. Useful for most views.
“Minimum” Clamps the near clip plane at its absolute minimum value (1 meter). Useful for cameras where the camera is placed close to object geometry (e.g., aircraft cameras).
“Spot” Favors distant objects by scaling the near clip plane with altitude and distance. Useful when the camera is positioned a reasonable distance away from the target object (e.g., spot view).
“Tower” Favors near objects by scaling the near clip plane by one-half the zoom level and clamping the far plane based on visibility settings with an absolute limit of 20km. Useful when objects at the limits of visibility aren’t important.

ClipMode=Minimum
Chasedistance0.0 to 3000.0
Default: 0.0
Initial distance in meters of the camera from the target object in external views.ChaseDistance = 500
Chaseheading-180.0 to 180.0Initial angular offset in degrees of the camera relative to the target object in external views.ChaseHeading = 15
Chasealtitude-1000 to 3000
Default: 0.0
Initial altitude in feet of the camera relative to the target object in external views.ChaseAltitude = 10
Chasetime0.0 to 200.0
Default: 0.0
Length of time in seconds an aircraft is kept in Fly-By view before a new position is computed.ChaseTime = 20
InstancedbasedYes/NoIf Yes, a new instance of the camera is created for each instance of the object referenced by the TargetCategory setting.InstancedBased = Yes
Cyclehideradius0.0 to 100.0For instance based cameras, sets the distance (in nautical miles) beyond which the camera is skipped in the cycling order.CycleHideRadius = 7
TargetcategoryNone
AI Planes
Fixed
Determines which object class, when a new instance is created, triggers the creation of a new InstanceBased camera.TargetCategory = Fixed
CyclehiddenYes/NoIf Yes, the camera is hidden from view cycling—it does not appear when cycling through views using the keyboard.CycleHidden=Yes
FixedLatitude-90.0 to 90.0

Latitude values can be expressed in decimal (-90 to +90) or hemispheric (N90 to S90) notation.

Default: 0.0

For Fixed camera types, the latitude of the cameras position.FixedLatitude=n32.8155
FixedLongitude-180.0 to 180.0

Longitude values can be expressed in decimal (-180 to +180) or hemispheric (W180 to E180) notation.

Default: 0.0

For Fixed camera types, the longitude of the cameras position.FixedLongitude=w115.655
FixedAltitude-500.0 to 30,000,000.0

Default: 0.0

For Fixed camera types, the altitude of the cameras position in meters.FixedAltitude=-12

With the above information, you can make edits to existing camera definitions, knowing what each of the property lines mean. To add a new camera, the best way is to copy an existing entry, and then modify the above parameters to customize how you want it to behave. The three examples below will walk you through the steps to add a certain type of camera.

Important Note: The cameras in the cameras.cfg file (located in app data) is only reloaded when the game is restarted. Cameras located in an aircraft.cfg file are easier to edit, since the aircraft can be reloaded in mid-flight, without having to reselect the plane in the menu, or restarting the game. The reload aircraft command has to be manually set in the control settings, and is called “Aircraft (reload)”. This enables the user to reload the aircraft.cfg after any modification to the configuration file.

Examples

Adding an Aircraft Camera

We are going to add a camera on the CRJ-700 as if it was positioned at the top of the tail section, looking forward at the top of the fuselage. The best way to do this is by making a copy of the tail view, and adjusting it to the desired angle. The tail view is the closest camera to what we want. The tail camera definition is shown below, and can be found in the following location:

DVD Version: C:\Program Files (x86)\Microsoft Games\Microsoft Flight Simulator X\SimObjects\Airplanes\Bombardier_CRJ_700\aircraft.cfg
Steam Version: C:\Program Files (x86)\Steam\steamapps\common\FSX\SimObjects\Airplanes\Bombardier_CRJ_700\aircraft.cfg

[CameraDefinition.1]
Title = “Tail”
Guid = {5c1df273-034b-4e7f-953a-9d5e26f1646c}
Description = Looking forward from behind the aircraft
Origin = Center
SnapPbhAdjust = Swivel
SnapPbhReturn = FALSE
PanPbhAdjust = Swivel
PanPbhReturn = FALSE
Track = None
ShowAxis = FALSE
AllowZoom = TRUE
InitialZoom = .75
ShowWeather = Yes
InitialXyz = 0, 3, -35.0
InitialPbh = 5, 0, 0
XyzAdjust = TRUE
Category=Aircraft
MomentumEffect=TRUE
ClipMode=Minimum
CRJ-700 Default Tail Camera Definition

To start things off, we will rename Tail to Tail Cam, use Guidgen to get a unique guid number, and give the camera a different description.

Title = “Tail Cam”
Guid = {639D2B60-6442-4b6c-BDC1-F9D0C9FEDD2A}
Description = Looking forward from a camera in the tail
Modified Title, Guid and Description

The camera is going to be of the outside of the aircraft, so the category will remain Aircraft. After that, the trickiest part is adjusting InitialXyz and Initial Pbh so that the camera faces the top of the fuselage. To move the view back towards the tail, we adjust the last value of InitialXyz to -13, and 4 moves the camera up, as if it was positioned on the tail. The only other adjustment we need to make for InitialPbh is to angle the camera slightly down, so more of the fuselage is in view. A value of 20 will angle the camera down to how we want it. We will also zoom the camera out to a value of .3 to include more of the plane in the view.

InitialXyz = 0, 4, -13
InitialPbh = 20, 0, 0
InitialZoom = .3
Modified Camera Angle Parameters

Since the camera is angled as if it was mounted on the tail, we do not want it to move forwards or back as the aircraft accelerates or decelerates. Disabling the momentum effect takes care of this.

MomentumEffect=False
Disabling the Momentum Effect

That’s all the changes needed for this camera. The image below shows the tail camera we just made.

crj-700 tail cam

Adding a Cockpit Camera

In this example, we are going to add a backseat camera in the Baron 58, looking out towards the right wing. We’ll start by copying the right seat camera, and make our edits there. The aircraft.cfg file location is listed below.

DVD Version: C:\Program Files (x86)\Microsoft Games\Microsoft Flight Simulator X\SimObjects\Airplanes\beech_baron_58\aircraft.cfg
Steam Version: C:\Program Files (x86)\Steam\steamapps\common\FSX\SimObjects\Airplanes\beech_baron_58\aircraft.cfg

[CameraDefinition.001]
Title = “Right Seat”
Guid = {195EAB58-9E4A-1E2A-A34C-A8D9D948F078}
Origin = Virtual Cockpit
MomentumEffect = Yes
SnapPbhAdjust = Swivel
SnapPbhReturn = False
PanPbhAdjust = Swivel
PanPbhReturn = False
Track = None
ShowAxis = YES
AllowZoom = TRUE
InitialZoom = 0.7
SmoothZoomTime = 2.0
ZoomPanScalar = 1.0
ShowWeather = Yes
XyzAdjust = TRUE
ShowLensFlare=FALSE
Category = Cockpit
PitchPanRate=20
HeadingPanRate=60
InitialXyz=0.52, 0.0, 0.0
InitialPbh=3, 0, 0
Baron 58, Right Seat Default Camera Definition

The first step is to give the camera a different title and guid (view previous example for more info on the guid). Most cockpit cameras don’t have a description in their entries.

Title = “Right Backseat”
Guid = {195EAB58-9E4A-3E2A-A34C-A8D9B848F068}
Modified Title and Guid

The next step is locating the position of the camera and it’s angle. A value of .45 moves the camera to the right, -.2 moves it down, and -1.8 moves it back towards the backseats. A value of 45 for InitialPbh rotates the view 45° to the right, showing a view of the right wing. Initial zoom is set to .3 to show more of the aircraft in the camera.

InitialXyz=.45, -.2, -1.8
InitialPbh=0, 0, 45
InitialZoom = .3
Modified Camera Angle Parameters

All the edits for this camera are complete. The image below shows the right backseat camera.

beechcraft baron 58 right backseat camera

Adding a Fixed Camera

In this example, we will place a camera on the beach, at the end of runway 09 at Princess Juliana. Because FSX does not include any default fixed cameras, use the template below to make your own. If you want the camera to be usable by all aircraft, place the camera in the cameras.cfg file. If you only want the camera to be accessible in certain aircraft, place the camera into aircraft’s aircraft.cfg file.

Cameras.cfg file location:

Windows XP: C:\Documents and Settings\”User”\Application Data\Microsoft\FSX
Windows Vista/7/8/10: C:\Users\”User”\AppData\Roaming\Microsoft\FSX

[CameraDefinition.XXX]
Title = Title Goes Here
Guid = {XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}
Origin = Fixed
InstancedBased = No
SnapPbhAdjust = None
PanPbhAdjust = Swivel
Track = X
ShowAxis = No
AllowZoom = Yes
InitialZoom = 1.0
SmoothZoomTime = 5.0
ShowWeather = Yes
XyzAdjust = TRUE
ShowLensFlare=FALSE
Category = Custom
ClipMode=Normal
CycleHideRadius = 7
FixedLatitude=XX.XXXX
FixedLongitude=XX.XXXX
FixedAltitude=X
CycleHidden=X
Fixed Camera Definition Template

As done previously, we will give the camera it’s own unique title and guid.

Title = Princess Juliana: Beach Overhead
Guid = {2900F626-8C26-4154-8FDC-E4346177C404}
Modified Title and Guid

We also want the camera to track the user’s aircraft as they fly by, so the track will be set to track.

Track = Track
Camera Motion Set to Track

The next thing to do is locating the camera position in the world. To find the desired latitude and longitude, you can either fly or slew your aircraft to the location you want, and grab the latitude and longitude that is displayed after entering slew, or pressing shift + z. The coordinates will have to be converted to decimal format to FSX to read them correctly. A helpful tool is the Convert Coordinates Page on earthpoint.com. Plug in the latitude and longitude from FSX into the first two boxes and hit Calc. Then copy the Degress Lat Long coordinates into the .cfg file. To ensure the camera is positioned in the correct hemisphere, use the following notation in front of the coordinates: N/+, S/-, E/+, W/-.

FixedLatitude=n18.03925
FixedLongitude=w63.1205
FixedAltitude=5.5//Alternate NotationFixedLatitude=+18.03925
FixedLongitude=-63.1205
Camera Location Parameters

The fixed altitude value is the distance in meters that is camera is positioned from ground level. Because the latitude and longitude coordinates set the camera position, there is no need for the InitialXyz camera property. This camera is also set to track the user’s aircraft as they fly by, so there is no need for the InitialPbh camera property. If track =none, then InitialPbh could be used to determines the camera’s angle of pitch, bank, and heading.

Another important factor we have to decide is whether the camera will show display when cycling through views. If we were to be flying anywhere except for Princess Juliana and decided to cycle through views, this camera would display in the cycle, which besides for there being almost no scenery loaded at that location, it is an annoying feature most of the time. Setting CycleHidden to Yes removes the camera from the cycle, meaning that the user has to right click and select the camera manually from the menu.

CycleHidden=Yes
Hide the Camera during Camera Cycling

Here is the finished camera view for Princess Juliana. Note that the number given to this camera definition is 012, since the last camera in the cameras.cfg file is 011 (multiplayer planes).

[CameraDefinition.012]
Title = Princess Juliana: Beach Overhead
Guid = {2900F626-8C26-4154-8FDC-E4346177C404}
Origin = Fixed
InstancedBased = No
SnapPbhAdjust = None
PanPbhAdjust = Swivel
Track = Track
ShowAxis = No
AllowZoom = Yes
InitialZoom = 1.0
SmoothZoomTime = 5.0
ShowWeather = Yes
XyzAdjust = TRUE
Transition = No
ShowLensFlare=FALSE
Category = Custom
ClipMode=Normal
CycleHideRadius = 7
FixedLatitude=n18.03925
FixedLongitude=w63.1205
FixedAltitude=5.5
InitialPbh=0, 0, 0
CycleHidden=Yes
Completed Camera Definition

Here is the finished camera view at the end of runway 09 at Princess Juliana.

fixed camera at princess juliana