2022/04/24

【BDSP×Arduino06】BDSPストーリー自動化(不思議な贈り物解禁後~リーグ到達)

※本記事は、ポケモンBDSPのストーリーについて、ポケモンリーグ到達まで(四天王に挑む直前)を自動化するプログラムについて解説した記事です。ポケモン剣盾の操作をArduino Leonardoで自動化しております。「Arduinoって何?」って方は剣盾の00回目の記事を、Arduinoの環境構築(ライブラリ含む)は01回目の記事をご覧ください。

 

本記事では、ポケモンBDSPのストーリーを、[コトブキシティでギンガ団を倒してテレビコトブキ開放後]から、[チャンピオンロードを抜けてポケモンリーグ到達、四天王に挑む直前]までを自動化したプログラムを紹介しております。

※ストーリーのうち、[主人公の名前などを決めて冒険開始]から[コトブキシティでギンガ団を倒してテレビコトブキ開放]までについては、BDSP序盤ストーリー自動進行(不思議な贈り物まで)の記事にてプログラムを紹介しております。 

 

※今回の自動化には、最初のポケモンとして選択したヒコザルを、ゴウカザルLv68以上に育てる必要があります。ポケモンHOMEが解禁されていない現在、Switchとソフトを2台以上を使用する必要があります。

2022/05/08更新:Ver1.02公開しました。リーグ到達後、リオルを孵化させた後にサファリゲームで野生ポケモンを乱獲する動作を追加しました(ウパー図鑑埋め+通信交換用)。その他、安定性を高めるために各所を微修正しました。


本記事では、このプログラム(スケッチ)でできることや原理を解説したうえで、スケッチを配布しています。とにかくスケッチが欲しいという方は下へと読み飛ばしてください。


 

きっかけ、動機

以前にポケモン剣盾について殿堂入りまでのストーリーを自動化ポケモン剣盾のストーリーを自動化し、またBDSPについても不思議な贈り物を受け取るまでを自動化しました。

数か月前まではBDSPを周回するメリットが薄かったのですが、アルセウスが常時捕獲可能となった現在、周回するメリットがあると判断して剣盾同様にBDSPも作成しました。


(作成前の私)むしよけスプレーがあるから簡単やろ!

 

これで何ができるの?

[コトブキシティでギンガ団を倒してテレビコトブキ開放後]から、[チャンピオンロードを抜けてポケモンリーグ到達、四天王に挑む直前]までを自動で進行します。Lv68以上のゴウカザル(条件については下記参照)を用意することで、ポケモンリーグ到達と、シンオウ図鑑埋めを行います。

新規データ1本での完全な自動化は困難であったため、手動で別データに送り、Lvアップなどをして戻す工程を含みます。ポケモンHOME解禁前である現在は、別データに輸送するためにBDSPとSwitch2台が必要となります。 HOMEが解禁されれば、1台で可能になるかと思います。

原理、おおまかな流れ

概要

本プログラムでは、指定したゴウカザルを用意することで、リーグ到達までのストーリーを攻略します。

 

以下では、必要な準備について説明します。

 


使用ポケモンについて

本プログラムでは、基本的に1匹のポケモンのみを使用してストーリーを進行します。その際、別のデータに輸送してレベルなどを上げる必要があります。HOMEが解禁していない現在、2台のSwitchを利用して輸送しなければなりません(HOME解禁求む)。

また、BDSPでは、剣盾の経験アメのような楽に経験値稼ぎできる方法が存在しません。リーグ周回などでは、Lv100まで上げるのに時間がかかりすぎるため、Lv70程度で妥協することとします。

 バッジが少ないうちは言うことを聞かなくなるため、自己産のポケモンである必要があります。バッジ1個までに入手可能で、複数タイプの技を打ち分けられ、先制で相手を倒せる攻撃と素早さをもったポケモン・・・

ということで、ゴウカザルを使用します。 ゴウカザルを使用する利点として以下が挙げられます。

