Tei5’s Blog

Tei5 の メモ書き

OBS / HIDMacros で 外付けキーボードをプログラマブルキーボード化

OBS Studio がかなり便利。

設定のホットキーを設定しておくと、ワンタッチでシーンを切り替えたり、スライドショーの順送り逆戻しみたいなことが可能。

だけど、一般的なキーボードでワンストークのホットキーにしていると、OBS以外のアプリとバッティングする。(テキストエディタを開いて読みながら、裏でOBSを動かしている場合、OBSホットキーを押した瞬間に反応してしまう。あまり使わないキーにしておけばいいが、実際のホットキーが使いにくいと意味がない。)

 

そこで、メインのキーボードとは別のキーボード(テンキー)を左手用に、マクロ専用のキーパッド代わりにするツールをつかう。

HID macros

かなり高機能っぽい。

・複数のキーボードを別々の設定にできる。(メインキーボードの[1]は通常通り、外部テンキーの[1]はマクロが動くなど)

・マウス、ジョイスティック(ボタンも軸も)なども設定可。

・アプリケーションの起動もできる。

スクリプトが組めるっぽい。(よくわからない)

 

■設定のヒント

 ・初回起動時、レジストリのエラーがでるみたい。管理者権限で動くようだが、自己責任で。

・Macros タブで、New。 Nameを適当につけて、TriggerのScanを押す。

設定したい物理的なキーを押す。Action の Send Keyboard Sequencs に動作したい内容を入力。詳細は下記参照。

最後に一番上の Compile All で設定できるようだ。

・起動中だけ、有効らしい。

 

■Send Keyboard Sequence の 例

Shift + F1 → (+{F1})

Ctrl + Shift + Alt + F12  → (^+%{F12})

 

 

・ キーストロークシーケンスでサポートされている修飾子
+ = シフト
^ = コントロール
% = Alt
& = タブ

 文字やキー名のシーケンスを括弧で囲み、グループとして変更することができます。

例えば、'+abc' は 'a' のみをシフトしますが、'+(abc)' は 3 文字すべてをシフトします。

修飾子 + ^ と % の前には < または > を付けることができます。その場合、左キーまたは右キーのコードが使用されます。

・サポートされている特殊文字
~ = Enter
( = 修飾子グループを開始(上記参照)
) = 修飾子グループを終了(上記参照)
{ = 開始キー名テキスト(下記参照)
} = 終了キー名テキスト(下記参照)

 

・OBSでは、F13~F24の設定はできなさそう。

通常あまり使わなそうな、Ctrl+Shift+Alt+F1 みたいなものを設定すると良いかも。

 

 

 

■ヘルプの翻訳 (by DeepL & 一部手直し)

HID macros

このユーティリティは、同じコンピュータに接続された複数のキーボードとマウスをよりよく制御することができます。通常、Windowsは異なるキーボードを認識しませんし、すべてのキーストロークは1つの標準キーボードからだけであるように見えます。マウスについても同様で、クリックやホイールスクロールはすべて1つのシステムマウスから行われているように見えます。このユーティリティを使用すると、ユニークなキーボード-キー(またはマウス-マウスボタン)の組み合わせでトリガーされるマクロを定義することができます。マクロは、アクティブなアプリケーションに別のキーストロークシーケンスを送信したり、外部プログラムを起動したり、MS Flight Simulator X DeluxeにSimConnectイベントを送信したりすることができます。追加のキーボードとマウスはUSB経由で接続されています。安価なPS2→USB変換器が市販されています。

バイスシート

グリッドには、システムで検出されたすべてのキーボードとマウスが表示されます。新しいデバイスには名前が付けられていますが(Keyb1, Keyb2, Mouse1...)、デバイスが選択されているときにその名前をクリックすることで名前を変更することができます。これにより、マクロ定義時の方向性が良くなります。

マクロシート

左側にはすべてのマクロのリストがあります。リストの上にあるボタンで追加・削除ができます。右側には、選択したマクロに関連するすべての詳細が表示されます。以下の項目を定義できます。
- name: マクロの名前です。マクロにトリガーが定義されていない場合(キーボードキー、マウスボタン)、またはキーボード/マウスの名前がシステムで検出された特定のデバイスにリンクされていない場合は、名前が赤色で表示されます。
- トリガー: デバイス - 定義されたアクションを開始するキー/ボタンの組み合わせ。この値を変更するには、[スキャン]ボタンを押します。
- キーボードシーケンス: マクロアクションが実行されたときにアクティブウィンドウに送信されるキーストロークのシーケンス。Shift, Ctrlキーを含む複雑なシーケンスを定義することができます。付録のフォーマット定義を参照してください。
- SimConnect イベント。SimConnectインターフェースを介してMicrosoft Flight Simulator Xに送信されるイベントの名前です。このオプションを使用するには、FSXとSimConnect(デラックスバージョンで利用可能)が正しくロードされている必要があります。使用可能なイベント名はコンボボックスに表示されます。各イベントの説明は、FSX SDKに記載されています。
- パラメータ。SimConnect イベントの中には、パラメータを持つことができるものがあります。パラメータを使用すると、例えば、見出しバグの特定の値を選択したり、ラジオの周波数を調整したりすることができます。このパラメータは常に整数値で、このフィールドにそのような値を定義することができます。整数値を入力した場合は、単にイベント引数としてFSXに送信されます。ただし、セミコロン(;)で区切って複数の整数を定義し、マクロを起動するたびにリストの次の値が使用されます。例えば、パラメータ "0;90;180;270 "で見出しバグの HEADING_BUG_SET イベントを定義した場合、マクロを起動するたびに、見出しバグは北に設定され、次に東、南、西北に設定され、再び北に設定されます。編集フィールドの後に表示される数字は、パラメータとして識別された値の数を示しています。上記の例では4となります。
- テキスト通知付き: このボックスをチェックすると、マクロ名が3秒間テキストとしてFSXに表示されます。これは、マクロがトリガされたことを確認するのに役立ちます。アクティブパラメータの値は、パラメータが使用されているときに含まれます。これは、複数のパラメータを使用してマクロを定義する場合に非常に便利です。テキスト通知では、現在どのような値がFSXに送信されたかを確認することができます。
- アプリケーションの実行。このオプションを選択すると、任意のアプリケーションを実行することができます。既存のアプリケーションを参照するには、「...」ボタンを使用します。


