FrontPage > FlightGearマニュアル > 第3章

The FlightGear Manual Version 2.0.0

第3章 離陸:プログラムの起動方法

このドキュメントは http://www.flightgear.org/Docs/getstart/getstartch3.html の日本語訳です。

Table of Contents

3.1 環境変数

FlightGear を起動するために必須の環境変数が2つあります。 これらは、データとシーナリーのありかを FlightGear に伝えます。

プラットフォームや必要性により様々に設定できます。

3.1.1 FG_ROOT

これは、航空機や航空標識の位置、空港の周波数といったデータファイルを FlightGear が探す場所になります。 FlightGear をインストールした場所の data サブディレクトリがそれです。 例えば、/usr/local/share/FlightGear/datac:\Program Files\FlightGear\data になります。

3.1.2 FG_SCENERY

これは FlightGear がシーナリー・ファイルを探す場所になります。 ディレクトリのリストからなり、書かれた順に検索が行われます。 ディレクトリの区切り文字は、Unix では ":"、Windows では ";" になります。 例えば、

/home/joebloggs/WorldScenery:/usr/local/share/FlightGear/data/Scenery

あるいは

c:\Program Files\FlightGear\data\Scenery;c:\Program Files\FlightGear\data\WorldScenery

のようになります。

3.1.3 Windows と Mac OS X の環境変数

Windows のグラフィカル・ウィザードと Mac OS X の GUI ランチャーはこれらの環境変数を内部で定義してるので、自分の手で定義する必要はありません。 ですが、コマンドラインから FlightGear を実行したい場合にはこれらの環境変数を明示的に定義する必要があります。

3.2 Unix/Linux におけるシミュレータの起動

getstart2x.png
図3: 離陸準備完了。サンフランシスコ国際空港 (KSFO) のデフォルト出発位置にて待機中。

FlightGear を実行する前に、いくつかの環境変数を設定する必要があります。

Bourne シェル (とその互換シェル) で追加する方法を以下に示します。

LD_LIBRARY_PATH=/usr/local/share/FlightGear/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
FG_HOME=/usr/local/share/FlightGear
export FG_HOME
FG_ROOT=/usr/local/share/FlightGear/data
export FG_ROOT
FG_SCENERY=$FG_ROOT/Scenery:$FG_ROOT/WorldScenery
export FG_SCENERY

Cシェル(とその互換シェル)では以下のようになります。

setenv LD_LIBRARY_PATH=\
  /usr/local/share/FlightGear/lib:$LD_LIBRARY_PATH
setenv FG_HOME=/usr/local/share/FlightGear
setenv FG_ROOT=/usr/local/share/FlightGear/data
setenv FG_SCENERY=\
  $FG_HOME/Scenery:$FG_ROOT/Scenery:$FG_ROOT/WorldScenery

以上の環境変数の設定が終わったら、fgfs --option1 --option2... を実行して FlightGear を単純に起動します。 コマンドラインオプションは3.5節に書かれています。

3.3 Windows におけるシミュレータの起動

ビルド済みの Windows バイナリを使うと、グラフィカルなウィザードを用いて FlightGear を起動することができます。 スタートメニューの FlightGear Launcher、またはデスクトップアイコンを単純にダブルクリックしてください。 ランチャーでは、航空機や起動時の空港と滑走路、時刻、現在の気象状況、その他の数多くの設定を選ぶことができます。

getstart3x.png
図4: FlightGear ランチャー画面。

初回起動時に、変数 FG_ROOT (通常は c:\Program Files\FlightGear\data)と FG_SCENERY を設定するように求められるかもしれません。 FG_SCENERYはあなたがインストールしたシーナリーのディレクトリのリストで、典型的には c:\Program Files\FlightGear\data\scenery になります。

無効な値を設定してしまったり、後からシーナリーのディレクトリを変更した場合は、ランチャーの最初のページから"Prev"ボタンで戻って設定を変更することができます。

3.3.1 コマンドラインからの起動

もう一つの方法として、コマンドラインから FlightGear を実行できます。 これを行うには、環境変数 FG_ROOTFG_SCENERY を手作業で設定する必要があります。

コマンドプロンプトを開き、あなたのバイナリが保存されているディレクトリ (c:\Program Files\FlightGear\bin\win32 のような場所) に移動し、キーボードから環境変数を設定します。

SET FG_HOME=c:\Program Files\FlightGear
SET FG_ROOT=c:\Program Files\FlightGear\data
SET FG_SCENERY=c:\Program Files\FlightGear\data\Scenery

そして、同じコマンドプロンプト内でFlightGearを呼び出します (環境変数の設定は同じシェル内でのみ有効です)。

fgfs --option1 --option2...

コマンドラインオプションは3.5節に書かれています。

もちろん、Windows のテキストエディタ(メモ帳など)で上記コマンド行を使ったバッチファイルを作ることもできます。

最大のパフォーマンスを得るには、FlightGear の実行中はテキスト出力ウィンドウを最小化 (アイコン化) することをお勧めします。

訳注: 原文に対して以下の修正を行いました。-toshi

3.4 Mac OS X におけるシミュレータの起動

Mac OS X 用のビルド済みバイナリパッケージには GUI ランチャーが含まれています。 /Applications フォルダーの FlightGear アイコンをダブルクリックするだけで図5のような GUI ランチャーのウィンドウが表示されます。 ランチャーで出来ることは以下のとおりです。

以下の節ではこれらの機能を使って説明します。

getstart4x.png
図5: Mac OS X 用の GUI ランチャー

3.4.1 航空機と空港の選択

ランチャーウィンドウで、空港/航空機名の右端にあるギアのボタンをクリックすると航空機と空港を選択できます。 ウィンドウの画像パネルには選択した航空機のサムネール画像が表示されます。 ここで選択する空港はフライト開始地点になります。 FlightGear が使用する ICAO 4レター空港コードは、1〜2文字のプリフィックスと2〜3文字の空港コードからなります。 たとえば、サンフランシスコ国際空港の ICAO コードは KSFO です。 ここで「K」はアメリカ合衆国のプリフィックスで、SFO はサンフランシスコ国際空港の空港コードになります。 空港や航空機を探し出すには、Advanced features >> PositionAircraft タブを使います。

