でっつーのホームページ でっつーのホームページ

スプラトゥーン3 ヒーローモードのイクラ回収からドローン起動までを自動化

2022-09-20 16:00:00
書きかけのため、情報が不十分な箇所が多々あります。

前置き

今作のスプラトゥーン3では、ヒーローモード(オルタナ)のステージを全てクリアし、ワールドの調査率を100%にすると、ワールド1のシオカラキャンプ付近にブキチ製のドローンが発生します。

このドローンは、999イクラを消費する代わりに、オルタナ中を探索してアイテムを拾ってきてくれる役割を果たしてくれます。
現状1日1回しか起動はできませんが、逆に言えば毎日一回起動するだけでアイテムをゲットできるのである程度は重宝されそうです。

しかしながら、先述したとおり、起動するには999個のイクラが必要になり、イクラ集めをせずに毎日起動しているだけではイクラ不足に陥ってしまうのも時間の問題だと思います。

そこで、ヒーローモード内のステージでイクラが稼ぎやすそうなステージを探してみると、1-8のヤカン、「宇宙の中心が、ここにある。」なんかは割と効率が良さそうに見えます。
おおよそヤカンに入ってからクリアまでの時間が短く、周回するにしても一回あたり40秒程度で回せそうです。
手動で周回してイクラ回収をしても大して苦にはなりませんが、一個一個の動作が単純なため、自動化するにしても簡単に実装できそうな気がします。

参考までに、前作のSplatoon2において、オクト・エキスパンションの「D02 バツチー郡駅」を無限にクリアさせ、自販機でポイントを交換するといった流れを自動化させておられる方の記事がありましたので記載しておきます。

ギアのかけらやチケットを無限に入手!Switch操作自動化のススメ【Splatoon2】 - Qiita

要は同じようなことをスプラトゥーン3のオルタナでもできるんじゃないかっていう試みです。

準備

さて、では実際にやってみるとして、何が必要になるのかを洗い出してみます。
以下はそのリストになります。

ハードウェアおよびゲームソフト類

  1. PC(今回はWindows10の環境で行います)
  2. Nintendo Switch(私が使用しているのは旧型のものになります)
  3. Splatoon 3(DL版、カセット版は問いません)
  4. マイコンボード(今回はArduino UNO R3を使用)
  5. マイコンボードをPCまたはNintendo Switchに接続するためのUSBケーブル
  6. ジャンパ線(あると便利ですが、ピンセットやマイナスドライバーなどでも代用可)

PC上で使用するソフトウェア類

  1. マイコンに書き込むプログラム
  2. LUFA
  3. Microchip社公式のAVR GCCコンパイラ
  4. DFU Programmer

さて、では実際に準備に取り掛かりましょう。
以下に、必要となるもののリンクをリストアップしておきました。

なお、各プログラム・ソフトウェアのダウンロード方法やインストール方法については省略させて頂きます。

Get-Alterna-Reward - GitHub

このプログラムはshinyquagsire23氏のSplatoon2向けのドット打ち用のリポジトリ
( Switch-Fightstick - GitHub ) を一部改変させて頂いたものになります。
名前は近々変えようか悩んでます。もうちょっとひねればよかった。

LUFA - Four Walled Cubicle

なぜかは分かりませんが、LUFAは最新バージョンだと環境によってコンパイルが通ったり通らなかったりでまちまちなので、一個前の170418を使うのがおススメかもしれません。
解凍したファイルは Get-Alterna-Reward のmakefileがあるディレクトリに置いて、lufa にリネームしてください。

Get-Alterna-Reward	/ makefile
/ lufa / Bootloaders / LUFA / Build / CodeTemplates / : / :
/ Joystick.c / :
Toolchains for AVR® Microcontrollers (MCUs) - Microchip Technolog

マイクロチップ・テクノロジー社が公式で公開しているGCCコンパイラになります。
WinAVR などでも代用できるかもしれませんが、そちらは試してません。 ダウンロードできたら、実行ファイルを開いてインストールを行ってください。

dfu-programmer - GitHub

マイコンにプログラムを書き込む際に使用します。
ドライバーが付属してきますが、ここに関しては後の工程でインストール方法を解説します。

設定

さて、上述したファイルの準備が終われば、次は設定に移ります。
Get-Alterna-Reward 内の Config.h をテキストエディタで開き、
コメントアウトしてある説明のとおりに変数の数値を弄り、設定をします。
書き換えが終われば、上書き保存で終了します。

次に、同じディレクトリ内の makefile をテキストエディタで開き、15行目までスクロールします。
真上の行に書いてある説明のとおりですが、使用するマイコンボードに合わせて書き換えます。
今回使用する Arduino UNO R3 の場合は atmega16u2 になります。 書き換えが終わったら上書き保存で終了です。

コンパイル

Joystick.c および makefile の書き換えが終わったら、ターミナル(コマンドプロンプトなど)で make コマンドを実行します。
Get-Alterna-Reward のフォルダーを開いた状態で、アドレスバーに cmd と入力することでコマンドプロンプトが立ち上がります。
その状態で make コマンドを実行すれば、しばらくしてディレクトリ内に Joystick.hex ファイルが生成されると思います。
この生成ができれば完了です。

マイコンへの書き込み

生成された Joystick.hex ファイルを、dfu-programmerの実行ファイル (.exe) のあるディレクトリに置きます。
マイコンボードをDFUモードでPCに接続し、デバイスマネージャーでdfu-programmerrに付属していたドライバーを当てます。
dfu-prrogrammer.exeおよびJystick.hexのあるディレクトリで下記のコマンドを実行します。
dfu-programmer.exe atmega16u2 erase
dfu-programmer.exe atmega16u2 flash Joystick.hex
書き込みが終わったらPCからマイコンボードを取り外します。

Splatoon3で実行

書き込みが終わったマイコンボードは接続せずに、Splatoon 3を起動します。
ニュースを見終えるかLスティックで最小化し、キャラクターが広場に立っている状態にしてください。
また、既に起動済みだった場合はXボタンを開いた際に、マップが表示される状態にできているかを確認してください。
確認ができたら、マイコンボードを接続します。
自動でコントローラーの再接続が行われ、マイコンを1Pコントローラーとして認識します。
あとの作業は自動でやってくれるので、ドローンを起動して最後にバンカラ街に戻るところまで待ちます。

実際に実行してみるとこんな感じ

ご不明点等ありましたら下のTwitterアカウントまで
でっつー (@Dettsu3420)