2021/11/12

【ポケモン剣盾×Arduino13】剣盾ストーリー自動進行(パルシェン単騎攻略、殿堂入りまで)

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

 

本記事では、ポケモン剣盾のストーリーを、主人公設定~最初のワイルドエリア、エンジンシティ~殿堂入りまでを自動化したプログラムを紹介しております。

2022/06/25追記:るのぐ 様より「剣盾クリア後ストーリー自動進行プログラム」を作成、公開していただきました。殿堂入り後の自宅から、ザシアン・ザマゼンタの捕獲イベント直前までを自動進行します。本ページの殿堂入りまでの自動化を終えたところからご利用ください。

詳しくは以下のリンクをご覧ください。
 

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


 

きっかけ、動機

以前にポケモン剣盾のストーリー序盤を自動化し、不思議な贈り物を受け取るまでを行いました。

先日の色違いザシアン・ザマゼンタの受け取りに際してストーリー序盤部分の調整を行ったついでに、その後のストーリーを進める気分になったので作ってみました。

 

BDSP発売までに形にしたかった


これで何ができるの?

本記事では2つのプログラムを公開しており、「A: 主人公設定(ストーリー開始)~最初のワイルドエリア」と「B: エンジンシティ~殿堂入り」の2パートに分けて剣盾のストーリーを自動で進行します。

新規データ1本での完全な自動化は困難であったため、手動で別データに送り、Lvアップなどをして戻す工程を含みます。

1つ目のプログラムAにてエンジンシティ付近まで移動した後、ワイルドエリアでシェルダーを捕獲、Pokemon HOME(あるいは通信交換)でシェルダーを送ってメインROMでレベルアップなどを行います。シェルダーとその他ポケモンを戻したところから2つ目のプログラムBを実行、うまくいけば殿堂入りまで進みます。時間は約7時間、うち30分ほどを手動での準備に用います。

手動での工程では、「Lv100まで上げるための経験アメ」「銀の王冠1個」「タウリン、インドメタシン26個ずつ(ドーピング)」を必要とします。 既に殿堂入りまで終えてアイテムが潤沢なデータをもっていることを前提としているため、1度は自分の手で殿堂入りしましょう。

 

原理、おおまかな流れ

概要

本記事では、