攻撃、特攻ともに高い。相手に合わせて物理、特殊の両刀で打ち分けられる。
②覚える技が優秀。命中100の技のみでも火炎放射、インファイト、マッハパンチ、アクロバットといった、炎格闘と優秀な範囲、1撃で倒すための威力、連戦に耐えうるPPなど様々な要件を満たすものが揃っている。しかもすべてレベル技、思い出しのみであり技マシン不要
③入手が容易。最初のポケモンのため、選びさえすれば確実に手に入る。

準備するゴウカザルについて必要な条件は以下となります。

 

レベル、努力値などについて

ゴウカザルはレベルアップで最後に覚える技として、Lv68にフレアドライブを覚えます。自動化中に新たな技を覚えると動作が安定しないため、

・Lv68=これ以上レベルアップで技を覚えない状態

を最低条件とします。

そのうえでダメ系を行った結果、確定数が変わる中で特に重要そうなのが槍の柱でのアカギ戦のギャラドスとなります。プラスパワーを使用しつつも確定数が変わります。

本自動化において最も火力を必要とする場面は、槍の柱でのアカギ戦、ギャラドスLv45(個体値等不明、以下では6V努力値無振りを仮定)
威嚇が入るため、あらかじめプラスパワーを積んでA+1状態で対峙、持ち物無しアクロバットでの撃破を狙う(プラスパワー使用時にドンカラスのエアカッター被弾有)
 ★冒険の最中にLvが+2、A努力値+40上昇すると仮定すると、以下の準備が望ましい(Lv68で始めた場合はLv71まで上がることを確認)
 ①攻撃について、[性格が上昇補正(いじっぱり等)]あるいは[無補正(がんばりや等)でジャッジがかなりいい(個体値16以上)]ならLv68以上(最低レベル)で何もしなくても問題なし
 ②無補正(がんばりや等)でジャッジがまずまず以下なら、レベルを71くらいまで上げるかLv68にタウリン数個使う(努力値を数十上昇)かを推奨(何もしなくても、よほど運が悪くなければ大丈夫)
 ③下降補正(ひかえめ等)の場合、[Lv75くらいまで上げる]あるいは[Lv68で実数値153くらいになるように努力値を振る(タウリン~15個)]を推奨(個体値が0に近いと、確定で落とせず相手攻撃の急所次第で詰み)

以下、ゴウカザル対ギャラドスのダメ計(ゴウカザルはA1段階上昇アクロバット(持ち物無し)。ギャラはLv45、6Vがんばりや努力値無振りを想定)
 ゴウカザルがLv70-72ならA実数値164、Lv73,74なら159、Lv75-77なら154でアクロバット確1
 ゴウカザル無補正アクロバット>Lv70A0努力値無振り(実数値150)で50%乱数、A個体値20以上(努力値80相当)(実数値164)で確1、Lv75A0(161)で確1
 ゴウカザルA下降補正A0アクロバット>Lv70A努力値0(135)だと82.5-97.4%確2
                  >Lv70A努力値188以上(164)で確1
                  >Lv78努力値無振りあるいはLv77努力値36で確1
 
 ギャラドスたきのぼり>Lv70ゴウカザルHB0無振B下降補正に62.4-75.3%確2(急所は75%乱1)
           >Lv70ゴウカザル6V無補正に41.3-50.0%乱2
 =個体値や性格が悪いと急所次第で打ち負ける可能性あり

 要するに、攻撃についてLv68無振りで自動化を始めた場合、

・性格無補正の平均以上であれば頑張らなくても確定1発になる
・穏やかA0のような攻撃の低い個体の場合確定2発となり、ギャラドス滝登りの急所次第で落とされる

こととなります。安定性をとるのであれば、攻撃の低い個体だった場合にレベルを多めに上げるか攻撃努力値を上げておくかすることを推奨します。パワーリストがあれば、育成時に持たせておくと良いかと思います。

(よほど運が悪くない限りは気にしなくても大丈夫?) 

レベル上げについては、四天王周回が最高効率化と思います。ただし、面倒なようであれば経験値稼ぎ自動化をご利用ください。

 

技について

ゴウカザルはレベルアップのみで優秀な技を覚えます。本自動化では、

・レベル技「かえんほうしゃ」「マッハパンチ」「アクロバット」「インファイト」

