ぴよがち

技術的な話をします。みんなで強くなりましょう。

【NXBT】Raspberry Pi で Switchを自動操作する話(後編)【マクロの文法】

設定方法・使い方については、前編 をご覧ください。

piyo-p.hatenablog.com

以下、後編ではマクロの文法をご紹介します。

マクロの文法

マクロでは、1行に1つのコマンドを書きます。

コマンドには、以下の3種類があります。

1. ボタン・スティックのコマンド
書き方
[操作対象] [秒数]S
書き方の例

以下の例では、Aボタンを押し続け、0.5秒後に離します。

A 0.5S
ボタンの種類

ボタンの種類は、以下の通りです。

Macro Value Control Name
A A ボタン
B B ボタン
X X ボタン
Y Y ボタン
L L ボタン
ZL ZL ボタン
R R ボタン
ZR ZR ボタン
MINUS - ボタン
PLUS + ボタン
DPAD_DOWN 十字キー
DPAD_UP 十字キー
DPAD_RIGHT 十字キー
DPAD_LEFT 十字キー
R_STICK_PRESS 右スティック押し込み
L_STICK_PRESS 左スティック押し込み
HOME Home ボタン
CAPTURE キャプチャボタン
JCL_SR Right Joy-Con SR(詳細不明)
JCL_SL Left Joy-Con SL(詳細不明)
JCR_SR Right Joy-Con SR(詳細不明)
JCR_SL Right Joy-Con SL(詳細不明)

これ以外にも、ジョイスティックを倒したりする操作もできるようです。
GitHub の操作方法ページ を参照してください。

2. 待機コマンド
書き方
[秒数]S
書き方の例

以下の例では、3秒待機します。

3S
3. 繰り返しコマンド
書き方

繰り返し処理を始めたい箇所で LOOP と書き、次の行から繰り返したい内容を、[半角スペース4つ, 半角スペース2つ, tab文字] のいずれかでインデント(字下げ)されたブロックに書きます。

LOOP [回数]
    [繰り返したい処理1]
    [繰り返したい処理2]
[繰り返したくない処理]
書き方の例1

以下の例では、「Aボタンを3回1秒ごとに押して、Bボタンを1回押す」処理(4秒1セット)を1時間(900セット)繰り返します。

LOOP 900
    A 0.1S
    0.9S
    A 0.1S
    0.9S
    A 0.1S
    0.9S
    B 0.1S
    0.9S
書き方の例2

LOOP はネストする(入れ子にする)ことができます。
以下の例では、上記と同じ「Aボタンを3回1秒ごとに押して、Bボタンを1回押す」を1時間繰り返すような処理を、2重の LOOP を使って表現しています。*1

LOOP 900
  LOOP 3
    A 0.1S
    0.9S
  B 0.1S
  0.9S

おわりに

誤りなどありましたら、ぜひコメントでご指摘お願いします!

読者の皆様が単純作業から解放され、時間を有効に使う手助けになったなら幸いです。

*1:今回は、「半角スペース2つ」でインデントしてみました。