FrontPage > FlightGearマニュアル > 第3章
このドキュメントは http://www.flightgear.org/Docs/getstart/getstartch3.html の日本語訳です。
Table of Contents |
FlightGear を起動するために必須の環境変数が2つあります。 これらは、データとシーナリーのありかを FlightGear に伝えます。
プラットフォームや必要性により様々に設定できます。
これは、航空機や航空標識の位置、空港の周波数といったデータファイルを FlightGear が探す場所になります。 FlightGear をインストールした場所の data サブディレクトリがそれです。 例えば、/usr/local/share/FlightGear/data や c:\Program Files\FlightGear\data になります。
これは FlightGear がシーナリー・ファイルを探す場所になります。 ディレクトリのリストからなり、書かれた順に検索が行われます。 ディレクトリの区切り文字は、Unix では ":"、Windows では ";" になります。 例えば、
/home/joebloggs/WorldScenery:/usr/local/share/FlightGear/data/Scenery
あるいは
c:\Program Files\FlightGear\data\Scenery;c:\Program Files\FlightGear\data\WorldScenery
のようになります。
Windows のグラフィカル・ウィザードと Mac OS X の GUI ランチャーはこれらの環境変数を内部で定義してるので、自分の手で定義する必要はありません。 ですが、コマンドラインから FlightGear を実行したい場合にはこれらの環境変数を明示的に定義する必要があります。
FlightGear を実行する前に、いくつかの環境変数を設定する必要があります。
例) /usr/local/share/FlightGear/data
例) $FG_ROOT/Scenery:$FG_ROOT/WorldScenery
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節に書かれています。
ビルド済みの Windows バイナリを使うと、グラフィカルなウィザードを用いて FlightGear を起動することができます。 スタートメニューの FlightGear Launcher、またはデスクトップアイコンを単純にダブルクリックしてください。 ランチャーでは、航空機や起動時の空港と滑走路、時刻、現在の気象状況、その他の数多くの設定を選ぶことができます。
初回起動時に、変数 FG_ROOT (通常は c:\Program Files\FlightGear\data)と FG_SCENERY を設定するように求められるかもしれません。 FG_SCENERYはあなたがインストールしたシーナリーのディレクトリのリストで、典型的には c:\Program Files\FlightGear\data\scenery になります。
無効な値を設定してしまったり、後からシーナリーのディレクトリを変更した場合は、ランチャーの最初のページから"Prev"ボタンで戻って設定を変更することができます。
もう一つの方法として、コマンドラインから FlightGear を実行できます。 これを行うには、環境変数 FG_ROOT と FG_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
- (原文) --> (日本語訳) の順
- SET FG_HOME="c:\Program Files\FlightGear" --> SET FG_HOME=c:\Program Fi les\FlightGear
- SET FG_ROOT="c:\Program Files\FlightGear\data" --> SET FG_ROOT=c:\Program Files\FlightGear\data
- SET FG_SCENERY="c:\Program Files\FlightGear\data\Scenery" --> SET FG_SCENERY=c:\Program Files\FlightGear\data\Scenery
Mac OS X 用のビルド済みバイナリパッケージには GUI ランチャーが含まれています。 /Applications フォルダーの FlightGear アイコンをダブルクリックするだけで図5のような GUI ランチャーのウィンドウが表示されます。 ランチャーで出来ることは以下のとおりです。
以下の節ではこれらの機能を使って説明します。
ランチャーウィンドウで、機体名/空港名の右端にあるギアのボタンをクリックすると航空機と空港を選択できます。 ウィンドウの画像パネルには選択した航空機のサムネール画像が表示されます。 ここで選択する空港はフライト開始地点になります。 FlightGear が使用する ICAO 4レター空港コードは、1〜2文字のプリフィックスと2〜3文字の空港コードからなります。 たとえば、サンフランシスコ国際空港の ICAO コードは KSFO です。 ここで「K」はアメリカ合衆国のプリフィックスで、SFO はサンフランシスコ国際空港の空港コードになります。 空港や航空機を探し出すには、拡張機能 >> 位置 や 機体 タブを使います。
ランチャーウィンドウにある 風景の自動ダウンロード にチェックすると、TerraSync を使ってシーナリーデータを飛行中にダウンロードします。 シーナリーのダウンローダは、シーナリーデータを
/Applications/FlightGear.app/Contents/Resources/data/Scenery-Terrasync
にインストールします。
Mac 版 FlightGear には、フライトプランを手助けするためのナビゲーションマップ Atlas がユーザの便宜のために含まれています。 このオプションをチェックすると、飛行開始時に Atlas が自動的に起動します。 Atlas のオプションを指定する必要はありません。 GUI ランチャーが指定してくれます。
飛行開始 ボタンをクリックするともうひとつのウィンドウが開きます。 これが FlightGear メインウィンドウです。 FlightGear は直ちにシミュレーションに必要な大量のデータをロードし始めます。 遅いマシンでは全てをロードし終わるまでにしばらく時間がかかるかもしれません。
FlightGear は起動時に、たくさんの機能やオプションを指定することができます。 このうちのいくつかは、FlightGear メインウィンドウにあるメニューからは変更することができません。 これらの機能を有効/無効にするには、ランチャーウィンドウの左下にある三角形のボタンをクリックしてください。 すると、拡張機能の各タブが表示されます。 全ての設定は保存されるため、再設定する必要はありません。
これらのタブはいくつかの FlightGear オプションを指定します。
に保存します。$HOME/.fgfs/autosave.xml
◎ お気に入りタブ
お気に入りリストはウェブブラウザのブックマークのようなもので、現在のオプション設定に名前をつけて保存する手段を提供します。 現在のオプション設定を保存するには、ウィンドウ上部、あるいは お気に入りタブの下部にある "+" ボタンを押してください。 お気に入りに追加した後は、お気に入りタブの表にある行をダブルクリックすることで他の設定に切り替えることができます。 表形式の "-" ボタン (あるいは delete キー) を押すと、選択したお気に入りを削除します。
◎ 位置タブ
空港や航空母艦を見つけるには、フィルターテキスト領域にキーワードを入れて検索します。 入力可能なキーワードは以下の通りです。
キーワードに一致した空港と空母はフィルタのテキスト領域の下に表形式で表示されます。 上部の枠の空港名は、現在選択されている空港または空母と同期しています。 上部の枠の空港名の右端にあるギアボタンをクリックしてこのタブを開くこともできます。
空港を選択すると、"滑走路" ポップアップボタンに選択可能な滑走路が表示されます。 滑走路を選択するか、あるいは "デフォルト" のままにしておくことができます。
◎ 機体タブ
航空機を見つけるには、フィルタのテキスト領域にキーワードを入れて検索します。
キーワードに一致した航空機のリストはフィルタのテキスト領域の下に表形式で表示されます。 上部の枠の機体名は、現在選択されている航空機と同期しています。 上部の枠の機体名の右端にあるギアボタンをクリックしてこのタブを開くこともできます。
もっとたくさんの航空機データをインターネットから探したければ、機体タブの下にある "機体を取得" ボタンをクリックします。 するとウェブブラウザが開いて、FlightGear Mac OS X ウェブサイトにある Aircraft Links ページに飛びます。 そこからいくつかのリンクをたどってお好みの航空機をダウンロードしてください。 航空機をダウンロードしたら、"その他" タブを開いてインストールしてください。
航空機を検索するときに変な挙動が起きた場合は、航空機データベースのキャッシュファイルを削除すると問題が解決するかもしれません。 /Applications/Utilities/Terminal.app を開き、以下のコマンドを打ってキャッシュファイルを削除してください。
cd /Applications/FlightGear.app/Contents/Resources
rm AircraftCache.rb
ビルド済みバイナリパッケージのディスクイメージをマウントしたときに、そこからは FlightGear を起動しないように注意してください。 マウント状態のディスクイメージ内のフォルダは読み取り専用なので、アドオンデータをインストールすることはできません。 FlightGear をインストールするには、マウントしたディスクイメージから FlightGear アイコンを /Applications フォルダにコピーする必要があります。
◎ ネットワークタブ
このタブには、2つのネットワーク機能が含まれています。 1つはマルチプレーヤモードで、もう1つは FGCOM (音声 ATC) です。 マルチプレーヤモードを有効にするには、以下を指定します。
FGCOM を有効にすると、無線機の設定を使って実際の声で通話することができるようになります。 スペースバーを押している間、選択した無線周波数 (COM1) で話すことができます。 他のプレーヤが同一周波数かつ有効範囲内でしゃべっていれば、その声を聞くことができます。 以下のリストは、FGCOM に存在するオプションです。
FGCOM とマルチプレイについての詳しい説明は 第5章 を参照してください。
◎ その他タブ
航空機や空港、ランチャーに表示されるオプションを除くあらゆるオプションはここで指定できます。 スペース区切りのオプションを入力すると、FlightGear に追加オプションを引き渡すことができます。 "オプションを表示" を押すと、存在する全てのオプションを見ることができます。 いくつかのオプションは FlightGear をクラッシュさせてしまうかもしれません。 特定のオプションでそのようなクラッシュに遭遇したら、私たちにお知らせください。
航空機やシーナリーの追加データをインストールするには、"データをインストール" を押します。 複数のファイルやフォルダを指定して、FlightGear の data フォルダにインストールすることができます。 対応しているファイルの種類は以下の通りです。
全データのインストールが成功するとメッセージウィンドウが、それ以外の場合はエラーメッセージが表示されます。 航空機データとシーナリーデータは同時に選択できます。 航空機ファイルが含まれていないアーカイブファイルを選択した場合、data フォルダに展開はされますが無視します。 新しい航空機のインストールが完了すると、"機体" タブでその航空機を選択できるようになります。
Mac OS X のコマンドラインからシミュレータを起動することもできます。 そうする場合は、Terminal.app (/Applications/Utilities にあります) を開いて、以下のコマンドを打ちます。
cd /Applications/FlightGear.app/Contents/Resources
./fgfs --option1 --option2 ....
コマンドラインオプションに関する詳細は 3.5節 をご覧ください。 他のプラットフォームとは異なり、ビルド済みバイナリパッケージを使用している限りは、FG_ROOT や FG_SCENERY といった環境変数を手動で指定する必要はありません。
訳注: 米国 Wiki サイト内の「Command Line Options」には、本節には記載されていないオプションが掲載されていますので、あわせてご覧ください。-toshi
以下に、FlightGear に存在する数多くのコマンドラインオプションの全リストと短い説明を記します。 これらのオプションの大半は、Windows バイナリで配布される FlightGear ランチャーでも適用できます。
もし継続的に再利用するオプションがある場合は、自動的に設定したいコマンドラインオプション一式を書き込んだ設定ファイルを作成することもできます。 どんなテキストエディタ (メモ帳、emacs、お好みならvi) で作っても構いません。
訳注: 1行に1オプションを記述してください。
--time-match-local, --time-match-real とは同時に使用できません。
けれども、世界の異なる箇所を飛行するときはそうではないかもしれません。なぜならば、あなたのコンピュータと仮想的に飛行している場所との間には多くの時差があるからです。--time-match-localオプションは、これを考慮して、あなたのいる現実世界と仮想的に飛行している場所とのタイムゾーンの差を計算します。そして現地時間に同期します。
--start-date-gmt, --start-date-lat, --start-date-sys とは同時に使用できません。
注意: これらのオプションは、自分が何をしているか分かっている上級ユーザ向けです。
入出力パラメータの詳細な説明は、FlightGearのインストールディレクトリ内のDocsディレクトリにあるREADME.IOで見つけることができます。
もう1つの例:--prop:/engines/engine0/running=true
これはセスナにショートフライト用の給油をします。--aircraft=c172
--prop:/consumables/fuels/tank[0]/level-gal=10
--prop:/consumables/fuels/tank[1]/level-gal=10
キーボード一つで機械を制御するセスナのパイロットを想像できますか? 飛行感覚を正しく得るためには、ジョイスティックまたはヨーク(操縦桿)に加えてラダー(方向舵)ペダルが必要ですよね? ですが、いくつかのオペレーティングシステム用に市販されているジョイスティックやフライトスティック、ヨーク、ペダルなどには種々様々な組み合わせがあるので、FlightGearにおけるジョイスティック・サポートは重要です。
FlightGearには、どんなジョイスティックやヨーク、ペダルが取り付けられても自動的に検出するジョイスティック・サポートが統合されています。 とにかくお試しください! もしうまく動作しなくても、がっかりせずに落ち着いて! FlightGearのメニューから Help -> Joystick Information を選ぶと、あなたのどのジョイスティックが検出されているのかを見ることができます。
残念なことに、FlightGearでサポートされた(恐らく英語以外の)オペレーティングシステムと、市販のジョイスティックの組み合わせによっては、うまく動作しないことがあります。 基本的には、うまく動かすためには2通りのアプローチ方法があり、前者をお勧めします。
訳注: 下記の「Windowsユーザ向けのいくつかのヒント」には、日本のWindowsユーザにとって重要な情報が記載されています。 また現状にそぐわないファイルのパスは原文から変更し、特に断り無く3.1.1の$FG_ROOTを用いて書き直しました。-toshi
◎ 全般的な留意点
ジョイスティックの自動検出を有効にするためには、各ジョイスティックごとに、ジョイスティック・バインディング用の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 は含まれていません。
Mac OS X環境下では、Terminal.app(/Applications/Utilities/)を開き、以下の様にjs_demoを実行できます: $ cd /Applications/FlightGear.app/Contents/Resources $ ./js demo
私たちの環境では、最初の何行かの出力はこのようになります(スクロールが早くて画面を通り過ぎてしまう場合は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ファイルを用いるとエラーが発生します。
最後に、軸とボタン割り当ての変更に合わせてコメントテーブルを編集するによって、あなた自身(と、開発者MLやユーザーアーカイブに投稿した場合、それを受け取った人)に親切にしてください。 当たり前ですが、編集したら保存することを忘れないでください。 (翻訳自身無し:原文はコメント行で入れてます)
何人かのユーザからの報告によると、ある機能に割り当てられる軸とボタンの番号は、同じジョイスティックでも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 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を実行して割り当てを確認してください。 今度はヨークが数値の最初のグループをコントロールするはずです。
残念ながら、同じ方法を使ってペダルも操作できるようにする方法は分かっていません。 したがって、このようなケースなどにはジョイスティックコントロールを割り当てる別の方法を試してみることになるかもしれません。
Mac OS Xでは、HID互換ジョイスティックのほとんどが認識され、使用可能です。いくつかのジョイスティックは既にFlightGearで正しく定義されています。しかしながら、しばしばあなたのジョイスティックはジョイスティックIDが無い、ボタンまたは軸が誤って設定されていて期待通りに動作しないことがあります。このような場合には、ジョイスティックの設定ファイルを変更する必要があります。
Mac OS Xでジョイスティックを設定する基本的な手順は、前述したLinuxの場合と同じです。主な違いはジョイスティックの設定ファイルへのパスと、ジョイスティック名を見つける方法です。ジョイスティックの設定ファイルはFlightGear.appフォルダ内の、 Contents/Resources/data/Input/Joysticks にあります。GUIランチャの拡張機能>その他>フォルダを開く でデータフォルダを開くことができます。また、アプリケーションフォルダ内のFlightGearアイコンを右クリックして、"パッケージの内容を表示"を選択してもデータフォルダにアクセス出来ます。ジョイスティックの名前を見つけるには、以下の手順に従ってください:
ジョイスティックが正しく認識されても、ジョイスティックが正常に動作しない場合は、ボタンまたは軸の設定を変更する必要があります。一部のMacユーザは、ジョイスティックのねじりラダーが(本来ラダーを制御すべきですが)スロットルを制御することを報告しました。これはMac OS Xの典型的なジョイスティック誤設定です。この問題を修正するために、あなたは、ジョイスティック構成ファイルの2個の軸のタグを編集する必要があります。
多くの場合、軸2がドライバレベルで軸3に割り当てられています。ラダー(とスロットル)の問題の修正のために、Mac向けにタグを編集または追加すれば、この問題は解決します。次の例は、ジョイスティックの設定ファイルの一部で、ラダー制御を軸3に割り当てます。
axis>
<desc>Rudder</desc> <number> <linux>2</linux> <mac>3</mac> <!--(ここを2に変更してください)--> <windows>3</windows> </number>/axis>
.....
幸運なことに、これまでのファイルの記述言語である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.jp や http://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 option | elevator, aileron, rudder, throttle, mixture, pitch のいずれか |
dead-band | その信号が破棄される範囲、ヨークの微小な動きによるジッタを避けるのに便利 |
offset | デバイスがニュートラル・ポジションにならない時に指定 |
factor | その軸の感度を制御、+1がデフォルト、-1で逆方向に動作 |
これらの行に従って、あなたのジョイスティックは少なくとも動作するようになるはずです。 例えばジョイスティックのボタンを動作するようにすることなどさらに細かい点を考慮して、John Check氏が非常に有用なREADMEを書いています。 それはFlightGearベースパッケージに含まれており、FlightGear/Docs/Readme/Joystick.htmlにあります。 入力デバイスに関するどんなトラブルの場合でも、このドキュメントを読むことを強くお勧めします。
編集メモ