3.4.2 飛行中のシーナリー自動ダウンロードを有効にする

ランチャーウィンドウにある Download scenery on the fly にチェックすると、TerraSync を使ってシーナリーデータを飛行中にダウンロードします。 シーナリーのダウンローダは、シーナリーデータを

/Applications/FlightGear.app/Contents/Resouces/data/Scenery-Terrasync

にインストールします。

3.4.3 ナビゲーション用地図 (Atlas) を有効にする

Mac 版 FlightGear には、フライトプランを手助けするナビゲーション用地図 Atlas がユーザの便宜のために含まれています。 このオプションをチェックすると、フライトの開始時に Atlas が自動的に起動します。 Atlas のオプションを指定する必要はありません。 GUI ランチャーが指定してくれます。

3.4.4 FlightGear (シミュレータ本体) の起動

Start Flight ボタンをクリックするともうひとつのウィンドウが開きます。 これが FlightGear メインウィンドウです。 FlightGear は直ちにシミュレーションに必要な大量のデータをロードし始めます。 遅いマシンでは全てをロードし終わるまでにしばらく時間がかかるかもしれません。

3.4.5 拡張機能

FlightGear は起動時に、たくさんの機能やオプションを指定することができます。 このうちのいくつかは、FlightGear メインウィンドウにあるメニューからは変更することができません。 これらの機能を有効/無効にするには、ランチャーウィンドウの左下にある三角形のボタンをクリックしてください。 すると、拡張機能のタブが表示されます。 全ての設定は保存されるので、再設定する必要はありません。

General、Features、Rendering タブ

これらのタブでは FlightGear のオプションを指定します。

Favorite タブ

Favorite リストはウェブブラウザのブックマークのようなもので、現在のオプション一式に名前をつけて保存する手段を提供します。 現在のオプション一式を保存するには、ウィンドウ上部、あるいは Favorite タブの下部にある "+" ボタンを押してください。 favorites に追加した後は、Favorite タブの表にある行をダブルクリックすることで他の設定に切り替えることができます。 表形式の "-" ボタン (あるいは delete キー) を押すと、選択した favorite を削除します。

Position タブ

空港や航空母艦を見つけるには、フィルターテキスト領域にキーワードを入れて検索します。 入力可能なキーワードは以下の通りです。

キーワードに一致した空港と空母はフィルターテキスト領域の下に表形式で表示されます。 上部の枠の空港名は、現在選択されている空港または空母と同期しています。 上部の枠の空港名の右端にあるギアボタンをクリックしてこのタブを開くこともできます。

空港を選択すると、"runway" ポップアップボタンに存在する滑走路が表示されます。 滑走路を選択するか、あるいは "default" のままにしておくことができます。

Aircraftタブ

航空機を見つけるには、フィルターテキスト領域にキーワードを入れて検索します。

キーワードに一致した航空機のリストはフィルターテキスト領域の下に表形式で表示されます。 上部の枠の航空機名は、現在選択されている航空機と同期しています。 上部の枠の航空機名の右端にあるギアボタンをクリックしてこのタブを開くこともできます。

もっとたくさんの航空機データをインターネットから探したければ、Aircraft タブの下にある "Get Aircraft" ボタンをクリックします。 するとウェブブラウザが開いて、FlightGear Mac OS X ウェブサイトにある Aircraft Links ページに飛びます。 そこからいくつかのリンクをたどってお好みの航空機をダウンロードしてください。 航空機をダウンロードしたら、"Others" タブを開いてインストールしてください。

航空機を検索するときに変な挙動が起きた場合は、航空機データベースのキャッシュファイルを削除すると問題が解決するかもしれません。 /Applications/Utilities/Terminal.app を開き、以下のコマンドを打ってキャッシュファイルを削除してください。

cd /Applications/FlightGear.app/Contents/Resources

rm AircraftCache.rb

ビルド済みバイナリパッケージのディスクイメージをマウントしたときに、そこからは FligthGear を起動しないように注意してください。 マウント状態のディスクイメージ内のフォルダは読み取り専用なので、アドオンデータをインストールすることはできません。 FlightGear をインストールするには、マウントしたディスクイメージから FlightGear アイコンを /Applications フォルダにコピーする必要があります。

Network タブ

このタブには、2つのネットワーク機能が含まれています。 1つはマルチプレーヤモードで、もう1つは FGCOM (ボイスATC) です。 マルチプレーヤモードを有効にするには、以下を指定します。

FGCOM を有効にすると、無線機の設定を使って実際の声で通話することができるようになります。 スペースバーを押している間、選択した無線周波数 (COM1) で話すことができます。 他のプレーヤが同一周波数かつ有効範囲内でしゃべっていれば、その声を聞くことができます。 以下のリストは、FGCOM に存在するオプションです。

FGCOM とマルチプレイについての詳しい説明は 第5章 を参照してください。

Others タブ

航空機や空港、ランチャーに表示されるオプションを除くあらゆるオプションはここで指定できます。 スペース区切りのオプションを入力すると追加オプションを FlightGear に渡すことができます。 "View Options" を押すと、存在する全てのオプションを見ることができます。 いくつかのオプションは FlightGear をクラッシュさせてしまうかもしれません。 特定のオプションでそのようなクラッシュに遭遇したら、私たちにお知らせください。

追加の航空機やシーナリーデータをインストールするには、"Install Add-on Data" を押します。 複数のファイルやフォルダを指定して、FlightGear の data フォルダにインストールすることができます。 対応しているファイルの種類は以下の通りです。

全データのインストールが成功するとメッセージウィンドウが、それ以外の場合はエラーメッセージが表示されます。 航空機とシーナリーデータは同時に選択できます。 航空機ファイルが含まれていないアーカイブファイルを選択した場合、data フォルダに展開はされますが無視します。 新しい航空機のインストールが完了すると、"Aircraft" タブでその航空機を選択できるようになります。

3.4.6 コマンドラインからの起動