テストエリア

マクロシートの右上には、最後の入力イベントに関する利用可能な情報(キーボード名とキーコード、またはマウス名とボタン/ホイール)が表示されます。

ハードウェア設定の変更

マクロは常にデバイス名でキーボードやマウスに割り当てられています。これにより、異なるキーボードやマウスを接続してもマクロの定義を維持できるようになります。例えば、新しいキーボードを接続するとキーボードリストに表示され、新しい名前が生成されます。簡単ですね。しかし、古いキーボードを切断するとどうなるでしょうか?キーボードに割り当てられているマクロはすべて失われてしまうのでしょうか?いえいえ。彼らはリストに残りますが、名前は赤い色でマークされます - このマクロが既存のキーボードに割り当てられていないことを示しています。新しいトリガーキーをスキャンするか、「デバイス」タブシートで、既存のキーボードに割り当てられていた名前に変更することができます。このキーボード名を持つすべてのマクロは、自動的に物理キーボードにリンクされます。

SimConnectが利用可能な場合、アプリケーションは起動時に自動的にFSXに接続しようとします。接続されていない場合は、SimConnectボタンで接続を試みることができます。
マクロの定義は、アプリケーションディレクトリのiniファイルから自動的に保存/ロードされます。複数の設定(プロファイル)を作成する必要がある場合は、設定ファイルの名前である1つのパラメータを指定してアプリケーションを実行することができます。これにより、複数の機体のコンフィグを定義することが可能になります。

制限事項

マウスボタンを使って、ボタンを押したり離したりするためのマクロをリンクさせることができます。コックピットビルダーにトグルスイッチをマウスボタンとして接続するためのツールを提供しようというのが、このアイデアの背景にあります。しかし、windowsマウスドライバは、マウスボタンが常時押されているのを嫌うようです。Windowsにメッセージが送られてこなくても、ボタンが押されていると、マウスクリックで別のウィンドウに切り替えることができません。そのため、プレス/リリースイベントは安全に使用できますが、トグルスイッチでマウスボタンを押し続けるのはお勧めできません。
Windows のキーボードでは、すべての標準キーがサポートされています。いわゆる "マルチメディア "キーがHIDmacrosで検出されても、windows APIでは処理が異なるため、マクロを実行することはできません。また、Alt と F10 キーをマクロに使用することも推奨されません。

 


付録 キーストロークシーケンスでサポートされている修飾子

+ = シフト
~ = コントロール
% = Alt
& = タブ

 

文字やキー名のシーケンスを括弧で囲み、グループとして変更することができます。 例えば、'+abc' は 'a' のみをシフトしますが、'+(abc)' は 3 文字すべてをシフトします。

修飾子 + ^ と % の前には < または > を付けることができます。その場合、左キーまたは右キーのコードが使用されます。

 

サポートされている特殊文字
~ = Enter
( = 修飾子グループを開始(上記参照)
) = 修飾子グループを終了(上記参照)
{ = 開始キー名テキスト(下記参照)
} = 終了キー名テキスト(下記参照)

サポートされている文字。
入力可能な文字はすべてサポートされています。 修飾キーを囲む
を使用して、通常のテキストとして送信するために中括弧で囲んでください。
サポートされているキー名(これらを中括弧で囲んでください)。
BKSP, BS, BACKSPACE
BREAK
CAPSLOCK
CLEAR
DEL
DELETE
DOWN
END
ENTER
ESC
ESCAPE
F1
F2
F3
F4
F5
F6
F7
F8
F9
F10
F11
F12
F13
F14
F15
F16
F17
F18
F19
F20
F21
F22
F23
F24
HELP
HOME
INS
LEFT
NUMLOCK
PGDN
PGUP
PRTSC
RIGHT
SCROLLLOCK
TAB
UP

キー名の後にスペースと数字を付けて、指定されたキーを指定された回数だけ送信します (例: {left 6})。