の技でストーリーを進行します。並び順も上記の通りで開始してください。

炎、格闘、飛行の技範囲でシンオウのすべてのポケモンに等倍以上が取れるはずです。強敵は威嚇もちのギャラドス。

なお、「かえんほうしゃ」のみレベルアップではヒコザル専用であり、モウカザル以降は思い出しで覚えることができます。ノモセシティで思い出させましょう。


その他ポケモンについて

基本的にはゴウカザル1匹でストーリーを進行するため、ダブルバトルのトレーナーとは戦闘にならず、2人に同時に見つかっても1人ずつのシングルバトルとなります。

ただし、 槍の柱にて、ギンガ団幹部と戦う直前に下っ端2人が道をふさいでおり、強制的にダブルバトルとなる箇所があります。ここは手持ち1匹だと戦闘に入ることができません。

そのため、この1戦に限り2匹目のポケモンを使用します。

・適当なポケモンをボックス1(開くと最初に表示されるボックス)の左上に配置

してください。ある程度強いポケモンを配置すればダブルバトルがスムーズに進みますが、ビッパLv2などで問題ありません。

ヒコザルを別データに輸送する際に、手持ち2匹以上いないと交換ができないため、交換前に草むらで適当に捕まえてください

 

道具について

本プログラムでは、「むしよけスプレー」を使用して野生ポケモンとのエンカウントをなくし、「あなぬけのひも」を使用してダンジョンの帰り道をショートカットします。

 これらのアイテムは、フレンドリィショップにてバッジ1個以上所持していると購入可能となります。

・「むしよけスプレー」20個以上、「あなぬけのひも」3個以上

をショップで購入し、道具ポケットをむしよけスプレー、あなぬけのひもの順に並び替えてください。余計なアイテムを購入、輸送などはしないようにしてください。

 

メニューについて

本プログラムでは、むしよけスプレーなどの使用、ゴウカザルの技の入れ替えのために、メニューを開く場面が頻繁にあります。初期設定ではメニュー上段、左から順に「図鑑」「ポケモン」「バッグ」...となっております。ただし、図鑑を開くことはないため、

・「バッグ」「ポケモン」「図鑑」...の順になるようにメニューを並び替え

してください。

 

時間帯について

BDSPのトレーナーの中には、朝(4-10時)、昼(10-20)、夜(20-翌4)のうち、朝のみ戦闘になるジョギング、夜のみ戦闘になるお巡りさんがいます。

本スケッチでは、夜の使用を想定して動作を作成しております。

・開始から2時間半程度まで、ジョギングのいる道を通るため、戦闘になる朝を避ける。
・開始から3時間頃に、212番道路を通過。212番道路は金策のために立ち寄る機会が考えられるため、夜にお巡りさんと戦闘を行う(戦闘無しでも動作可能)。

こととします。 

つまり、自動化開始時の時間は18時~1時の範囲を推奨、1時過ぎ~10時でなければ動作可能となります。必要に応じて時間を設定してください

 

自動化開始地点について

以上の準備を終えたら、コトブキシティから北、204番道路へ向かってください。

・<204>と書かれた看板の前に立ったところでマイコンの動作を開始します。

なお、 序盤ストーリー自動化を前提としているため、看板より下の位置に見えるトレーナー2人は倒しておいてください。

 

自転車の色について

BDSPの取り返しのつかない要素の中に、自転車の色があります。

スケッチ内に「設定項目」があるので、こちら

 const int bike_color = 1;

 について、青なら0、赤なら1、黄なら2、緑なら3を入力してください。

(Blue=0, Red=1, Yellow=2, Green=3)

 

準備、必要なもの(まとめ)

1.コトブキシティでギンガ団を倒し(タッグバトル)、テレビコトブキなど開放されるところまで進める。序盤ストーリー自動化を想定しているため、最初のポケモンはヒコザルとする。その他設定なども序盤ストーリー自動化を参照
(あるいは、別データからヒコザル卵を輸送、親が自分のヒコザルを孵化させる)

2.その辺の草むらで適当なポケモンを捕まえる(通信交換にはヒコザルを含め2匹以上必要)