Mac OS X のコマンドラインからシミュレータを起動することもできます。 そうする場合は、Terminal.app (/Applications/Utilities にあります) を開いて、以下のコマンドを打ちます。

cd /Applications/FlightGear.app/Contents/Resources

./fgfs --option1 --option2 ....

コマンドライン オプションに関する詳細は 3.5節 をご覧ください。 他のプラットフォームとは異なり、ビルド済みバイナリパッケージを使用している限りは、FG_ROOT や FG_SCENERY といった環境変数を手動で指定する必要はありません。

3.5 コマンドライン パラメータ

訳注: 本節の一部には古い情報が含まれています。 最新の情報は、米国 Wiki サイト内の「Command Line Parameters」に掲載されていますので、あわせてご覧ください。-toshi

以下に、FlightGear に存在する数多くのコマンドラインオプションに対して、完全なリストと短い説明を記します。 これらのオプションの大半は、Windows バイナリで配布される FlightGear ランチャーでも適用できます。

もし継続的に再利用するオプションがある場合は、設定ファイルの中に書くこともできます。 これは個人個人の設定に依存するので FlightGear とは一緒に配布していませんが、どんなテキストエディタ(メモ帳、emacs、お好みならvi)でも作成可能です。

3.5.1 一般的なオプション

--help
もっともよく使われるコマンドラインオプションのみを表示。
--help-verbose
全てのコマンドラインオプションを表示。
--fg-root=path
デフォルト設定でコンパイルしなかった場合に、ルートdataファイルを探す場所をFlightGearに指示。
--fg-scenery=path
基本シーナリーへのパスをある特定のパスに指定。 デフォルト位置の$FG ROOT/Sceneryにシーナリーがない場合など。 これは、CD-ROMにシーナリーがある場合に特に有用です。
--disable-game-mode
フルスクリーン表示無効。
--enable-game-mode
フルスクリーン表示有効。
--disable-splash-screen
アクセラレータボードの初期化時に3DFXのロゴが回転する機能を無効(3DFXのみ)。
--enable-splash-screen
宣伝するのがお好きならこれを設定!
--disable-intro-music
FlightGear起動時にオーディオサンプルを再生しない。 イントロ演奏に問題がある場合に推奨。
--enable-intro-music
マシンパワーが十分なら、この設定をお楽しみください。
--disable-mouse-pointer
外部マウスポインタ無効。
--enable-mouse-pointer
外部マウスポインタ有効。古いVoodooベースのカードでフルスクリーンモードを使うときに有用。
--enable-random-objects
ランダムなシーナリーのオブジェクト(ビルや樹木)を含有。デフォルトは有効。
--disable-random-objects
ランダムなシーナリーのオブジェクト(ビルや樹木)を除外。
--disable-freeze
FlightGear起動時にエンジンを動作させ、すぐに離陸可能にする。
--enable-freeze
エンジン停止状態でFlightGearを起動。
--disable-fuel-freeze
燃料の消費は標準。
--enable-fuel-freeze
燃料タンクに一定の残量を保つ
--disable-clock-freeze
時刻の進行は標準。
--enable-clock-freeze
時刻を止める。
--control-mode
操作デバイス(joystick, keyboard, mouse)の指定。 デフォルトはjoystick(yoke)。
--disable-auto-coordination
エルロン/ラダーの自動連携オフ(デフォルト)。
--enable-auto-coordination
エルロン/ラダーの自動連携オン(ペダル無し時は推奨)。
--browser-app=/path/to/app
Webブラウザの場所を指定。 例: --browser-app="C:\Program Files\Internet Explorer\iexplore.exe" (空白があるため" "に注意!)。
--prop:name=value
あるプロパティ値をvalueに設定。 エンジン動作状態で起動させる例:

--prop:/engines/engine0/running=true

もう1つの例:

--aircraft=c172
--prop:/consumables/fuels/tank[0]/level-gal=10
--prop:/consumables/fuels/tank[1]/level-gal=10

これはセスナにショートフライト用の給油をします。
--config=path
追加プロパティをパスからロード。 例: fgfs --config=./Aircraft/X15-set.xml
--units-feet
測定の単位にフィートを使用。
--units-meters
測定の単位にメートルを使用。

3.5.2 機能

--disable-hud
HUD(ヘッドアップディスプレイ)をオフ。
--enable-hud
HUDをオン。
--enable-anti-aliased-hud
HUDの線のアンチエイリアス処理をオン。 もしハードがサポートしていれば質が向上します。
--disable-anti-aliased-hud
HUDの線のアンチエイリアス処理をオフ
--enable-panel
計器パネルをオン(デフォルト)。
--disable-panel
計器パネルをオフ。
--disable-sound
サウンドをオフ。
--enable-sound
サウンドをオン。

3.5.3 航空機

--aircraft=航空機の定義ファイル名
例: --aircraft=c310。 選択可能なファイルを見つけるには、$FG_ROOT/Aircraft ディレクトリをチェックして " -set.xml" で終わるファイルを探してください。 航空機を指定するときは、ファイル名から "-set.xml" を除外してください。 別の方法として、下記の --show-aircraft オプションを使うこともできます。 追加の航空機をダウンロードするには、2.2節 をご覧ください。
--show-aircraft
現在存在する航空機の種類をソートしてリスト表示。

3.5.4 飛行モデル

