2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Switch自動化】簡単にできる! Arudiunoでモンハン自動化

Posted at

はじめに

こんにちは、ハンターのみなさん!流行に乗り遅れましたが、モンスターハンターライズにハマっています。
しかし、ある程度プレイしたところで、レベル上げやマカ錬金などの周回が面倒くさくなってしまいました。
そこで、Arduino Leonardoの出番です!
この記事では、モンハンライズの周回を自動化する方法をご紹介します。
プログラミングとちょっとした工夫で、狩りの面倒な部分をラクにしましょう。

環境・必要なもの

PCを除いて予算5000円程度あれば大丈夫です!

  • PC (筆者はMac使用)
  • Arduino Leonardo

  • 接続端子

セットアップ

Arduino IDEのインストール

購入したArduinoにプログラムを書き込むための、Arudiuno IDEをインストールします。

自身の使用しているOSに合わせてインストールしてください。

ライブラリマネージャ

ライブラリマネージャーの検索欄にArduinoSTLと入力し、下のものと同じものをインストールしてください。バージョンは最新のもので大丈夫です。

image.png

ボードマネージャ

続いてボードマネージャの検索欄にArduino AVR Boardsと入力し、下の画像と同じものをインストールしてください。
※ 注意! バージョンは1.8.6にしてください!

image.png

Switch自動化Github

Switchの自動化には、こちらのGitHubのレポジトリを使用します。

codeからDownload Zipを選択します。その後、SwitchControlLibrary-masterフォルダをArduinoのライブラリフォルダに置きます。

コーディング

先程のGithubのREAD.MEに使用方法が書いてあります。そのため、基本的な操作方法は省かせていただきます。
モンハン自動化をする際に、必要となったコードを下に書いておきます。

連打機能

unsigned long t0 = millis() / 1000;
unsigned long t = millis() / 1000;

int min = 17;

// min分間の間攻撃
while(t-t0 < min * 60) {
    t = millis() / 1000;
    SwitchControlLibrary().pressButton(Button::X);
    SwitchControlLibrary().pressButton(Button::ZR);
    SwitchControlLibrary().sendReport();
    delay(50);
    SwitchControlLibrary().releaseButton(Button::X);
    SwitchControlLibrary().releaseButton(Button::ZR);
    SwitchControlLibrary().sendReport();
    delay(150);
}

minの分数の間だけ、ボタンを連打する機能です。一定時間、モンスターに攻撃し続けるために、ボタンを連打する機能が必要でした。

完成品

完成品の動画です!

コードはGitHubにあります!ご自由に使用してください!
delayの時間は、自分のSwitchの環境にあわせて、変更してください!

終わりに

直感的にコードを書けて、意外と簡単にできました。これを使えば、他のゲームの自動化などもできそうですね。
ぜひ、みなさんも試してみてください!

2
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?