頭の中は亜空間

やり込み要素を突き詰めるブログ

【FF7】デスペナルティのための撃破数稼ぎ自動化

前回

notwogetstwo.hatenablog.com

の続き。

 さすがに手動で655,35体狩り続けるのは無理ゲーなので、数稼ぎの部分は自動化します

 

 Arduinoというマイコンを用いて自動化プログラムをswitchに流す必要があります。あくまでここではFFVIIで使うコードを紹介するに留めます細かい設定方法やプログラムを流す方法については、マイコンを導入して、ポケモン剣盾を自動化しよう!【Mac・Windows】|ポケモニットを参照してください。こちらが画像つきで非常にわかりやすいです(投げやりですまねえ……)

 

 接続先として、ここではArduinoswitchのドックへUSB接続する&PCへUSB接続する前提で進めます。これなら使うケーブルはタイプAオス-マイクロBケーブルだけで済みますし、長時間自動周回させる都合上バッテリー切れを心配しなくて良いようにdock経由の方が安心感があります。HDMIケーブルでTVやモニタに画面出力すると見やすくて尚良し

 

 ちなみにこれ(Arduino)、ポケモン剣盾の孵化厳選を自動化する目的でも使われているようです。でも今回はあっちほど複雑な操作じゃないのでコードは至って単純です。ご安心を

 

コード

 以下をコピペするだけで動きます


#include <NintendoSwitchControlLibrary.h>

void setup() {
  pushButton(Button::B, 500, 5);
}

void loop() {
  pushButton(Button::A, 1);
  tiltLeftStick(Stick::MIN, Stick::NEUTRAL, 300);
  tiltLeftStick(Stick::MAX, Stick::NEUTRAL, 300);
  pushButton(Button::A, 1);
}

 

 動作内容は、クラウドが特定の場所でひたすら左右に移動しつつAボタンを押すだけ。Aボタンはリザルト画面を飛ばすために使います。戦闘はオートバーサクのため勝手に終了します。プログラム側でゲーム内イベント(FFVIIのエンカ等)を検知できないので擬似的なA連打を実現したつもりです。完璧ではないと思いますが、それなりに効率化できたはず

 

 *tiltLeftStickの第3引数を大きくすると移動距離は伸びますが同時に待機時間も伸びてしまうようです

 

やり方

 まず3倍速モードにし、ヴィンセントに怒りの指輪を装備して画像の位置まで移動してください。マテリアはすべてぜんたいか必須、ほかはお好みで(てきよせが複数あるとベスト、オートバーサク状態だとふいうち無効)。このときヴィンセントの速さを255にしておくとより速く終わります。位置ですが、厳密には気持ちもうちょい左下あたりにクラウドがいるのがベストです

f:id:notwo:20210902142323j:plain

 

 次、switchのドックのUSBポートにArduinoのついたケーブルを接続してください。switchがプログラムを読み込んだらあとは勝手にクラウドが動きます。プログラムを止めるにはUSBポートからArduinoを抜けばOK

 

注意点

 私だけかわかりませんが、switch版FFVIIは酷いときは30分〜1時間おきでフリーズします。そのせいで何度か稼ぎがパアになってしまった教訓から、こまめなセーブは必須です。ここの感覚は人によりますが大体30分くらいを目安にセーブしに外に出るべきでしょう。USBポートからArduinoを抜き、自分で外に出てセーブしたらまた規定の位置についてからArduinoを読み込ませて続きを頑張ってください