--fdm=abcd
核となる飛行モデルを選択。 オプションはjsb, larcsim, yasim, magic, balloon, external, pipe, ada, nullで、デフォルト値はjsb (JSBSim)です。 LaRCSimは、LaRCSimシミュレータからFlightGearが受け継いだ飛行モデルです。 yasimは、Andy Ross氏のもうひとつの飛行力学シミュレータ(Yet Another Flight Dynamics Simulator)です。 magicは旋回モードでUFOの機体を動かします。 balloonは熱気球です。 externalは、TCPソケット経由でシミュレータのリモートコントロールを参照します。 pipeは、その名もpipeを経由してローカルからコントロールするためのものです。 nullは、飛行力学モデルを一切選択しません。 UIUC飛行モデルは、ここでは選択せずに次のオプションを使ってください! 飛行モデルに関するより多くの情報は1.4節及びこれ以降をご参照ください。
--aero=abcd
ロードする空気力学モデルを指定。 デフォルトはc172です。 利用できる空気力学モデルは選択した飛行モデルに依存します。
--model-hz=n
飛行力学モデルをこの速さ(1秒あたりの繰り返し回数)で実行します。
--speed=n
飛行力学モデルを現実世界よりn倍速く実行。
--notorim
JSBSimの初期化時にモデルをトリムしない。
--on-ground
地上で起動(デフォルト)。
--in-air
空中で起動。 当然ながら、意味のある操作をするには下記の初期高度を指定する必要があります。 X15では必須のオプションです。
--wind=DIR@SPEED
方位DIR(度)から風速SPEED(ノット)の風が吹くように指定。 コロン区切りで範囲を指定することもできます。 例: 180:220@10:15。
--random-wind
よりチャレンジングに飛行するためにランダムな風を吹かせます

3.5.5 初期位置と方向

--airport-id=ABCD
直接起動したい空港の国際コードを入力。 例えばニューヨークのJFK空港ならKJFKです。 取り込まれている空港のIDの長いリストと短いリストは$FG_ROOT/Airportsで見つけることができます。 けれども、該当する地域の地形データが必要であることをお忘れなく!
--offset-distance=nm
基準点に対する距離を海里(nm)で指定。
--offset-azimuth=deg
基準点に対する機首方位を度(degree)で指定。
--lon=degrees
起動時の経度を度で指定(西経はマイナス)。
--lat=degrees
起動時の緯度を度で指定(南緯はマイナス)。
--altitude=feet
起動時の高度を指定。 --in-airオプションとともに自由飛行を開始するときに有用です。 --units-metersを使っていなければフィート単位です。
--heading=degrees
機首方位(ヨー角)の初期状態を度で設定。
--roll=degrees
機体の左右の傾き(ロール角、バンク角)の初期状態を度で設定。
--pitch=degrees
機首の上下の傾き(ピッチ角)の初期状態を度で設定。
--uBody=feet per second
機体のX軸方向の速度。 --units-metersを指定していなければフィート毎秒です。
--vBody=feet per second
機体のY軸方向の速度。 --units-metersを指定していなければフィート毎秒です。
--wBody=feet per second
機体のZ軸方向の速度。 --units-metersを指定していなければフィート毎秒です。
--vc=knots
対気速度の初期値をノットで指定(--fdm=jsbの場合のみ)。
--mach=num
対気速度の初期値をマッハで指定(--fdm=jsbの場合のみ)。
--glideslope=degrees
飛行経路角(滑空角)を指定(正の値も可)。
--roc=fpm
上昇速度の初期値を指定(負の値も可)。

3.5.6 レンダリング (描画) オプション

