FGCamera

From FlightGear wiki
Revision as of 12:38, 5 October 2014 by Marius A (talk | contribs) (→‎Main Dialog: (updating to v1.1))
Jump to navigation Jump to search
FGCamera
Started in 03/2014
Description Alternate Camera Manager System
Contributor(s)
  • Marius_A (since 03/2014)
Status Under active development as of 08/2014
FGCamera v1.0 in action

FGCamera is an alternative FlightGear view system that adds features similar to „EZdok Camera Addon“ for Flight Simulator X. FGCamera is written in Nasal.

Currently available features:

  • 4 camera types:
    • Virtual cockpit,
    • Aircraft (look-at),
    • Aircraft (look-from),
    • World (look-from);
  • Arbitrary number of preset views;
  • Smooth/discrete transition between the views of the same camera type.

Download link / Installation

  1. Download fgcamera_v1.rar
  2. Delete (if exist) FG HOME/aircraft-data/FGCamera;
  3. Delete (if exist) FG ROOT/Nasal/fgcamera;
  4. Copy fgcamera folder (from downloaded archive) to FG ROOT/Nasal;
  5. Use FG ROOT/Nasal/fgcamera/fgcamera_cfg as config. If you use fgrun, open advanced settings, go to "General" and select config path (point to fgcamera_cfg.xml)

User Interface

Fgcamera menu item.jpg

Graphical user interface is used to create and manage camera views. FGCamera dialogs can be launched using menubar item View/FGCamera (experimental).

Currently, there are three functional dialogs:

  • Main,
  • Camera creation,
  • Current camera settings.

Main Dialog

Fgcamera main dialog.jpg
  • "Options" button opens FGCamera's global settings dialog. This dialog is currently non functional.
  • "Copy" button creates a copy of currently selected camera view,
  • "Create new camera..." button opens new camera creation dialog.
  • The list of cameras shows all the camera views that are created for the currently selected aircraft. Each camera view has its own index. The active view (currently selected view) is marked by square brackets. Category of each camera is displayed as a suffix in square brackets.
  • The active view can be renamed using input box below the list of cameras. The second input box is used to define view category.
  • Buttons "U" and "D" are used to rearrange camera views.
  • "Del" button removes the active camera.
  • "Save" button saves all the cameras data to disk.
  • "Close" closes the dialog (changes will not be saved to disk).

Camera Creation Dialog

Fgcamera new camera dialog.jpg
  • "Camera type" popup list is used to select camera type. Supported types:
    • cockpit,
    • aircraft (look at),
    • aircraft (look from),
    • world (look from);
  • "Create" – creates new camera view and selects it as an active camera.
  • "Cancel" – closes the dialog.

"Current camera settings" Dialog

Fgcamera camera settings dialog.jpg
  • FOV – field of view;
  • View movement – group of inputs that controls view movement between preset views:
    • Transition time – time to move camera from current position to preset position.
  • View adjustment – group of inputs that controls view adjustment behaviour:
    • Linear velocity – translational velocity of camera in meters per second,
    • Angular velocity – angular velocity of camera in degrees per second.
    • Lowpass filter – "smoothness" of the camera movement.
  • Mouse look – group of inputs that controls mouse look behaviour:
    • Mouse sensitivity – self explanatory,
    • Lowpass filter – "smoothness" of the camera movement.
  • "Apply" saves current camera position (does not write to disk).
  • "Cancel" – closes the dialog (current camera position will not be saved).

Controls

Preconfigured keys

  • select preset views: 1, 2, 3, 4, 5, 6, 7, 8, 9, 0.
  • adjust camera position: , , , , Page Up, Page Down.
Noteto People using keyboard to fly (with or without mouse): throttle keys aren't working with the camera

Key assignments can be customized by editing FGROOT/Nasal/fgcamera/fgcamera_cfg.xml

Commands

Current version of FGCamera has two commands:

  • fgcamera-select - selects camera by index. If the camera does not exist, switches to camera 0;
  • fgcamera-adjust - adjusts view position and orientation;
  • fgcamera-next-category - cycles to next view category;
  • fgcamera-prev-category - cycles to previous view category;
  • fgcamera-next-in-category - cycles to next view in currently selected category;
  • fgcamera-prev-in-category - cycles to previous view in currently selected category;
  • fgcamera-reset-view - resets currently selected camera's position and orientation.

fgcamera-select

Uses two arguments:

  • camera-id - integer number (camera-id ≥ 0);
  • camera-type - currently non-functional, suggested value is "aircraft".

Keyboard binding example:

<key n="48">
    <name> 0 </name>
    <repeatable type="bool">false</repeatable>
    <desc>Preset view 0</desc>
    <binding>
        <command>fgcamera-select</command>
        <camera-id>0</camera-id>
        <camera-type>aircraft</camera-type>
    </binding>
</key>

fgcamera-adjust

Uses two arguments:

  • velocity - camera movement velocity. Recommended values -1, 0, 1;
  • dof - affected degree of freedom. Valid values:
    • x - left/right,
    • y - up/down,
    • z - back/forward,
    • h - heading,
    • p - pitch,
    • r - roll.

Keyboard binding example:

<key n="360">
    <name> PageUp </name>
    <desc>Camera Up</desc>
    <binding>
        <command>fgcamera-adjust</command>
        <velocity>1</velocity>
        <dof>y</dof>
    </binding>
    <mod-up>
        <binding>
            <command>fgcamera-adjust</command>
            <velocity>0</velocity>
            <dof>y</dof>
        </binding>
    </mod-up>
</key>

Joystick POV hat binding example:

<axis>
    <number><windows>6</windows></number>
    <desc>View Direction</desc>
    <low>
        <binding>
            <command>fgcamera-adjust</command>
            <velocity>1</velocity>
            <dof>h</dof>
        </binding>
        <mod-up>
            <binding>
                <command>fgcamera-adjust</command>
                <velocity>0</velocity>
                <dof>h</dof>
            </binding>
        </mod-up>
    </low>
    <high>
        <binding>
            <command>fgcamera-adjust</command>
            <velocity>-1</velocity>
            <dof>h</dof>
        </binding>
        <mod-up>
            <binding>
                <command>fgcamera-adjust</command>
                <velocity>0</velocity>
                <dof>h</dof>
            </binding>
        </mod-up>
    </high>
</axis>

fgcamera-next-category

WIP.png Work in progress
This article or section will be worked on in the upcoming hours or days.
See history for the latest developments.

fgcamera-prev-category

WIP.png Work in progress
This article or section will be worked on in the upcoming hours or days.
See history for the latest developments.

fgcamera-next-in-category

WIP.png Work in progress
This article or section will be worked on in the upcoming hours or days.
See history for the latest developments.

fgcamera-prev-in-category

WIP.png Work in progress
This article or section will be worked on in the upcoming hours or days.
See history for the latest developments.

fgcamera-reset-view

WIP.png Work in progress
This article or section will be worked on in the upcoming hours or days.
See history for the latest developments.

Development status (Oct 2014)

  • 20}% completed Dynamic view movement;
  • 40}% completed Random camera movement (effects);
  • Not done Not done Alternative config (presets) that supports "keyboard+mouse" flight controls;
  • Done Done View Categories;
  • Done Done Making view name popup-tips optional (customizable for each view);
  • Done Done Each camera view can open GUI dialog;
  • 80}% completed Ability to load older version cameras (backward compatibility).

Gallery

Support

FGCamera forum thread