3.親が自分(最初のポケモンorタマゴ輸送孵化)のヒコザルを通信交換で別データに輸送し、Lv68以上のゴウカザルに育てる(レベル技最後のフレアドライブを覚えるところまで)
 性格が攻撃下降補正(ひかえめ等)や無補正の低個体値でなければ努力値等は不問。性格や個体値によっては確定数が変わるため、安定動作させたいのであれば、育成について詳しくは上記を参照。

4.ゴウカザルの技を、上から順に「かえんほうしゃ」「マッハパンチ」「アクロバット」「インファイト」となるように思い出させる。
 すべてレベル技のため、ノモセシティにてハートの鱗使用により思い出すことができる。持ち物は持たせない。

5.ストーリーを進めるデータにゴウカザルを戻す。その後、手持ちをゴウカザル1匹のみ、ボックス1の左上に適当なポケモンを預けた状態でボックスを閉じる
 なお、ボックス1左上のポケモンは、槍の柱でギンガ団下っ端2人と強制ダブルバトルで使用。Lv70までなら言うことを聞くため、まともな攻撃技を1番上にもったポケモンにしておくと事故が無くなります(試走はビッパLv2、適当でもほぼ問題なし)

6.ショップにて、「むしよけスプレー」20個以上、「あなぬけのヒモ」3個以上購入し、バッグの道具ポケット最上段をむしよけ、あなぬけの順に並び替える(お気に入りはすべて外す)。余計なアイテムは購入、輸送などしない

7.Xボタンで出てくるメニューについて、上段1番左の図鑑と、左から3番目のバッグを入れ替える
 [バッグ][ポケモン][図鑑]...の順にする。

8.必要に応じて時間設定を変更する。本スケッチでは開始~2:30ほどまでジョギング(朝のみ戦闘のトレーナー)の前を通り、3:00あたりで212番道路(金策トレーナーいるところ)の警察官と戦闘する。
 ジョギングとの戦闘は想定していないので、通過時に朝の時間帯にならないように設定する。警察官との戦闘をしない昼でも動作可能だが、金策でジェントルマン狩りをしたい場合は夜を推奨。
 つまるところ、自動化開始時の時間は18時~1時の範囲を推奨、1時過ぎ~10時でなければ動作可能。

9.以上の準備を終えたら、コトブキシティから204番道路へ向かい、入ってすぐの<204>看板の前に立ったところで、本スケッチを書き込んだマイコンを挿してスタート
 なお、204番道路看板の左と下にそれぞれいる短パン小僧、ミニスカートはあらかじめ倒しておく(序盤自動化で実行)
 マイコンを書き込む際に、スケッチ内の「設定項目」より自転車の色を選択する。
 スケッチの書き込みについて、フラッシュメモリの95%を使用します。万が一、動作不安定な場合はリーグ到達後の寄り道パートをコメントアウトしてください。

 

自動化終了後にすべきこと

①大湿原サファリゲームにてウパーを見つける。全エリア共通で草むら20%、水上60%。
この時に他のポケモンも捕獲し、別のデータから強いポケモンを輸送するための交換用にすることを推奨。

②ポケモンリーグを攻略する。ライバル戦+四天王&チャンピオン。強いポケモンをもってくることを推奨。

③シンオウ図鑑の見つけた数を150にする。上記①のウパー、湖でのUMA、カンナギタウン長老よりパケ伝じゃない方、を図鑑に記録してください。

④図鑑完成後、マサゴタウンの研究所へ行き、全国図鑑アプデ、バトルリゾートへ行くなどしたら、あとはご自由に。

 

作成したスケッチ

作成したスケッチのファイルはこちら。Ver1.02

2022/05/08更新:Ver1.02公開しました。リーグ到達後、リオルを孵化させた後にサファリゲームで野生ポケモンを乱獲する動作を追加しました(ウパー図鑑埋め+通信交換用)。その他、安定性を高めるために各所を微修正しました。

 旧ファイルはこちら。Ver1.01 

2022/04/24更新:さっそくミスを見つけたのでVer1.01公開します。ノモセシティからリッシ湖のほとりを通過して222番道路へ向かう最中のむしよけスプレーを正しく使用できていなかったため修正しました。

 