--bpp=depth
色深度をピクセルあたりのビット数で指定。
--fog-disable
霧を無効化。 レンダリングの負担を軽くするために、デフォルトでは遠方の景色を霧で隠しています。 このオプションを使うと、遠くまで見える代わりにフレームレートが低下します。
--fog-fastest
このオプションを使うと、風景が良く見えなくなる代わりにフレームレートが向上します。
--fog-nicest
このオプションを使うと、もやのかかった日に飛行するような、かなりリアルな視界になります。
--enable-clouds
雲層を有効化(デフォルト)。
--disable-clouds
雲層を無効化。
--fov=degrees
視野を度で設定。デフォルトは55.0です。
--disable-fullscreen
フルスクリーンモードを無効化(デフォルト)。
--enable-fullscreen
フルスクリーンモードを有効化。
--shading-flat
最も速いモードですが、地形が見苦しくなります! このオプションは、画像プロセッサが本当に遅い場合に役立つかもしれません。
--shading-smooth
推奨設定(デフォルト)。実に素晴らしい見え方になります。
--disable-skyblend
霧やかすみの無い空を単色で表示。速いけど見苦しい!
--enable-skyblend
霧やかすみを有効にし、空や地形が本物っぽく見えます。 これがデフォルトであり推奨する設定です。
--disable-textures
地形の細部を無効化。 見苦しいけれども画像ボードが遅い場合に役立つかもしれません。
--enable-textures
デフォルトの推奨設定。
--enable-wireframe
FlightGearの世界が内部ではどのように見えるか知りたければ試してみましょう!
--disable-wireframe
ワイヤーフレーム無し。デフォルト。
--geometry='''WWWxHHH
ウィンドウサイズを定義。 WWWxHHHは例えば640x480800x6001024x768になります。
--view-offset=xxx
デフォルトの前方視界の向きを真正面に対するずれとして設定。 設定可能な値は、LEFTRIGHTCENTER、または度単位の特定の数値です。 マルチウィンドウディプレイで有用です。
--visibility=meters
視程の初期値をメートルで設定。
--visibility-miles=miles
視程の初期値をマイルで設定。

3.5.7 ヘッドアップディスプレイ (HUD) オプション

--hud-tris
レンダリングされた三角形の数をHUDに表示。
--hud-culled
間引かれた三角形の割合をパーセントでHUDに表示。

3.5.8 時刻オプション

--time-match-real
現実世界の時刻に同期。
--time-match-local
現実世界の現地時間に同期。
--start-date-sys=yyyy:mm:dd:hh:mm:ss
システム時間に対する開始日時を指定。
--start-date-gmt=yyyy:mm:dd:hh:mm:ss
グリニッジ標準時に対する開始日時を指定。
--start-date-lat=yyyy:mm:dd:hh:mm:ss
機内時間に対する開始日時を指定。

基本的には、--time-match-realが最初に使われるオプションです。 シミュレータ内の時刻はシステムクロックから読み込まれて、そのまま使われます。 シミュレータの時計はクロックと同期しているので、コンピュータのある場所と同じタイムゾーンの地域を仮想的に飛行する場合にはこのオプションが望ましいです。 けれども、世界の異なる箇所を飛行するときはそうではないかもしれません。 なぜならば、あなたのコンピュータと仮想的に飛行している場所との間には多くの時差があるからです。

--time-match-localオプションは、これを考慮して、あなたのいる現実世界と仮想的に飛行している場所とのタイムゾーンの差を計算します。 そして現地時間に同期します。

その後の3つのオプションは、起動日時を正確に特定するために使われます。 3つのオプションの違いは、コンピュータのシステム現地時間、グリニッジ標準時、仮想フライト内の現地時間のどれを基準点にとるかです。

以上5つのオプションは排他的に使われるように設計されています。 しかし、これらの機能によって設定された値は--time-offset機能を使って修正できます。 この機能は、他の機能によってすでに設定されている値に、指定した時間を加えます。

3.5.9 ネットワークオプション

--httpd=port
指定ポートでhttpサーバを有効化。
--telnet=port
指定ポートでtelnetサーバを有効化。
--jpg-httpd=port
指定ポートでスクリーンショット用httpサーバを有効化。
--enable-network-olk
Oliver Delises氏のマルチパイロットモードを有効化。
--disable-network-olk
Oliver Delises氏のマルチパイロットモードを無効化(デフォルト)。
--net-hud
ネットワーク情報をHUDに表示。
--net-id=name
自分のコールサインを指定。

3.5.10 ルート・ウェイポイントオプション

--wp=ID[@alt]
GCオートパイロットにウェイポイントを指定。 このコマンドを多数列挙することにより、複数のウェイポイント(すなわちルート)を指定できます。
--flight-plan=[file]
ウェイポイントがいくつもあるときに便利。 読み込むファイルを指定できます。

注意: これらのオプションは、自分が何をしているか分かっている上級ユーザ向けです。

3.5.11 入出力(I/O)オプション

--garmin=params
Garmin GPSプロトコルを使ってコネクションを張る。
--joyclient=params
Agwagonジョイスティックにコネクションを張る。
--native-ctrls=params
FGネイティブコントロールプロトコルを使ってコネクションを張る。
--native-fdm=params
FGネイティブFDMプロトコルを使ってコネクションを張る。
--native=params
FGネイティブプロトコルを使ってコネクションを張る。
--nmea=params
NMEAプロトコルを使ってコネクションを張る。
--opengc=params
OpenGCプロトコルを使ってコネクションを張る。
--props=params
双方向的なプロパティマネージャを使ってコネクションを張る。
--pve=params
PVEプロトコルを使ってコネクションを張る。
--ray=params
Ray Woodworthモーションチェアプロトコルを使ってコネクションを張る。
--rul=params
RULプロトコルを使ってコネクションを張る。
--atc610x
atc610xインターフェースを有効化。

3.5.12 デバッグ用オプション

--trace-read=params
あるプロパティに対する読み込みをトレース。 複数列挙できます。
--trace-write=params
あるプロパティに対する書き込みをトレース。 複数列挙できます。

3.6 ジョイスティック・サポート

キーボード一つで機械を制御するセスナのパイロットを想像できますか? 飛行感覚を正しく得るためには、ジョイスティックまたはヨーク(操縦桿)に加えてラダー(方向舵)ペダルが必要ですよね? ですが、いくつかのオペレーティングシステム用に市販されているジョイスティックやフライトスティック、ヨーク、ペダルなどには種々様々な組み合わせがあるので、FlightGearにおけるジョイスティック・サポートは重要です。

FlightGearには、どんなジョイスティックやヨーク、ペダルが取り付けられても自動的に検出するジョイスティック・サポートが統合されています。 とにかくお試しください! もしうまく動作しなくても、がっかりせずに落ち着いて! FlightGearのメニューから Help -> Joystick Information を選ぶと、あなたのどのジョイスティックが検出されているのかを見ることができます。

残念なことに、FlightGearでサポートされた(恐らく英語以外の)オペレーティングシステムと、市販のジョイスティックの組み合わせによっては、うまく動作しないことがあります。 基本的には、うまく動かすためには2通りのアプローチ方法があり、前者をお勧めします。

訳注: 下記の「Windowsユーザ向けのいくつかのヒント」には、日本のWindowsユーザにとって重要な情報が記載されています。 また現状にそぐわないファイルのパスは原文から変更し、特に断り無く3.1.1の$FG_ROOTを用いて書き直しました。-toshi

3.6.1 内蔵されているジョイスティック・サポート

全般的な留意点

ジョイスティックの自動検出を有効にするためには、各ジョイスティックごとに、ジョイスティック・バインディング用のxmlファイルが存在する必要があります。 このファイルには、どの軸とボタンがFlightGearのどの機能を操作するのに使われるのかが記載されています。 軸またはボタンを機能に関連付けることを「バインディング」と呼びます。 全てのバインディング・ファイルを探す場所をFlightGearに伝える役目をするのは、ジョイスティック記述ファイル

$FG_ROOT/joysticks.xml

です。このファイルの中に対応する項目があるならば、バインディング・ファイルはどんな名前でも許容されます。 後ほど、例を使って説明します。

いくつかのメーカのジョイスティックに対しては、数種類のバインディング・ファイルがメーカごとに名前の付いたフォルダの中に含まれています。 例えば、もしCH Productsのジョイスティックをお持ちなら、

$FG_ROOT/Input/Joysticks/CH

というフォルダを見て、ご自身のジョイスティックが動きそうなファイルを探してください。 そのようなファイルが存在し、ご自身のジョイスティックが他のアプリケーションで動作しているならば、FlightGearの初回起動時にそのジョイスティックは動作するはずです。 そのようなファイルが存在しない場合は、後節で、FlightGearに含まれるサンプルからカット&ペーストしてファイルを作成する方法について説明します。

 

ジョイスティックが有効であることの確認

あなたのコンピュータはジョイスティックを認識していますか? Linux環境下でこの質問に答える一つの方法として、システムを再起動してすぐにコマンドラインで

dmesg | grep Joystick

と入力する方法があります。 これは、ブート・メッセージをgrepにパイプして、ブート・メッセージ内で"Joystick"という文字列を含む全ての行を表示します。 もしSaitekのジョイスティックが接続されているならば、以下と似たような行を見ることができるでしょう。

input0: USB HID v1.00 Joystick [SAITEK CYBORG 3D USB] on usb2:3.0

この行から、ジョイスティックがオペレーティングシステムに対してSAITEK CYBORG 3D USBと名乗っていることが分かります。 このことから、ジョイスティックのドライバからあなたのジョイスティックが見えている、と言うことはできません。 Windows環境下で動作している場合には上記の方法は使えませんが、次の項に進んでください。

 

ドライバがジョイスティックを認識していることの確認

FlightGearには、js_demoと呼ばれるユーティリティが同梱されています。 これは、システムに接続されているジョイスティックの番号、それぞれの名称、能力を報告します。 Linux環境下では、 FlightGear/bin フォルダから次のようにしてjs_demoを実行できます。

$ cd /usr/local/FlightGear/bin
$ ./js_demo

Windows環境下では、コマンドプロンプト(スタート/すべてのプログラム/アクセサリ)を開き、FlightGearのバイナリ・フォルダに行って以下のようにプログラムを起動します(FlightGearは c:\Program Files\FlightGear にインストールされていると仮定)。

c:
cd "\Program Files\FlightGear\bin"
js_demo.exe

訳注: FlightGear v1.9.0 には js_demo.exe は含まれていません。

私たちの環境では、最初の何行かの出力はこのようになります(スクロールが早くて画面を通り過ぎてしまう場合はCtrl-Cでプログラムを止めてください!)。

Joystick test program.
~~~~~~~~~~~~~~~~~~~~~~
Joystick 0: ``CH PRODUCTS CH FLIGHT SIM YOKE USB''
Joystick 1: ``CH PRODUCTS CH PRO PEDALS USB''
Joystick 2 not detected
Joystick 3 not detected
Joystick 4 not detected
Joystick 5 not detected
Joystick 6 not detected
Joystick 7 not detected
+--------------------JS.0----------------------+--------------------JS.1----------------------+
| Btns Ax:0 Ax:1 Ax:2 Ax:3 Ax:4 Ax:5 Ax:6      | Btns Ax:0 Ax:1 Ax:2                          |
+----------------------------------------------+----------------------------------------------+
| 0000 +0.0 +0.0 +1.0 -1.0 -1.0 +0.0 +0.0   .  | 0000 -1.0 -1.0 -1.0   .    .    .    .    .  |

まず注目していただきたいのは、ドライバによって認識されたジョイスティックがそれぞれ何番に割り当てられたのかをjs_demoが報告することです。 また、各ジョイスティックが報告する"名称"が引用符の間に含まれることにも注目してください。 この名称は、各ジョイスティックに対するバインディングxmlファイルを記述しようとする際に必要になります。

 

軸とボタンの番号付けの特定

js_demoを用いて、軸とボタンの番号を以下のようにして特定することができます。 ジョイスティックの軸とボタンを操作しながらjs_demoの出力を観測することにより、ジョイスティックのそれぞれの軸とボタンがどの軸番号とボタン番号に割り当てられているかを決定することができます。 一般的に、番号は0から始まることに注意してください。

ボタンは2進数として内部で処理されており、0ビット目(最下位ビット)はボタン0を、1ビット目はボタン1を表しています。 しかしながら、画面上の番号は16進法で表示されます。つまり、以下のようになります。

0001 → ボタン0が押されている
0002 → ボタン1が押されている
0004 → ボタン2が押されている
0008 → ボタン3が押されている
0010 → ボタン4が押されている
0020 → ボタン5が押されている
0040 → ボタン6が押されている
... など。最大で ...
8000 → ボタン15が押されている
... そして ...
0014 → ボタン2と4が同時に押されている
... など。

Linuxユーザに対しては、ジョイスティックの"名称"や各軸とボタンに割り当てられた番号を特定するもう一つのオプションがあります。 たいていのLinuxのディストリビューションには"jstest"という非常に手軽なプログラムが含まれています。 CH Productのヨークがシステムに接続されている場合、jstestによって以下の出力行が表示されます。

jstest /dev/js3
Joystick (CH PRODUCTS CH FLIGHT SIM YOKE USB ) has 7 axes and 12 buttons. Driver version is 2.1.0
Testing ... (interrupt to exit)
Axes:  0:     0  1:     0  2:     0 3:     0 4:     0 5:     0 6:     0 Buttons:  0:off  1:off 
2:off  3:on  4:off  5:off  6:off  7:off  8:off  9:off  10:off  11:off

括弧で挟まれた"名称"に注目してください。 これが、あなたのジョイスティックにシステムが関連付けている名称です。

コントローラのどれかを動かすと、その動かしているコントローラに対応する軸番号の後の数字が変わります。 ボタンのどれかを押すと、押しているボタンに対応するボタン番号の後のoffがonに変わります。 このようにして、2進法に混乱させられることなく、それぞれの操作に対する軸番号とボタン番号を素早く書き出すことができます。

 

ジョイスティック・バインディング用xmlファイルの記述と編集

現時点で、オペレーティングシステムとジョイスティック・ドライバの両方があなたのジョイスティックを認識していることを確認してあります。 また、オペレーティングシステムとドライバに対してあなたのジョイスティックが報告するジョイスティックの"名称"を特定するためのいくつかの方法も分かりました。 すると、どの軸やボタン、対応する番号に対して何の制御機能を割り当てたのかを記述したリストが必要になることでしょう。

前述のjs_demoやjstestを使って(紙と鉛筆で)以下の表を作成してください。 ここでは、ハットスイッチに連動する2軸を含む5つの軸があると仮定しています。

軸 (Axis)ボタン (Button)
エレベータ (elevator) = 0視界切替 (view cycle) = 0
ラダー (rudder) = 1全ブレーキ (all brakes) = 1
エルロン (aileron) = 2トリムアップ (up trim) = 2
スロットル (throttle) = 3トリムダウン (down trim) = 3
左右ハット (leftright hat) = 4フラップ下降 (extend flaps) = 4
前後ハット (foreaft hat) = 5フラップ上昇 (retract flaps) = 5
回転数減少 (decrease RPM) = 6
回転数増加 (increase RPM) = 7

仮に、ジョイスティックがシステムとドライバに提供する"名称"が「QUICK STICK 3D USB」であるとしましょう。 FlightGearに含まれる例を用いて、今のところサポートされていないジョイスティックを自動認識させる一番簡単な方法は、既存のバインディング用xmlファイルを編集することです。 $FG_ROOT/Input/Joysticks/ サブフォルダ内のxmlファイルをご覧ください。 FlightGearで提供されているいくつかのxmlバインディング・ファイルを評価した後に、私たちは次のファイルを編集することに決めます。

$FG_ROOT/Input/Joysticks/Saitek/Cyborg-Gold-3d-USB.xml

このファイルには、軸に割り当てられた上記の全ての軸機能と、ボタンに割り当てられた上記の全てのボタン機能が含まれています。 このため、些細な編集で済みます。

編集を始める前に、バインディング用xmlファイルに対する名前を決め、QSジョイスティック用のフォルダを作成し、元となるxmlファイルをこのディレクトリにこの名前でコピーする必要があります。

$ cd /usr/local/FlightGear/Input/Joysticks
$ mkdir QS
$ cd QS
$ cp /usr/local/FlightGear/Input/Joysticks/Saitek/Cyborg-Gold-3d-USB.xml QuickStick.xml

ここでは、/usr/local/FlightGear にFlightGearがインストールされたLinux/UNIXシステムを仮定しました。 c:\Program Files\FlightGear\ にFlightGearがインストールされたWindowsでの同様な手順としては、コマンドプロンプトを開いて以下を入力してください。

c:
cd "\Program Files\FlightGear\data\Input\Joysticks"
mkdir QS
cd QS
copy "\Program Files\FlightGear\data\Input\Joysticks\Saitek\Cyborg-Gold-3d-USB.xml" QuickStick.xml

次に、QuickStick.xmlをお好みのエディタで開いてください。 ジョイスティック名を変更することを忘れてしまう前に、<name>を含む行を検索してください。

<name>SAITEK CYBORG 3D USB</name>

という行が見つかりますので、以下のように変更してください。

<name>QUICK STICK 3D USB</name>

この行は、xml文書の重要な特色を明らかにしています。 それは、<タグ>で始まり、</タグ>で終わるということです。

では、あなたの作った表と、コピーしたファイルの先頭にあるコメントの表を比較します。 コメントから、Saitekのエレベータは軸1に割り当てられていることが分かることに注意しましょう。

<axis n="1">

という文字列を検索して、

<axis n="0">

に変更してください。

次に、Saitekのラダーは軸2に割り当てられていることに注意してください。

<axis n="2">

という文字列を検索して、

<axis n="1">

に変更してください。

訳注: 現在のFlightGearに同梱されているCyborg-Gold-3d-USB.xmlにおけるラダー軸は、UNIXとMacでは軸2、Windowsでは軸3に割り当てられています。 例えばUnix環境でラダーの割り当てを軸2から軸1に変更したい場合は、<desc>Rudder</desc>行の後の<number>の直後の

<unix>2</unix>

と書かれた行を

<unix>1</unix>

に変更すれば良いと考えられます。-toshi

引き続き、あなたの作った表とSaitekのコメント表を比較して、軸番号とボタン番号を適宜変更してください。 QUICKSTICK USBとSaitekの軸の数は同じですが、ボタンの数は異なるので、余計なボタンの行は削除しなくてはなりません。 また、開始タグ1つ1つに対して終了タグが存在することを念入りにチェックすることをお忘れなく。 さもないと、そのxmlファイルを用いるとエラーが発生します。

何人かのユーザからの報告によると、ある機能に割り当てられる軸とボタンの番号は、同じジョイスティックでもWindowsとLinuxで異なることがあり得ます。 上述の手順を用いることで、異なるオペレーティングシステム用に作成されたバインディングxmlファイルをご自身のオペレーティングシステム用に容易に変更することが出来ます。

 

新しいバインディングxmlファイルのFlightGearへの読み込み

あなたの新しいxmlファイルをFlightGearが使用する前に、

$FG_ROOT/joysticks.xml

を編集する必要があります。 nameタグの間に入力した"名称"が、ジョイスティックによってドライバに提供された名前と一致するのであれば、あなたの新しいファイルのパスを含んだ1行を追加します。 以下の行をjoysticks.xmlに追加してください。

<js-named include="Input/Joysticks/QS/QuickStick.xml"/>

メニューのHelp -> Joystick Information を選択すると、あなたのジョイスティック設定をFlightGearがどのように解釈しているかを知ることが出来ます。

 

Windowsユーザ向けのいくつかのヒント

訳注: 日本語 Windows の環境 (特に Windows Vista) では、$FG_ROOT/joysticks.xmlの<PropertyList>行以下を修正する方法をお勧めします。-toshi

Windows で CH Pro Pedal (ジョイスティック0: 優先デバイス) と Saitek X45 (ジョイスティック1) の2台を接続している場合の設定例: -sambar

<PropertyList>
<!--
	<js-named include="Input/Joysticks/Local/X45-modified.xml"/>

	<js n="0" include="Input/Joysticks/Local/joystick_0.xml"/>
-->
	<js n="0" include="Input/Joysticks/CH/pro-pedals-usb.xml"/>
	<js n="1" include="Input/Joysticks/Saitek/X45.xml"/>
</PropertyList>

基本的には、Windows上でも上記の手順が機能します。 ご自分のジョイスティック/ヨーク/ペダルがうまく動作している、または上記の方法でうまく行ったのでしたら、そのままで結構です。 しかし、残念ながらまだいくつか問題のある方がいるかもしれません。

1つ目の問題は、non-US版のWindowsを使っているユーザに関係があります。 上述のように、ジョイスティック名はjs_demoプログラムから得ることができます。 もしnon-US版のWindowsを使っていて、上記で名づけたジョイスティックの.xmlファイルがそのような特殊なジョイスティック名を含んでいなければ、その適合するファイルの最初にその特殊な名前を以下のような形式で追加してください。

<name>Microsoft-PC-Joysticktreiber </name>

joysticks.xmlベースファイルには新しい項目は要りません。

訳注: 日本語Windowsの環境では、

<name>Microsoft PC ジョイスティック ド</name>

<name>Microsoft-PC-Joysticktreiber </name>

のような設定は動作しません。-toshi

不幸にして、Windows上のジョイスティックサポートにはもうひとつの抜け穴があります。 2つのUSBデバイス (例えばヨークとペダル) を取り付けている場合、同じドライバ名が二重に報告されてしまう可能性があります。 このケースでは、(0と1の中から)0番にヨークを割り当てることにより、少なくともヨークを動作させることができるようになります。 このために、エルロンを制御するヨークを回してjs_demoの出力を見てください。 コロンの最初のグループ(device0用)の図形が変化すれば、正しく割り当てられています。 もしコロンの2番目のグループ(device1用)の図形が変化するならば、まずは優先デバイスがヨークになるようにしなくてはなりません。 そうするためには、Windowsの「コントロール パネル」に入り、(訳注: クラシック表示で)「ゲーム コントローラ」を開き、「詳細設定」ボタンを選択してください。 ここで「優先」デバイスにヨークを選ぶことができます。 その後、もう一度js_demoを実行して割り当てを確認してください。 今度はヨークが図形の最初のグループをコントロールするはずです。

残念ながら、同じ方法を使ってペダルも操作できるようにする方法は分かっていません。 したがって、このようなケースなどにはジョイスティックコントロールを割り当てる別の方法を試してみることになるかもしれません。

3.6.2 .fgfsrcを経由するジョイスティック・サポート

幸運なことに、これまでのファイルの記述言語であるXMLの経験が無いであろう平均的なユーザにも簡単に扱えるツールが現在は存在します。

この手法を使ってジョイスティックを設定するためには、コマンドシェル(Windowsではコマンド プロンプトであり、スタート|すべてのプログラム|アクセサリ にあります)を開いてください。 そして、/FlightGear/binにディレクトリを移動してください。 例えばこのようになります(ご使用の環境に合わせて修正してください)。

cd "c:\Program Files\FlightGear\bin"

そして、fgjsツールを起動します。 UNIX/Linuxマシンでは、

./fgjs

Windowsマシンでは、

fgjs

と入力します。 このプログラムは、どのジョイスティックが検出されたのかを(もし存在すれば)知らせてくれます。 では、画面に表示される指示に従ってください。 すなわち、要求されるとおりに軸を動かし、ボタンを押してください。 軽く触れるだけでも動作にカウントされることに注意してください。 画面上のレポートをチェックしてしてください。 もし何かおかしいと感じたら、単にプログラムを再起動してください。

全ての軸とスイッチが終了したら、上記のディレクトリ内にfgfsrc.jsというファイルが作成されます。 もしFlightGearのルートディレクトリFlightGearにオプションファイル.fgfsrc(UNIX)/system.fgfsrc(Windows)が含まれていなければ、単にFlightGearディレクトリにコピーして、

fgfsrc.js.fgfsrc(UNIX)/system.fgfsrc(Windows) に

名前を変えてください。

訳注: .fgfsrc と system.fgfsrc のありかについては、3.5 コマンドライン パラメータ をご覧ください。

オプションファイルを作成済みであった場合は、テキストエディタでfgfsrc.jsを開き、中身をコピーして.fgfsrc/system.fgfsrcの中に追加してください。 1つのヒントとして、fgjsの出力はUNIX形式です。 そのため、WIndowsのエディタ(訳注: メモ帳)では正常に表示できないかもしれません。 お勧めは、UNIXファイルも取り扱えるエディタを入手することです。 私の好みのフリーウェアのファイルエディタは、幾分と時代遅れですが、未だにPFEであり、以下から入手できます。

http://www.lancs.ac.uk/staff/steveb/cpaap/pfe/ (訳注: リンク先修正)

訳注: 上記は英語用テキストエディタですが、(メモ帳以外の)日本語用テキストエディタも大半はUNIXの改行コードに対応しています。 http://www.vector.co.jphttp://www.forest.impress.co.jp などでお好みのテキストエディタを探してみることをお勧めします。

fgjsの軸・ボタンの割り当ては、少なくとも正しく軸を割り当てますが、その出力はちょっと調整する必要があるかもしれません。 本来とは反対方向に動いてしまう軸があったり、不感帯が小さすぎたりなどの現象が起きるかもしれません。 例えば、USB CH Flightsim Yoke を Windows XP で用いたときは、

prop:/input/joysticks/js[1]/axis[1]/binding/factor=-1.0

から

prop:/input/joysticks/js[1]/axis[1]/binding/factor=1.0

に修正しなくてはなりませんでした。 そこで、ジョイスティックのプロパティの割り当てについての短い紹介をここに記します。

基本的に、全ての軸の設定は以下の構造からなる行を通じて指定します。

--prop:/input/joysticks/js[n]/axis[m]/binding/command=property-scale (1行)

--prop:/input/joysticks/js[n]/axis[m]/binding/property=/controls/steering option (1行)

--prop:/input/joysticks/js[n]/axis[m]/binding/dead-band=db (1行)

--prop:/input/joysticks/js[n]/axis[m]/binding/offset=os (1行)

--prop:/input/joysticks/js[n]/axis[m]/binding/factor=fa (1行)

ここで、

nデバイス番号 (通常は0から始まる)
m軸番号 (通常は0から始まる)
steering optionelevator, aileron, rudder, throttle, mixture, pitch のいずれか
dead-bandその信号が破棄される範囲、ヨークの微小な動きによるジッタを避けるのに便利
offsetデバイスがニュートラル・ポジションにならない時に指定
factorその軸の感度を制御、+1がデフォルト、-1で逆方向に動作

これらの行に従って、あなたのジョイスティックは少なくとも動作するようになるはずです。 例えばジョイスティックのボタンを動作するようにすることなどさらに細かい点を考慮して、John Check氏が非常に有用なREADMEを書いています。 それはFlightGearベースパッケージに含まれており、FlightGear/Docs/Readme/Joystick.htmlにあります。 入力デバイスに関するどんなトラブルの場合でも、このドキュメントを読むことを強くお勧めします。


編集メモ


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS