※本記事は、ポケモンレジェンズZ-Aにて、ベンチ周辺に出現するポケモンの色違い厳選を自動化するプログラムについて解説した記事です。ポケモンSVの操作をArduino Leonardoで自動化しております。
「Arduinoって何?」って方は剣盾の00回目の記事を、Arduinoの環境構築(ライブラリ含む)は01回目の記事をご覧ください。
本記事では、このプログラム(スケッチ)でできることや原理を解説したうえで、スケッチを配布しています。とにかくスケッチが欲しいという方は下へと読み飛ばしてください。
きっかけ、動機
ポケモンLegends Z-A、ついに発売、楽しんでいます。一通りストーリーを進め、動画を録画し終わったころにひかるおまもりも入手。
さてさて、今作の色違い厳選は過去作よりも優しい仕様。レジェンズアルセウスと違い、色違いが簡単には消えなくなりました。通常、出現したポケモンは距離をとる、ロードを挟むなどすることで消え、別個体が出現します。一方で色違いポケモンの場合は消えることなく保存され続けるため、ロード等を繰り返してポケモンを湧かせ続けることで色違いを残したまま抽選し続けることが可能です。
そして流行っている(?)のが連射コントローラーを使ったベンチ厳選。スティックを下方向に固定しながらAボタン連射することでベンチで時間を潰す(ロード)動作を続けるため、周囲に湧くポケモンの色違いを厳選できます。
連射コントローラーでできることは、まず間違いなくマイコンでもできます。
でも同じことをやってもつまらない。じゃあより複雑に移動を挟めば、厳選効率が上がるんじゃないか(あまり上がりませんでした)

これで何ができるの?
ミアレシティ各地にあるベンチ周辺のポケモンの色違い厳選を自動化できます。
ベンチでの休憩の合間に移動を挟むことで、ベンチから少し遠いポケモン、広範囲の色々なポケモンなどのA連打だけでは難しい厳選が可能になります。
今回は、さまざまな最終進化オヤブンがランダム湧きするワイルドゾーン20にて、オヤブン2匹を同時に厳選できるようにしました。
適宜改変することで、他のベンチでも厳選が可能となります。
原理、おおまかな流れ
概要
本プログラムでは、
ベンチで時間を潰す(昼夜を切り替える&ロードで周囲ポケモン湧き判定)
→往復でベンチから走りだし、走りだした方向にも野生ポケモンの湧きを発生させる
→ベンチに戻り時間を潰す→、、、
を繰り返します。
連射コントローラーを使ったベンチ周辺の色違い厳選が流行っていますが、そこに往復移動を挟むことでより広範囲、ベンチの近くにいないポケモンの厳選が可能になります。
実のところ、単純効率はA連打のみと比較して上がるわけではありませんので後ほど開設。
ロード時間、走る時間の調整について
今作、ポケモンZAは3種類の動作環境が想定されます。
①旧Switch (ロード時間が長い、湧き範囲が狭い?)
②Switch2本体で、ソフトがSwitch2エディションではない(未検証)
③Switch2本体で、ソフトもSwitch2エディション(たぶん一番厳選効率がいい)
こちらでは③の環境でゲームプレイ、自動化作成しています。
おそらく同じ③環境であれば問題なく動作します。環境が異なる場合は、ベンチで時間を潰す際のロード時間が異なる可能性があります(未検証)。
スケッチ上部の設定項目にある
int loadingTime = 8000;
を調整してください。数字はミリ秒なので、1000増やすと1秒待機時間が長くなります。
また、ベンチからの移動時間(片道時間)についても調整できるようにしました。
int runningTime = 9000;
ポケモンの湧き範囲を調整したり、主人公が被弾して倒れないようにしたりしたい場合に増減させてください。
往復移動拡張による厳選効率について
本プログラムを作った後に思ったこと。
A連打のみと比較して効率は上がっているのか?
というわけで計算してみました。
結論から言うと、単純効率はどっこいどっこいか微減します。
以下、③Switch2エディション環境での検証結果です。
まず、主人公の周囲のポケモンの湧きを確認してみたところ、
主人公のBダッシュ速度をvと置いたときに、
・ポケモンが湧く範囲はだいたい半径6vの円内
・ポケモンが消滅する範囲はだいたい半径9vの円外
ということが判明。ついでにワイルドゾーン20は半径9vくらい。
そして、ベンチでA連打のみをした場合、ロード1周は約15秒。
つまり、15秒ごとに半径6vの円内の野生ポケモンを抽選し続けるので、秒あたりの面積は
(6v)^2 × π / 15 ≒ 7.54 v^2 [/sec] (円周率は3.14と習いました。)
.png)
対して、ベンチで時間を潰す合間に往復移動を挟んだ場合、片道の移動時間は半分。
つまりはループ時間を1秒増やすごとに片道0.5v進み、主人公の左右6vずつ、つまり12vの範囲の湧きが増えることになります。1秒増えるごとに湧き面積は
1/2 v×12v=6v^2
増えることとなり、A連打のみの面積効率よりやや小さい値となります。つまり、移動したところで単純な面積効率は悪くなります。
今回は片道9秒ほど移動を追加したので、
湧き範囲は図の赤円と青四角を足した範囲であり、秒あたりの面積は
((6v)^2 × π + 9v×12v) / (15+18) ≒ 6.70 v^2 [/sec]
となり、やはりA連打よりはわずかに効率が悪いと言った結果になりました。
もっとも、実際は野生湧きしないエリアなどを面積に含んでいるため、今回のゾーン20における厳選効率はどっこいどっこいとなるのではないでしょうか。
また、広いエリアを厳選できるということは、長時間の厳選でも色違い出現効率が下がりにくいことを意味します。
例えば、円内に野生ポケモンが4匹出現すると仮定した場合、そのうち1匹が色違いで固定された場合に、1ロードあたりの抽選が4→3匹に減るため、効率は3/4になります。
対して、往復移動をして広いエリア、10匹出現すると仮定した場合、1匹色違いで固定されたとしても、効率は9/10となり下げ幅が小さくなります。
以上、なんかいろいろと書きましたが、往復移動を挟んでも単純効率は上がらないので、その他のメリットを考慮したうえでA連打厳選と使い分けてください。
(おまけでベンチA連打のみの厳選ができる関数も書いておいたので、適宜書換えて使い分けてください)
効率は良くなかったとしても、ゾーン20でオヤブン2匹が同時に色違いになった際は脳汁が出ました。
準備、必要なもの
本スケッチでは、マイコンを挿す前に以下の準備をしてください。
0. 本スケッチ内の設定項目(すぐ下)より片道ごとの移動時間を設定しておく。
また、ZAは旧Switch、Switch2エディション、2エディションじゃないSwitch2でロード時間やポケモン湧き範囲が異なるので適宜調整)
ZAゲーム上、可能であれば緑のカナリィぬい(主人公耐久力)を手に入れる(あるいは下の設定項目の走る時間を短くし、被弾しうる時間を調整してください)
1. 特定のベンチ(Zone20の場合は、マップ空を飛ぶしたところ(南東方向)から入ってすぐのベンチ、左右どちらでも)でAボタンを押し、「時間がつぶす」にカーソルが合った状態にする
2. マイコンを挿してスタート。ベンチで休憩→往復移動を繰り返すところを確認。上手くいかない場合は設定項目を調整。
作成したスケッチ
ベンチ往復色違い厳選自動化@ワイルドゾーン20 のスケッチ最新版2025.10.27_ver1.00はこちら。
他の場所で使用する場合、適宜編集して移動方向、移動時間などを調整してください。
本スケッチを実際に使用した動画はこちら↓
↓以下はスケッチVer1.00。
最後に
本スケッチを使用することで、ベンチA連打での色違い厳選を拡張し、より広い範囲、よりベンチから遠くのポケモンを厳選することができるようになりました。別に単純効率が上がるわけではありませんが、厳選がベンチの位置に大きく左右されることがなくなり、より柔軟に厳選できる個体を選択できます。
今回はワイルドゾーン20のオヤブン2匹の厳選を対象としましたが、編集することで他のベンチでも使用可能です。欲しいポケモンがベンチからちょっと遠い場合、近くに出現する複数のポケモンを同時に厳選したい場合などにお役立てください。
同じ考えで、ゾーン3の階段やフラダリラボのワープパネル、空を飛ぶなどのロードを使った厳選も可能かと思います。
プログラムの不備、改善点などありましたらコメントやお問い合わせからお願いいたします。
| Arduino Arduino Leonardo (ピンソケット・ピンヘッダ実装済) 【A000057】 | ||||
|


.png)
0 件のコメント:
コメントを投稿