また、ストーリー中のどこで止まったかを報告していただけると助かります。主人公の現在位置、マップを開いたときに表示される次の目的地など、情報が多いほど助かります。


本スケッチの解説(主に準備)をした動画はこちら↓

 

最後に

本スケッチを使用することで、好きな言語でストーリーを殿堂入り直前まで自動で進めることができます。四天王戦などについては、単騎突撃するのは無謀と判断し諦めました(Lv100を輸送した方が楽)。

DPやBDSP特有の要素として、殿堂入り後のストーリーへ進むためにシンオウ図鑑の完成(見つけるのみでOK)が必要となる点が挙げられます。初回ストーリーを楽しむ分には許容できますが、周回となると面倒な要素となります。ストーリーを進めながら図鑑を埋めていく動作も並行しておりますので、自動化の後には伝説捕獲などにスムーズに移行できるかと思います。

 

むしよけスプレーを使用すれば野生エンカウントがなくなるので剣盾の自動化に比べれば簡単...かと思いきや、歩数が0.5歩足りなくて引っかかったり、飛び降りたくない段差を勝手に飛び降りたり、同じ動きのはずなのに勝手に1歩多く進んだり、先制の爪がむしゃらからの塩水でLv30代に2ターンキルされたり、マイコン容量が足りず削減しなければならなかったりと、剣盾とは異なる方向性で大変でした。

 

現時点ではバグなどが残っている可能性はありますので、不具合などありましたら報告いただけると助かります。

 

プログラムの不備、改善点などありましたらコメントやお問い合わせからお願いいたします。 


Arduino Arduino Leonardo (ピンソケット・ピンヘッダ実装済) 【A000057】
by カエレバ

2 件のコメント:

  1. いつも便利なスケッチをありがとうございます。
    早速BDSPストーリーの自動化を試してみたところ2カ所ほど進行不能になる状態になりましたので、ご報告させていただきます。ゴウカザルレベル100でスケッチ通りの環境で進めています。
    1つ目はノモセ大湿原できりばらいをもらうために斜めに移動するところで、右側にズレていってしまい草むらに入って野生ポケモンに複数回エンカウントしてそのまま止まってしまいました。
    // A連打しながら左上~右下の斜め移動を繰り返し、通りがかったエリトレと会話を開始、きりばらい回収
    for(int i=0; i<30; i++){
    // 左上へ進む
    SwitchController().setStickTiltRatio(-70, -90, 0, 0);
    // 動きながらAボタン連打
    rendaA5(4);
    // 右下へ進む
    SwitchController().setStickTiltRatio(70, 90, 0, 0);
    // 動きながらAボタン連打
    rendaA5(6);

    2つ目はノモセジムで最後にジムリーダーの場所に移動しようとすると謎の壁にぶつかってしまい、そのまま動かなくなって進行不能になります。(複数回試しましたがここで必ず止まってしまいます)
    ノモセシティジムリーダーの場所に
    // 下3歩、右10歩、上でジムリーダー、マキシ戦
    turnAndStepsDOWN(3);
    turnAndStepsRIGHT(10);
    runWithAUP(2);;;

    どちらも手動で進めてから再開させることで最後まで進めることができました。

    返信削除
    返信
    1. 報告ありがとうございます。
      1つ目については、移動ルートなどを調整してみます。
      2つ目については、自動化関係なく起こるバグのようです。ソフトのバージョンは1.1.1などの古いものでしょうか?こちらでは古いバージョンで再現することができず原因も分からないので対処は厳しいです。止まった場合は、プログラム途中からをマイコンに書き込みなおし、キリのいいところから再開してください。

      削除

【ポケモンSV×arduino06】道具プリンター乱数自動化(藍の円盤)

 ※本記事は、ポケモンSVの藍の円盤(DLC)にて、 道具プリンター を決まった日時に起動することで 特定のアイテム、ボールを狙って量産する操作を自動化 するプログラムについて解説した記事です。ポケモンSVの操作をArduino Leonardoで自動化しております。 本記事の内...