FGCamera: Difference between revisions

3,361 bytes added ,  12 July 2020
m
Very minor layout change; +-cat: FlightGear add-ons → FlightGear addons
m (Very minor layout change; +-cat: FlightGear add-ons → FlightGear addons)
(31 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{WIP}}
{{See also|FGCamera API}}
{{infobox subsystem
{{infobox subsystem
<!--
<!--
Line 14: Line 16:


{{#ev:youtube|DMZB7QXpR9I|400|right|FGCamera v1.0 in action}}
{{#ev:youtube|DMZB7QXpR9I|400|right|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.
'''FGCamera''' is an alternative FlightGear view system, written in Nasal, that adds features similar to [http://www.ezdok-software.com/ EZdok Camera Addon] for Flight Simulator X.


'''Currently available features:'''
'''Currently available features:'''
Line 26: Line 28:


== Download link / Installation ==
== Download link / Installation ==
# [https://drive.google.com/file/d/0B7ZpQgmbsSZGTGlSeGRyOGV0bmM/edit?usp=sharing Download fgcamera_v1.rar]
{{caution|create backup copies before overwriting.}}
# [https://drive.google.com/file/d/0B7ZpQgmbsSZGY183eDJBdEpZYXM/view?usp=sharing Download fgcamera_v1_2.zip]
# Delete (if exist) FG HOME/aircraft-data/FGCamera;
# Delete (if exist) FG HOME/aircraft-data/FGCamera;
# Delete (if exist) FG ROOT/Nasal/fgcamera;
# Delete (if exist) FG ROOT/Nasal/fgcamera;
# Copy fgcamera folder (from downloaded archive) to FG ROOT/Nasal;
# Copy fgcamera folder (from downloaded archive) to FG ROOT/Nasal;
# Copy modified mice.xml from "FG ROOT/nasal/fgcamera" to "FG ROOT/";
# 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)
# 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)
{{note|make sure that ''File>Input Configuration>Click right mouse to cycle mouse behaviour'' (FG menu) is selected}}
{{note| FGCamera uses dedicated views with names "FGCamera1", "FGCamera2", "FGCamera3", "FGCamera4", "FGCamera5" with view numbers 120, 121, 122, 123, 124.
Some aircraft models check for specific view name, and other check for specific view numbers. To be fully compatible with fgcamera, aircraft model should check the property "/sim/current-view/internal" instead of view name or view number.}}
Current (development) version of FGCamera can be downloaded [https://drive.google.com/open?id=0B7ZpQgmbsSZGNkJOYzZFb1RZUnc here]


== User Interface ==
== User Interface ==
Line 89: Line 98:
* select preset views: {{key press|1}}, {{key press|2}}, {{key press|3}}, {{key press|4}}, {{key press|5}}, {{key press|6}}, {{key press|7}}, {{key press|8}}, {{key press|9}}, {{key press|0}}.
* select preset views: {{key press|1}}, {{key press|2}}, {{key press|3}}, {{key press|4}}, {{key press|5}}, {{key press|6}}, {{key press|7}}, {{key press|8}}, {{key press|9}}, {{key press|0}}.


* adjust camera position: {{key press|}}, {{key press|}}, {{key press|}}, {{key press|}}, {{key press|Page Up}}, {{key press|Page Down}}.
* adjust camera position: {{key press|up}}, {{key press|down}}, {{key press|left}}, {{key press|right}}, {{key press|Page Up}}, {{key press|Page Down}}.


{{note|'''to People using keyboard to fly (with or without mouse):''' throttle keys aren't working with the camera }}
* cycle through categories: {{key press|Shift}} + {{key press|up}}, {{key press|Shift}} + {{key press|down}}.
 
* cycle through views in category: {{key press|Shift}} + {{key press|left}}, {{key press|Shift}} + {{key press|right}}.
 
{{note|'''to People using keyboard to fly (with or without mouse):''' throttle keys aren't working with the camera if default FGCamera key assignments are used }}


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


=== Commands ===
=== Commands ===
Current version of FGCamera has two commands:
Current version of FGCamera has the following commands:
* ''fgcamera-select'' - selects camera by index. If the camera does not exist, switches to camera 0;
* ''fgcamera-select'' - selects camera by index. If the camera does not exist, switches to camera 0;
* ''fgcamera-adjust'' - adjusts view position and orientation;
* ''fgcamera-adjust'' - adjusts view position and orientation;
Line 192: Line 205:


==== fgcamera-next-category ====
==== fgcamera-next-category ====
{{WIP}}
Binding example:
<syntaxhighlight>
<!-- ... -->
    <binding>
        <command>fgcamera-next-category</command>
    </binding>
<!-- ... -->
</syntaxhighlight>


==== fgcamera-prev-category ====
==== fgcamera-prev-category ====
{{WIP}}
Binding example:
<syntaxhighlight>
<!-- ... -->
    <binding>
        <command>fgcamera-prev-category</command>
    </binding>
<!-- ... -->
</syntaxhighlight>


==== fgcamera-next-in-category ====
==== fgcamera-next-in-category ====
{{WIP}}
Binding example:
<syntaxhighlight>
<!-- ... -->
    <binding>
        <command>fgcamera-next-in-category</command>
    </binding>
<!-- ... -->
</syntaxhighlight>


==== fgcamera-prev-in-category ====
==== fgcamera-prev-in-category ====
{{WIP}}
Binding example:
<syntaxhighlight>
<!-- ... -->
    <binding>
        <command>fgcamera-prev-in-category</command>
    </binding>
<!-- ... -->
</syntaxhighlight>


==== fgcamera-reset-view ====
==== fgcamera-reset-view ====
Binding example:
<syntaxhighlight>
<!-- ... -->
    <binding>
        <command>fgcamera-reset-view</command>
    </binding>
<!-- ... -->
</syntaxhighlight>
== Replay timestamps ==
{{WIP}}
{{WIP}}
[FGCamera v1.2.1]
<syntaxhighlight>
<PropertyList>
    <timestamp>
        ...
    </timestamp>
    <timestamp>
        ...
    </timestamp>
    ...
</PropertyList>
</syntaxhighlight>
<syntaxhighlight>
    <timestamp>
        <time-str>0:00.0</time-str>
        <jump-to>7:15.0</jump-to>    <!-- optional -->
        <camera-id>0</camera-id>
    </timestamp>
</syntaxhighlight>
<syntaxhighlight>
    <timestamp>
        <time-str>0:00.0</time-str>
        <jump-to>5:25.8</jump-to>    <!-- optional -->
        <click-camera>
            <latitude-deg>37.62122627018694</latitude-deg>
            <longitude-deg>-122.3981490730425</longitude-deg>
            <altitude-ft>27.42773406108862</altitude-ft>
        </click-camera>
    </timestamp>
</syntaxhighlight>


== Development status (Oct 2014) ==
== Development status (Apr 2015) ==
* {{progressbar|20}} Dynamic view movement;
* {{progressbar|60}} "AI/MP [[Scripted AI Missiles|Missile]] view" mode [http://forum.flightgear.org/viewtopic.php?f=27&t=24491];
* {{progressbar|40}} Random camera movement (effects);
* {{progressbar|80}} Dynamic view movement;
* {{not done}} Alternative config (presets) that supports "keyboard+mouse" flight controls;
* {{done}} Random camera movement (effects). Effects can be copied/pasted and imported from external files. New dialogs for RND effects management.
* {{done}} <s>Alternative config (presets) that supports "keyboard+mouse" flight controls;</s> modifying the script to fully support "keyboard+mouse" flight controls;
* {{done}} View Categories;
* {{done}} View Categories;
* {{done}} Making view name popup-tips optional (customizable for each view);
* {{done}} Making view name popup-tips optional (customizable for each view);
* {{done}} Each camera view can open GUI dialog;
* {{done}} Each camera view can open GUI dialog;
* {{progressbar|80}} Ability to load older version cameras (backward compatibility).
* {{progressbar|100}} Ability to load older version cameras (backward compatibility);
* {{progressbar|40}} Each camera view can open 2d panel;
* {{progressbar|40}} dedicated [[FGCamera API]] (e.g. for aircraft developers wanting to use fgcamera directly), intended to support versioning for stable APIs, without introducing regressions;
* {{progressbar|80}} reimplement current FGCamera functionality using [[Property rules]] (reduce Nasal usage);


== Gallery ==
== Gallery ==
Line 225: Line 312:
{{#ev:youtube|x-JPzLox-gI|300}}
{{#ev:youtube|x-JPzLox-gI|300}}
{{#ev:youtube|YUG7G0IMpXc|300}}
{{#ev:youtube|YUG7G0IMpXc|300}}
{{#ev:youtube|xsnWJe_xUgw|300}}


== Support ==
== Support ==
Line 232: Line 320:
[[Category:Recording]]
[[Category:Recording]]
[[Category:Nasal]]
[[Category:Nasal]]
[[Category:FlightGear add-ons]]
[[Category:FlightGear addons]]