FF14用自動釣りツールを作った話

2021年5月15日

※楽してツールをゲットしようとしたあなたへ
 ここで紹介するのは楽な方法じゃないので他を当たってください。

近頃ギャザくらに興味が出てきたので漁師もレベルを上げていたんだけど
非常にめんどくさい。
コントローラーを使って振動したらフッキングマクロを使うを繰り返してほぼほぼ画面を見ないで釣りをするのすらめんどくさい。

というわけで釣り自動化ツールを作りました。

外部ツールで操作を自動化し、「不在プレイ」をする行為は規約違反になるので絶対にしないでください

さて,私は残念ながらパソコンでのプログラムがほとんどできないのでここはアナログに頼ることにした。
コントローラーでプレイしていれば振動だけで釣ることができる・・・

つまり

コントローラーが振動する⇨フッキング
これを自動化すればOK
方法は色々あるけど今回はArduinoで「振動を感知⇨マウスクリック」これを自動化してマウスカーソルをフッキングマクロの上に配置することで自動化を目指した。

Arduinoって何?って人はここでバイバイ
やる気がある人は次へ

まずArduinoのボード選択
ここですでに差が出る。
最終目標は振動を感知してマウスクリックなのでマウス入力をできる必要がある
端的にいえばArduino Leonardoを使う。
他のはUSB接続で簡単にマウスとして使えなかったりするのでレオナードと同じ「ATmega32U4」を積んでいるボードを選ぶのが無難。


私はレオナードと同じチップを搭載している「Arduino pro micro」を買いました。

あとは振動センサーを用意する。
振動センサも色々あるけど今回はArduino用の振動センサモジュールがあったので購入。

どんなセンサを使ってもいいけどこのあと書くプログラムを自分で編集できる人向け

さて道具は揃ったのでコードを書く。
Arduinoでのコーディングは初めてだったけどサンプルプログラムを見ながらだいたい30分くらいで完成。
ド素人の私が書いたプログラム(スケッチ)がこちら↓

#include <Mouse.h>
const int sPin = A0;
const int LED = 14;
void setup() {
  Serial.begin(9600);
  pinMode(LED,OUTPUT);
  Mouse.begin();
}
void loop() {
  int sValue = analogRead(sPin);
  int clickState;
  
  Serial.println(sValue);
 
 if(sValue >= 50){
  digitalWrite(LED,HIGH);
  delay(100);
  digitalWrite(LED,LOW);
  Mouse.click();
  delay(1000);
  }
}

振動センサーの出力をA0ピンへ
振動検知用のLEDを14ピンへ
シリアルモニタで振動センサの感度をチェックしてぼちぼち調整して完成

AFKFishing

見栄えは非常に悪いけど自分で使うものだし気にしない
これで振動センサをコントローラの振動を受ける用に両面テープとか養生テープで貼り付ければOK
動作状態を動画に載せたいけどFF14の規約的にグレーなのでやめておきます。

なんども言いますが規約で不在プレイは禁止されています。
BANされても知りません。
このブログは規約違反を勧めるものではありません。