RSSセンター
メイン | 簡易ヘッドライン |
XCSoarをCondorのフライト中に使う (2022/7/11 16:54:25)
これまで何回かXCSoarを使いましょうとご案内してきましたが、VRを使っている場合やCondorと同じPCでXCSoarを使っていると操作をすることが難しくて悩ましかったところ、この度ようやくAutoHotKeyを使ってCondorのフライト中にも直接操作できるようなスクリプトを作ることができたのでご紹介します。
スクリプトのダウンロードページは こちら 。ナビゲーションメニューにもダウンロードページへのリンクがあります。
さて、そもそもなぜこんなことを説明しないといけないかというと、Condorは全画面表示で使うことがほとんどであり、VRを使っている場合や一画面でCondorを楽しんでいる場合はXCSoarが裏側に回ってしまい直接操作ができません。そのためAlt+Tabキーを使ってアクティブなアプリを切り替えて操作するのですが、そうするとCondorが裏側に回っている間にグライダーが思わぬ動きをしてしまうことがあって、時としてVneを超えてしまったり墜落してしまいがっかりすることがあります。そこで、こうした問題を回避するため、XCSoarが非アクティブWindowのままキーボードやジョイスティックから直接命令を伝えようというのが今回のテーマです。なお、以下の説明はXCSoarを外部のスマホやタブレットで使う場合は該当しないのでご注意ください。
では、細かいところは少しは処理ながらも順に設定のしかたを説明してみたいと思います。もし分からないところやうまくいかないところがあれば投稿への返信で書き込んでみてください。
Naoki_nt3
「XCSoarをCondorのフライト中に使う」
1.まずはCondorのNMEAデータをXCSoarで受信できるようにします。これには二通りの方法があって
(1)シリアル接続で接続する。これはPC内でシリアルポートをブリッジするユーティリティを使って接続する方法です。接続の仕方を解説しているブログ記事は こちら 。
(2)TCP接続で接続する。これはPCの特殊な自己IPである127.0.0.1(localhost)を経由してTCPで接続する方法です。 こちら のCondorのManualのAPPENDIX 5 - EXTERNAL PDAの説明を参考にCondorのシリアル出力をPC自己アドレスの127.0.0.1にTCP出力し、XCSoar側ではConfig→DevicesでportはTCP portに設定、port番号は4353, driverはCondor Soaring Simulatorに設定します。なお、これは通常のルータ経由のネット接続とは別物ですので通常のネット接続の設定をいじる必要はありません。
2.次にCondorを全画面表示/VR表示している時に非アクティブなXCSoarを一番手前に表示するユーティリティを導入します。
(1)VRの時はSteam StoreにあるVR用のオーバーレイユーティリティを利用する。(残念ながらまだ私はこの方法ができていないのでうまく説明できないのですが、次項以降のAutoHotKeyの利用については活用可能なのでVRを使っている方も以下の説明を続けてご覧ください。)
(2)モニターで全画面表示をしている時はPC用のオーバーレイユーティリティを利用する。私が見つけたのは 4T Tray というアプリ。これは無料版でもCondor用途には十分であり、透過率の調整はできないもののXCSoarのWindowを少し半透明化することができるので視界が遮られるのを若干軽減できます。使い方は こちら 。
3.さて、ここで一旦XCSoarに戻って、いくつかXCSoarを直接PCのキーで操作できない項目があるのでそれらに任意のキーをアサインします。私が設定したのは以下の命令。
・MC値のAuto/Manualのトグル、+0.1、-0.1(今回はm, a, zキーに設定)
・AATタスクの時のARM(次のTPに向かう)、前のTPに戻る(今回はs, xキーに設定)
まずは、スクリプトダウンロードページから取り出した設定ファイル(Condor_keyset.xci)をDocumentフォルダのXCSoarDataフォルダにコピーしてから、XCSoarでConfig→System→Look→Language, Inputに移動し、Events欄をクリックして先にダウンロードした設定ファイルを選択する(読み込みは次回XCSoarを開いた時)。設定内容はこの設定ファイルを適当なテキストエディタで開いて確認しておいてください。
4.次はAutoHotKeyの導入。これは強力なユーティリティであり、Googleで調べると使い方は簡単に出てくるのですが、問題はCondorを使っている時に非アクティブなXCSoarに命令を送るためのスクリプトが必要であること。
私が作成したスクリプトは こちらの本家Condorフォーラム で紹介されていた jorgemarmor さんのスクリプトを少し改良したもので、Joystickをモニターする設定をすべて削除してあります。私はJoystickはKeyToJoyというユーティリティを使って制御しているのでそうした項目は削除してありますので、もし直接Joystickのボタンを使いたいという方は元のスクリプトを参考に改良してください。
さて、このスクリプトを解読してみると、XCSoarを使うためにCtrl+Alt+文字キーのショートカットキーを作成して割当をしているのですが、どのショートカットキーがどのXCSoarの操作になるのかはスクリプトファイルを適当なテキストエディターで開いてコメント行を見ていただければすぐに分かると思います。もし何かのショートカットキーとかぶっているようであれば他のショートカットキーに変更してみてください。
Controlキー:^
Altキー:!
Windowsキー:#
Shiftキー:+
5.これでCondorのフライト中にAutoHotKeyで設定したショートカットキーをキーボードでたたけば操作できるのですが、他のショートカットキーとの重複を避けるためCtrl+Alt+というややこしいショートカットになっているので実用的ではありません。そこで今回設定したショートカットをジョイスティックかマクロキーボードに設定します。
私はキーボード操作ができるようにこちらのKoolertronの23キーのキーボードを使っているのですが、Amazonで 45キー+ロータリーエンコーダの物 がでていました。これ欲しい。
ジョイスティックに命令を設定したい方は JoytoKey の用なユーティリティをお使いください。
私がキーボードに設定したXCSoarの命令は以下の通り
・カーソルキー:通常マップ上では(↑・↓ 拡大縮小)(→・← ページ切り替え)、設定画面に入ったらカーソルキーとして挙動するのですがちょっと癖あって慣れが必要。
・エンターキー:Ctrl+Alt+e
・エスケープキー:Ctrl+Alt+k
・機体選択:Ctrl+Alt+3, Ctrl+Alt+7 (これで設定画面まで入れたのですが残念ながら私の環境ではカーソルがうまく動いてくれないのでその先がうまく使えません。)
・バラスト設定:Ctrl+Alt+6 フライト中にバラストを放出する時はここでEnterキー(Ctrl+Alt+e)を入力するとDump/Stopの操作ができる。設定終わったらエスケープ(Ctrl+Alt+k)で戻る。
・前のTPに戻る(スタートのやり直し時に良く使う):Ctrl+Alt+1, Ctrl+Alt+7, Ctrl+Alt+k(メニューを順番にたどって操作。XCSoarのイベントで設定できればもっとスマートにいけるのですが、XCSoarの命令がよく分かりません。)
・次のTPに進む(TPクリアが自動判定されなかった時に使う):Ctrl+Alt+1, Ctrl+Alt+8, Ctrl+Alt+k
(これ以降はXCSoar側でイベントファイルを使って設定した命令)
・MC値のAuto/Manualのトグル:Ctrl+Alt+m
・MC増(+0.1):Ctrl+Alt+a
・MC減(-0.1):Ctrl+Alt+z
・AATタスク時のArm、次のTPに向かう:Ctrl+Alt+s
・AATタスク時に前のTPに向かう:Ctrl+Alt+x
私が設定したのは以上ですが、他にもXCSoarで設定できるイベントの情報や私はこんな命令を設定したいといったご意見あればコメントをお願いします。
Naoki_NT3