主人公を設定してストーリー開始~ワイルドエリア(プログラムA
ワイルドエリアでシェルダーを捕獲してからHOME経由でメインROMに輸送(手動
メインROMでシェルダーの強化、その他ポケモンの捕獲をして自動化ROMに戻す(手動
輸送したシェルダーその他ポケモンで殿堂入りまで進行(プログラムB

といった流れでストーリー開始から殿堂入りまでをおおよそ自動化します。

 

以下では、プログラムA・B共通のコンセプトの解説手動パートの説明プログラムの設定事項ストーリー中の要所ごとの解説に分けて説明します。

 

プログラムA・B共通のコンセプトについて

本プログラムでは、基本的に左スティックを1方向に倒した状態でA(B)ボタンを連打して壁などにぶつかるまで移動、戦闘を繰り返すことを行います。壁にぶつかったり、会話などのイベントに遭遇したりすることで位置が固定されるため、ずれの少ない状態でスティックの方向を転換し、次の移動を行います。

会話イベントなどについては、言語ごとのテキスト量の違いにより多少の時間差が考えられます。また、草むらでの戦闘については、エンカウントする回数が動作のたびに変わり、時間差が生じ、草むら、トレーナーどちらの戦闘でも急所や確定数の違いなどにより時間差が生じます。以上のように動作ごとに時間差が生じるため、全体的に連打回数、時間については余裕をもたせています。特に守るやこらえる、ねこだましなどでターンを稼いでくるポケモンに対しては長め。

おそらく全体的に待機時間を減らすことで動作時間の短縮が可能となりますが、成功確率が減少する可能性もあるため、基本的にこちらではシビアに時間調整することはしません。気になる方は各自で調整をお願いします。

壁や会話イベントなどである程度の位置の固定を行いますが、それでもずれる場所などについては、空を飛ぶによりポケモンセンター前への移動を行います。

 

以上のようにごく一部の箇所を除き、本プログラムは「スティック倒し&A連打」、時々「空を飛ぶ」の繰り返しです。この単純作業による進行を円滑に進めるために、手動で準備することとなります。


手動パートについて

ストーリー開始からワイルドエリア到達までをプログラムAで進行した後、プログラムBを円滑に進めるために手動で準備を行います。以下では、「シェルダーの準備」「その他ポケモンの準備」「各ポケモンの配置」の3項目を説明します。

 

シェルダーの準備

本プログラムでは、上記のコンセプト「スティック倒し&A連打」により戦闘で無双するためにLv100のポケモンを用意する必要があります。

 基本的にLv100のポケモンであれば、ストーリー中のポケモンすべてに数字の暴力で勝つことが可能ですが、ここで注意すべきは「効果はないようだ・・・」。どんなに大きい数字も0を掛ければ0になります。

また、戦闘中は基本的にA連打しか行わないため、1種類の技だけで草むら、トレーナーすべてを攻略することとなります。

以上の点から、威力命中PP安定で無効化されない、自己産の入手が容易などの条件で絞り込んだ結果(詳しくはこちら) 、スキルリンクつららばりパルシェンとなりました。

ヌケニン以外に無効化されない威力125、命中100、PP30、頑丈や化けの皮を貫通できる唯一無二の組み合わせとなります。 

パルシェン(シェルダー)の利点は以下の通り。

・スキルリンク氷柱針の性能が超優秀(威力命中PP、頑丈貫通)
・最低限以上には素早さがあるため、Sに振ることですべてのポケモンを抜くことができる
=相手に余計な動きをされない
・シェルダーはワイルドエリア(エンジンシティ付近)で釣ることができる
=通信交換によるタマゴ輸送をせずに自己産を、ワイルドエリア到達時点で入手できる
・進化方法は水の石であり、道中(ワイルドエリア)で進化可能である
・進化時に覚える技が氷柱針のため、進化と同時に余計な技を覚える心配がない

 欠点は以下の通り

・経験値タイプが遅めの125万
・後半では2ヒット以上でないと倒せない相手が多い
=攻撃時間が長く、急所テキストによる遅延が起こりうる
・ストーリー中に入手可能な水の石を1個消費する
・シールド版のみ、メロンのダイマックスラプラスが確定3発、一部の氷ジムのトレーナーも確1ではない(キョダイセンリツは相性的に打たれない?)

 

 以上の点を考慮し、利点が大きいと判断しました。

 このシェルダーを用意する手順は、

①デスルーラ後、正面に見える湖へ近づき、釣りポイントで釣りをする
シェルダー(20%)を捕獲、特性スキルリンク性格補正がAに下降でないものか確認する(後でアイテム使用してもOK)
ポケモンHOMEで別のデータへと輸送し、Lv100、AS252、攻撃に王冠使用
 S下降補正かつ個体値15以下(シェルダーS実数値146以下)ならSも王冠
(パルシェンのS実数値が201以上>ダンデのドラパルトになるように)
 また、技を「つららばり」のみにする。

 以上、ポケモンHOME経由でメインロムにてドーピングなどを行ってください。

 

なお、ポイントアップによるPP増加、水の石での進化、こだわりハチマキなどを持たせる必要はありません。必要な道具についてはすべてストーリー進行中に入手します

 

その他ポケモンの準備

本プログラムでは、基本的にはパルシェン(シェルダー)単騎でストーリーを攻略しますが、一部箇所での成功率を上げるため、自爆を覚えたポケモンダブルバトル用のポケモンを用意します。

A. 自爆ポケモン

3つ目のバッジを入手した後、ナックルシティまでのワイルドエリアの道中をデスルーラするために自滅することのできるポケモンを用意します。1ターンの技選択で確実に自滅するため、自爆、置き土産などを覚えたポケモンを用意します。


条件としては、3つ目のバッジの時点で言うことを聞く、Lv50以下のポケモであれば何でも構いません。ただし、全滅時のレベルによって失う金額が変わるので、Lvが低い方が良いかと思います。今回は3番道路で入手可能なタンドンを使用しています。

B. ダブルバトル用のポケモン

7つ目、8つ目のジムチャレンジでは、ダブルバトルを行うことがあるため、手持ちが2匹以上でなければ進むことができません。基本的にはパルシェンが凍える風を打ちますが、火力が足りない箇所があるため、補助として攻撃できるポケモンを用意します。

必須条件としては、バッジ6つで言うことを聞くLv80以下、Lvアップでこれ以上技を覚えず簡単には倒れないポケモンとなります。


推奨として、相手2体を攻撃でき、命中の高い技を使えるポケモンが望ましいです。また、動作の関係上こだわりハチマキをもたせるため、物理技であれば恩恵が受けられます。

 今回は、ワイルドエリアで入手可能なLv60程度のオノノクスにワイドブレイカーを覚えさせて使用しています。

 

各ポケモンの配置

以上のポケモン(シェルダーLv100、自爆ポケモン、ダブルバトル用のポケモン)を用意したら、

シェルダーを手持ち、自爆ポケモンをボックス1の左上、ダブル用ポケモンを左下に配置してください。

以下の図のようになります。これを前提として手持ちの入れ替えなどを行います。

 

プログラムの設定事項

本プログラムでは、マイコンに書き込む前に設定する項目として、

①背番号の設定、②ムゲンダイナの捕獲ボールの設定 の2つがあります。

どちらも、スケッチの最初、コメントアウトした部分の後に数値の入力する箇所があります。

①背番号の設定

名前の通り、エンジンシティの開会式前に入力する背番号を設定します。1~3桁の数字を入力してください。


②ムゲンダイナの捕獲ボールの設定

自動化するたびにムゲンダイナをモンスターボールで捕獲するのでは芸がないので、ストーリー中で入手可能なボールを設定することで、自動で入手、投げるようにしました。

具体的には、各ジムでボールガイからもらえるガンテツボール(スピードを除く)やドリームボール、店で買うことのできるゴージャスボールなどに番号を割り振ってあります(スケッチ参照)。

以下の図はボールと番号の対応を示しています。
ただし、8: スピードボールは現在非対応(ロトムラリーで入手)、9: マスターボールやサファリボールなどは、あらかじめ通信交換で輸送してきた場合のみ対応となります。

 

 

ストーリー中の要所ごとの解説

重要性が低いわりに雑多となっていたため、別記事に分割しました。こちらをご覧ください。

 

準備、必要なもの

本スケッチでは、プログラムAを実行した後、以下の準備を行ってプログラムBへと繋がります。

⓪プログラムAを実行
①デスルーラ後、正面に見える湖へ近づき、釣りポイントで釣りをする
 ②シェルダー(20%)を捕獲、特性スキルリンク、性格補正がAに下降でないものか確認する(後でアイテム使用してもOK)
③ポケモンHOMEで別のデータへと輸送し、Lv100、AS252、攻撃に王冠使用、
 S下降補正かつ個体値15以下(シェルダーS実数値146以下)ならSも王冠
 (パルシェンのS実数値が201以上>ダンデのドラパルトになるように)
 また、技を「つららばり」のみにする。
④自爆を覚える低レベルのポケモンを捕まえ(タンドンなど)、技の1番上を「自爆」にする
⑤Lv80以下、今後LvUPで技を覚えないダブルバトル用のポケモンを用意し、技の1番上を相手2体攻撃技にする
 (ワイルドエリアで捕まえたLv60以上のオノノクス+ワイドブレイカーを推奨)
⑥再びHOMEで輸送する
⑦自動化するデータを開き、手持ちをシェルダー1匹のみ、ボックス1左上に自爆ポケモン、左下にダブル用ポケモンを用意する
⑧エンジンシティへの入り口をくぐったところから、プログラムBをスタート
 

 

作成したスケッチ

作成したスケッチのファイルはこちら(Ver.1.02) 

 2021/11/14 B-Ver1.02公開中。DLCがない場合に操作を切り替えできるように設定項目を追加。その他微調整。更新した内容については、リンク先にメモを置きましたので確認ください。

 主人公の名前などを手動で設定した後、swshStoryAuto_A (約45分)を実行してください。

Aが終わったら、上記 準備、必要なものを参考に、手動でシェルダーの捕獲や育成などを行ってください(30分弱?)。その後swshStoryAuto_B (約5時間50分)を実行してください。

 

2021/11/12現在、バグチェックが十分ではなく一部動作が不安定です。途中でうまくいかず中断される可能性を承知のうえで実行してください。中断した場合、キリの良いところ(空を飛ぶところなど)まで手動で進行したうえで再開させてください。

 

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


なお、執筆者がスケッチを作成するにあたり使用した環境は以下のようになります。

・作成のために試走したデータはスペイン語で主人公男を設定したソード(以下すべてパッケージ版+DLCあり)

・試走をもとに作成に用いたデータはドイツ語で主人公女を設定したシールド

・自動化させたデータ(動画)は日本語(漢字)で主人公女を設定したソード


本スケッチを実際に使用した動画はこちら↓

とりあえず全工程を4倍速で垂れ流し。Ver1.0

 

最後に

本スケッチを使用することで、好きな言語でストーリーを殿堂入りまでおおよそ自動で進めることができます。もうすぐBDSP発売なので、剣盾が手付かずになる前に作成できて満足です。

殿堂入りまで進行するメリットとして、ガンテツボールなどを1種類ずつ入手できたり、1匹ずつしか捕獲できない伝説のポケモンを入手できたり、異なる言語のポケモン捕獲、ニックネーム付けができたりなど、メインロムだけでは揃えられないポケモンやアイテムの入手に役立つかと思います。

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

 

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


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

5 件のコメント:

  1. Aの方は1分もかからず書き込みできてそのまま成功したんですけど、Bの方は書き込みに3時間くらいかかっても終わらないけど、行数の分だけ書き込み時間がかかるのでなく、加速度的に増えるものなんでしょうか?

    返信削除
    返信
    1. 返信が遅くなりましたが一応回答させていただきます。
      こちらでの書き込み時間はせいぜい10秒台です。行数でコンパイルに多少の時間差はありますが、何分もかかる現象は確認できていません。
      IDE側あるいはマイコン側の問題が高いので、設定など確認してみてください。

      削除
  2. 初めまして、先日初めてこのプログラムを使用させていただいたのですが8番道路でどうしてもうまくいかず止まってしまいます、じばく枠にゆうばくのフワンテを使っているぐらいしか環境の違いがないのですがこれは仕方ないことなのでしょうか

    返信削除
    返信
    1. ブログ主様じゃないのですが私も8番道路の階段を降りれなく困っていたのですが解決したのでお返事させていただきます。日本語ROMです。

      goToRoute78内の
      // はしご上り下り連続、右端のくぼみへ、はしご上る前、下りた後に野生1ずつ
      runStraightWithA(90, -70, 450);
      の値を
      runStraightWithA(90, -60, 450);
      へと変更したらその後つまずくことなくジムまで進むことができました。

      主様失礼いたしました。スケッチの配布ありがとうございます。

      削除
    2. 返信遅くなりました。ご回答ありがとうございます。
      8番道路の動作停止報告が比較的多いため、進む角度の調整が必要かもしれません。次回動かす際(いつになるか分かりませんが)試してみたいと思います。

      削除

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

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