【YouTube動画公開】ローカルレイド配布の自動化紹介動画を公開しました
ますたーです。こんにちは。
早いもので5月も最終日となりました。
さて、今回はYouTubeに2本目の動画投稿を行ったのでその報告です。
動画の内容は、前回の記事(Arduino自動化18:ローカルレイド配布)で取り扱ったマックスレイドバトルのローカル配布についてです。ブログと動画、是非とも見比べながらお楽しみいただければ幸いです。
前回記事:【Arduino自動化18】ローカルレイド自動配布【デリバードレイドでマックスこうせき】
※Arduino Leonardo自動化の導入・機材構成については導入記事を参考にしてください。
導入記事:【Arduino自動化01】Arduino開発環境の導入
※本ブログに初めてお越しの方は「本ブログについて」もぜひ、ご覧ください。
【投稿したYouTube動画はコチラ】
【Arduino自動化】レイドバトルをArduinoで自動ローカル配布(デリバードレイド周回) - YouTube
慣れない動画編集作業に苦戦しながらも、自動化のデモ作業など、色々と検討しながら丁寧に作ってみました。
日中は業務繁忙で平日は(土日も)ほとんど時間が取れませんが、まだまだ私自身の気概としては、本ブログも動画投稿も続けていきたいと思っていますので、引き続き応援のほどよろしくお願いいたします!
また、お陰様で、一昨日の2021/5/29に本ブログのページ総閲覧数(累計PV数)が、20,000PVを突破しました。2021/5/31(月)AM2:47現在で総PV数20,137、今月PV数は3,223になります。いつも訪問いただきありがとうございます。本日でブログ開設から175日。引き続きがんばります。
このブログや投稿した動画が、皆様のお役に立てば幸いです。
ではではc⌒っ.ω.)っ
前記事:【YouTube動画公開】YouTubeチャンネル設営&紹介動画を初投稿【ポケモン剣盾Arduino自動化】
導入記事:【Arduino自動化01】Arduino開発環境の導入
【YouTube動画公開】YouTubeチャンネル設営&紹介動画を初投稿【ポケモン剣盾Arduino自動化】
ますたーです。こんにちは。
本日5/6にYouTubeチャンネルを作成しましたので、その報告記事となります。
記念すべき第1弾の投稿動画は、本ブログで取り扱っているArduino Leonardoを活用した自動化デモ紹介です。人生でYouTube初投稿です。是非とも御覧ください!
※本ブログに初めてお越しの方は「本ブログについて」もぜひ、ご覧ください。
【投稿したYouTube動画はコチラ】
【Arduino自動化】ポケモン剣盾の面倒な作業をマイコンで自動化しよう(紹介動画) - YouTube
動画中では、下記3記事の内容をデモとして紹介しております。
・A連打(無限穴掘り兄弟)
・ポケモンキャンプでカレー自動調理
【Arduino自動化09】ポケモンキャンプでカレー自動調理【カレーのあかし】
・雪中渓谷のワットショップの目玉商品
【Arduino自動化02】雪中渓谷のワットショップの目玉商品を全自動回収【カンムリ雪原】
この動画投稿を機に、より多くの人がArduinoでの自動化に魅力を 感じていただければ幸いです。
ではではc⌒っ.ω.)っ
【Arduino自動化18】ローカルレイド自動配布【デリバードレイドでマックスこうせき】
ますたーです。こんにちは。
前回の更新から1ヶ月が経ち、5月になりました。業務繁忙で、文字通り「忙殺」される毎日でした。
さて、今回は、前々回の記事(第17回)のコメント欄でリクエストをいただいた、「レイドを自動でローカル配布するプログラム」を紹介します。
Arduino自動化記事も今回で第18回。これからもよろしくお願いいたします。
なお、Arduino Leonardo自動化の導入・機材構成については導入記事を参考にしてください。
導入記事:【Arduino自動化01】Arduino開発環境の導入
※本ブログに初めてお越しの方は「本ブログについて」もぜひ、ご覧ください。
概要
ローカル通信(YY通信)でのレイドバトル配布を自動で繰り返し行います。待機時間の変更・バトル時のA連打時間も変更可能です。
2021年9月20日追記:「ひとりで挑戦」に対応したプログラムを公開しました。合わせてご参考ください
⇒【Arduino自動化19】ねがいのかたまりで自動レイドバトル周回【完全放置で「けいけんアメ」「ヨロイこうせき」】
2021年10月10日追記:Switch2台(レイド配布+レイド周回)に対応したプログラムも公開しました。
⇒【Arduino自動化20】Switch2台で「完全」自動!レイドバトル自動周回【デリバード・色違いレイドなど】
【Arduino自動化05ex】乱数調整レイドでのArduino Leonardoの使い方
ますたーです。こんにちは。
3月は繁忙でなかなか更新ができませんでした。
さて、今回はArduino自動化記事05で紹介・実施した乱数調整色レイドの手順についての補足記事です。具体的には、Arduinoをどのタイミングで使うのか、に焦点を当てて執筆しました。一応、本記事だけでも読めるように書きますが、先に当該記事を一読しておくとスムーズです。
なお、Arduino Leonardoでの自動化環境の導入については、導入記事を参考にしてください。
※本ブログに初めてお越しの方は「本ブログについて」もぜひ、ご覧ください。
【!】本記事では乱数調整の内容を扱います。
概要
今回の記事では、レイド乱数調整の中で「Arduino Leonardoをどのタイミングで使うのか」を紹介します。
詳細実際の作業手順は適宜 前回の記事(Arduno自動化05) で補ってください(途中途中にリンクも貼りますのでご安心ください)。
本記事のメインターゲットは「乱数調整は知っているけどArduinoを使うというのがいまいちピンとこない人」「前回記事を読んだけど、Arduinoのコンパイル?抜き差し?をどのタイミングでやればいいのかわからない人」になります。
では目次です。補足記事なので、例のごとく分量多めです。順番に読んで頂くと抜け漏れが無いかと思いますが、各人、必要になる部分について、目次から飛んで読んでいただいても大丈夫です。
とりあえずお急ぎの方は【ここから本題】まで読み飛ばすと良いと思います。
- 概要
- 自動化で準備するハードウェア5つ(おさらい)
- 乱数調整に使うツール
- 【ここから本題】乱数調整でArduino自動化できる2つの手順
- 1.準備(目当ての巣穴を決めて「ねがいのかたまり」を投げ入れる)
- 2.Arduinoにプログラム(3日後・4日目用)を書き込もう
- 3.最初の目標ポケモンを把握する
- 4.ArduinoをSwitchに挿し込もう
- 5.自動操作が止まったら、目標のポケモンを捕獲しよう
- 6.捕まえたポケモンの能力をツールに入力
- 7.次の目標ポケモンを捕まえて個体値入力
- 8.Arduinoのプログラム(4日後・5日目用)に書き換えよう
- 9.次の目標ポケモンを捕まえて個体値入力
- 10.Arduinoのプログラム(5日後・6日目用)に書き換えよう
- 11.最後の目標ポケモンを捕まえて個体値入力
- 12.Seed推定をしよう
- 13.目標消費数を特定する
- 14.Arduinoのプログラムを書き込もう
- 15.ランクマバグ状態にして、Arduinoを挿し込む
- 16.巣穴に戻り、セーブして準備完了
- 17.捕獲しておしまい!
- あとがき
自動化で準備するハードウェア5つ(おさらい)
まずは、使用機材についておさらいです。必要なものは以下の通りです。
ひとまず、これらが揃っていることを確認ください。
実際に筆者が使っている機材については「番外編03:機材紹介記事」をご参考ください)セットアップ手順は「Arduino自動化01:導入記事」で紹介しています)。
- Windows PC
- Arduino Leonardo
- USBケーブル
- Switch用ドック(USBハブ)
- Nintendo Switch
乱数調整に使うツール
続いて、使うツールの話です。
具体的には、乱数調整は「初期シード特定」「目標消費作業」の2ステップありますが、インストールするアプリケーションがいくつかあります。特に初期シード特定作業は有名なツールが2つあります。ここでは補足記事として両方紹介します。
初期シード特定は「1-Star Seed Search」「SW Seed Calculator」どちらもOK
様々なブログ記事や動画などで紹介されている乱数調整(初期シードの特定)を行うツールとしては、さびたコイル氏による「1-Star Seed Search」と、ぼんじり氏による「SW Seed Calculator」の2つが特に有名だと思います。
どちらも、初期シードの推定ができるツールとして優れており、筆者は両方とも使っています。どちらのツールも大変素晴らしいと思います。
「SW Seed Calculator」は初期シード特定に特化
一応、前回の記事(Arduino自動化05)では、1-Star Seed Searchを使っていますが、これは乱数調整の記事を扱う上で、「初期シード特定」と「目的の消費数の特定」の作業が同じツールで完結するため、説明しやすかったことが理由です。
一方で、ぼんじり氏が提供する「SW Seed Calculator」は、その次のステップ(目的の消費数の特定作業)には別のツール(夜網氏が提供する「8densearch」など)を使う必要があるため、乱数調整の流れを理解していない人には少し説明がしにくいです。
ただし、「初期シード特定」に限定するなら「SW Seed Calculator」はすごく使いやすくしかも高速で、エラーも少ないため個人的には大変おすすめです。特に、6日目検索ができるため初期シード特定の精度も高く、セットアップの煩雑さや別ツール連携の手間をいとわないのであれば、ぜひとも使っていきたいと感じます。
本記事や様々な記事で「乱数調整の全体の流れ」がわかってから使うと驚くほど使いやすいと思いますし、もし、前回の記事(Arduino自動化05)で初期シード特定につまづいているなら、試してみても良いかもしれません。
乱数調整に使うツールの組み合わせ
乱数調整は大きく「初期シード特定」「目的の消費数の特定」の2つに分かれます。前回の記事では紹介した「1-Star Seed Search」では、これら2つを1つのツールで完結できるので、初期導入としては比較的簡単です。
一応、下記の2パターンがおすすめです。お好きな方で実施ください。前回の記事(Arduino自動化05)では下記1を採用しています。
- さびたコイル氏の「1-Star Seed Search」のみ(流れを理解するまではおすすめ)
- ぼんじり氏の「SW Seed Calculator」+夜網氏の「8densearch」(慣れたらおすすめ)
「1-StarSeedSearch」を使う場合は、前回の記事(Arduino自動化05) を参考にセットアップしてください。「SW Seed Calculator」を使う場合は、ぼんじり氏のWebサイトから「SW Seed Calculator」をダウンロードしてください。
原則として、これらは最新版が良いかと思いますが、お好みで決めてください。その後、そのページの手順(ダウンロードリンクの下の方に設定方法載っています)に沿ってセットアップしてください(リンク先に載っているので、本稿ではセットアップ方法は割愛します)。
この記事では補完記事としての側面から、初期シード特定にはSW Seed Calculatorを利用します。
【ここから本題】乱数調整でArduino自動化できる2つの手順
ここからが本題です。
前回の記事でも紹介した通り、乱数調整の手順は大きく4つです。
この中でArduinoによる一部自動化ができるのは下記2と3、2つの手順です。
- 準備(目当ての巣穴を見つけてねがいのかたまり投げ入れる)
- 乱数調整(日付回してポケモン捕まえて初期シードを特定する作業)
- 乱数消費(目標の日付に向かって何度も日付を変更する作業)
- 捕獲(お気に入りのボールで捕まえる)
ここからはまず、この「初期シードを特定する作業」について 紹介をします。
1.準備(目当ての巣穴を決めて「ねがいのかたまり」を投げ入れる)
まずは、レイド乱数調整に挑戦する巣穴を決めましょう。
具体的には、ポケモン徹底攻略の「レイドバトルのポケモン一覧」などから、欲しいポケモンのいる巣穴を探します。もし、乱数調整ツールに前述の「SW Seed Calculator」をお使いの場合は、右上の「巣穴マップを開く」から巣穴を逆引きできますので、必要に応じてご活用ください。
余談ですが、DLC冠の雪原の巣穴で出てくるポケモンは夢特性が固定されるので、それが気になる人はガラル本土で探しましょう。
さて、今回は、色違いが金色で美しい、チルタリスを狙って行きます。チルタリスは様々な巣穴で出現しますが、今回は「ボールレイクの湖畔 D」の巣穴を目指します。
巣穴について、狙うポケモンによっては(例えばキョダイマックス個体など)、いわゆる「レア柱」でないと出現しないことがあります。つまり、目標となる巣穴の場所はもちろん、「通常」「レア」のいずれの柱を建てる必要があるのかも確認しておきましょう(レアの柱とは、通常の赤色の光の柱ではなく、紫色のオーラが出ている太い光柱のことです)。
なお、自分で「ねがいのかたまり」を投げ入れて建てた柱でないと、乱数調整はできません。もし、すでに目標の巣穴に光の柱が建っていても、そのまま次のステップに進まず、日付変更やレイド挑戦などで予め消しておき、必ず自分で建てましょう。
無事に目標の巣穴に光の柱を建て終わったら、念の為、セーブしておいてください。
2.Arduinoにプログラム(3日後・4日目用)を書き込もう
さあ、ついに手順の中にArduinoが登場しました。なお、本記事は導入記事でセットアップが完了している想定で書いています。悪しからずご了承ください。
ここから、乱数調整が始まりますが、今からの手順は「初期シードの推定」作業になります。このステップでは、条件を満たすポケモンが現れるまでひたすら3日後(4日目)のポケモンを捕まえてはリセット、捕まえてはリセット、…と幾度となく繰り返し作業が発生します。ここを、Arduinoで自動化する準備となります。
まずは、PCで、Arduino IDEを開いてください。そこに、Arduino自動化05記事のソースコード1つ目をコピペして、検証&マイコンボードに書き込みを行ってください。
ちなみに、「新しい名前で保存する」ダイアログが出てきたら、半角英数字でファイル名をつけてください。日本語はNGです。
無事にArduinoにプログラムが書き込まれたら、ArduinoをPCから抜いてください。
3.最初の目標ポケモンを把握する
まずは乱数調整のファーストステップです。ツールを使って、初期シード特定に必要なポケモン(3日後=4日目に出会わなければならないポケモン)を調べます。
「SW Seed Calculator」をお使いの方も、「1-Star Seed Search」をお使いの方も手順は共通です。巣穴情報を入力しておけば、最初に出会わなければならないポケモンはプルダウンメニューの中に出てきます。
※以降、本記事では「SW Seed Calculator」で画面説明をします。
今回の例(ボールレイクの湖畔D・レア/バッジ=8個/ROM=ソード)だと、まずは「★3 アオガラス」「★3 ゴルバット」のいずれかを見つける必要があることがわかります。これをまずは把握しましょう。
4.ArduinoをSwitchに挿し込もう
さて、ゲーム画面に戻ります。ゲーム画面では、巣穴に「ねがいのかたまり」を投げ入れたタイミングで終了していると思います(つまり、Aを押したらレイド募集画面に入れる状態)。この状態のまま、SwitchとArduinoを接続してください。充電しながら行う場合は、先にSwitchをドックに差し込んでから、ドックのUSBポートにArduinoを挿し込んでください。
正しく接続されると、勝手に「ゲーム終了→ゲーム起動→レイド調整~日付変更を3回繰り返す→日付を戻して挑戦画面で待機」という一連の流れが行われます。自動操作が止まるまで、放置しましょう(2分半くらい)。
※このプログラムは3日間日付を進めても月をまたがない想定で使っています。注意してください
なお、SwitchとArduinoを接続する際には、Switchに接続されている有線・無線コントローラーすべて(本体から取り外した状態のJoy-conや、プロコントローラーなどを含みます)の接続を解除または切断した状態にしてください。
5.自動操作が止まったら、目標のポケモンを捕獲しよう
ゲーム画面の動きが止まったら、画面に映っているポケモンが目標のポケモンだったかどうかを確認します。具体的には、ステップ3で確認したポケモンであればOKです。
今回の例(ボールレイクの湖畔D・レア/バッジ=8個/ROM=ソード)だと、まずは「★3 アオガラス」「★3 ゴルバット」のいずれかを見つけなければなりませんから、例えば「★4 アオガラス」「★5 クロバット」などで画面が止まっている場合はNGとなります(★の数も要注意!)。
目標のポケモンではなかった場合は、目標のポケモンが出るまでArduinoをSwitchから一度抜き、挿し直しましょう。
目標のポケモンが出現していた場合には、そのポケモンを捕獲します。
6.捕まえたポケモンの能力をツールに入力
捕まえたポケモンの特性・性格・能力値(個体値)をツールに入力します。
個体値の計算には、原則としてLv100まで引き上げるだけの「けいけんアメ」や「ふしぎなアメ」、そして性格補正で個体値判別が出来なかった場合に備えての「まじめミント」またはドーピングアイテムがあると非常に便利です。
6-1.利用できない個体値の場合
能力値を入力後、1-Star Seed Searchでは「NG!」、SW Seed Calculatorの画面で「利用できない個体値です」 という言葉がでてきた場合、残念ながら手順をやり直す必要があります。単純にやり直すのではなく、1日日付をずらす必要があります。
具体的な手順としては
- 一度、ゲームを終了する(再起動する)
- 巣穴レイドバトル「みんなで挑戦」を選択する
- Homeボタン→設定→日付を1日すすめる
- 巣穴からワットを回収する
- セーブする
になります。 セーブまで完了したらまた4~6の手順をやり直します。
6-2.利用できる個体値の場合
能力値を入力後、1-Star Seed Searchで「OK! Next ->」、SW Seed Calculatorの画面で「利用可能な個体値です」 という言葉がでてきた場合は、おめでとうございます。第1関門突破です。セーブしてはいけません。注意しましょう。
利用可能な個体値だった場合、次の目標ポケモンの指示も合わせてツール上に出てくるので、そちらを確認してください。具体的には、3V, 4V, 5Vなど、次に捕まえるべきポケモンのV数の指定が出てくるので、その数字にあった巣穴のポケモンを捕まえます。
なお、詳細な原理については割愛しますが、「SW Seed Calculator」を利用の場合、「4V -> 4連」のように、Vの数と連数が両方表示されることがあります。
この時、もし、複数のV数・連数のペアが表示されている場合は、可能な限り「連数」が多い方のV数ポケモンを捕まえてください。例えば「4V->6連 3V->5連」と表示された場合は、「4V」の方を選択してください。「4V/5V -> 4連」のように、連数が変わらない場合は、どちらでも大丈夫です。
次の目標となるポケモンを把握したら、セーブせずに次のステップに進んでください。
7.次の目標ポケモンを捕まえて個体値入力
「4日目(2体目)」のポケモンを捕まえる場合、基本的に4~6と同じ手順です。
要するに、「次のターゲットとなるポケモンが出るまでArduinoを挿し直す」だけでOKです。ターゲットとなるポケモンが出たら、レイドバトルをして捕獲してください。
これで、最初の日を起算日として、3日後のポケモン2匹の個体値がツールに入力された状態となっています。ここまでくれば次の作業も同じ流れ。この調子です。
なお、やはりレポートはしません。要注意です。
8.Arduinoのプログラム(4日後・5日目用)に書き換えよう
さて、ここでArduinoに話が戻ります。次のステップでは「5日目(4日後)」のポケモンを捕まえる必要がありますので、事前にArduinoのプログラムを書き換える必要があります。
具体的には、再びArduino IDEで先程のソースコードを開いて、TIME_WARP_DAYSの(3)を(4)に書き換えてArduinoに書き込めばOKです。
この1箇所の書き換えが完了したら、PCとArduinoをつなぎ、左上の「検証」「マイコンボードに書き込み」作業を行ってください。
ちなみに、次に捕まえるポケモンについてはツールの指示通り、基本的には不問ですが、可能な限りVの少ないレイドのほうが望ましいです。特にVの少なさはそっくりそのまま計算速度・精度に比例しますので、もし、マシンスペックが低いPCを使っている場合などは特に気をつけましょう。
9.次の目標ポケモンを捕まえて個体値入力
続いて、「5日目」のポケモンを捕まえる場合も、基本的に4~6と同じ手順です。ただし、ターゲットは不問となりますので、★の少ないレイドなどを厳選しましょう。要するに、「極力Vの少ないレイドが出るまでArduinoを挿し直す」だけでOKです。
口酸っぱく言いますが、ポケモンを捕まえた後はくれぐれもセーブしないように注意してください。
10.Arduinoのプログラム(5日後・6日目用)に書き換えよう
ここまで読まれた方にはお分かりかと思いますが、次のステップでは「6日目(5日後)」のポケモンを捕まえる必要がありますので、再びArduinoのプログラムを書き換えます。TIME_WARP_DAYSを(5)に書き換えてArduinoに書き込めばOKです。
11.最後の目標ポケモンを捕まえて個体値入力
「6日目」のポケモンを捕まえる手順も、基本的に4~6と同様です。★の少ないレイドが出るまでArduinoを抜き差しして、目当てのレイドだったら捕獲して個体値チェックです。
ここで妥協して星5レイドなどで済ませると、SEEDの誤検出のリスクも高くなるため、極力★3レイドなど、V数が少ないレイドを選ぶようにしましょう。ここまでくれば、「SW Seed Calculator」の4項目(ポケモン4匹分の個体値・性格ほか)が埋まっている状態となります。
なお、目安として、この時点でも右下の「誤Seed検出率」が「高」の場合は、素直に最初からやり直したほうが良いです(V数の少ないレイドが不十分だったり理由は色々ですが…)。
ここでも、捕まえてからセーブしてはいけません。くれぐれも気をつけましょう。
12.Seed推定をしよう
ここまでお疲れ様でした。あとは「SW Seed Calculator」右下の「計算」ボタンを押すだけです。
高速なCPU・グラフィックボード(GPU)を備えているゲーミングパソコンなどであれば、「Seedを1個見つけたら終了」の条件下では1分ほどでSeed特定ができます。
再計算回数と目安となる推定計算時間はツール中に記載の通りですので、例えば、再計算5回・CPUのみでの計算をするとこれが4時間半程度かかることがわかります。とにかく、計算が終わるまでは気長に待ちましょう。
なお、誤Seed検出率によっては、左下の「Seedを1つ見つけたら計算終了」のチェックボックスを外しておくことが必要になります。ただし、計算時間が非常に増えるのでPCスペックと相談してください。
参考までに、筆者環境(かなりしっかりしたゲーミングPC)でチェックを入れて計算すると10秒で計算完了していましたが、チェックを外して「10回」再計算の上限設定だと7分20秒もかかりました。計算時間で見ると44倍です。
まともに考えて、GPUを積んでいないPCだと時間がかかりすぎてしょうがないので、「誤Seed検出率が低であること」を前提とした上で、再計算「0~2」とかが落とし所ではないかと思います。
さて、推定されたSeedが無事に算出できれば、初期シード推定は完了です。お疲れ様でした。なお、この推定シードが複数ある場合には、初期シードを絞り込む作業が必要です。本稿では割愛しますが、前回記事の手順2-2-1を参考にしてください。
本稿では、初期シードは0xCBC17754E4E6EA62と特定できたので、次項もその数字で紹介します。
13.目標消費数を特定する
初期シードが特定できたので続いて、色違いのポケモンが出る目標消費数を計算します。目標消費数の計算ツールとしては、夜鯛氏による「8denSearch」、さびたコイル氏による「1-Seed Star Search」が主要です。これらの間で機能的な差はありません。本稿では導入手順については割愛しますが、本当にお好きな方を使ってください。
初期シード特定に使ったツールがSW Seed Calculatorの場合は8denSearchを、1-Star Seed Searchを使っている場合はそのまま1-Star Seed Searchを使うことをとりあえずはおすすめします。
本稿では、初期シード特定にSW Seed Calculatorを使ったので8denSearchを利用します。とは言っても、1-Star Seed Searchでも同じことができるので、ご安心ください。
手順としては、目標消費数を特定するためのツールに、初期シード値、バージョン・巣穴情報ほか、必要事項を入力し、計算を押すだけです。画面は、下記画像を参考にしてください。
目標の個体の左には、1日目(巣穴に投げ入れた日)から起算して、何日目に色違いが出現するかの消費数が記載されています。これが、十分に小さい数字であれば、その数字を手元に控えて次のステップに進みましょう。今回は、色違いの菱形・星型を特に気しないので、最も消費数が小さい「1108」を目指します。この数字は「1108日後」を表します。「1108日目」ではありません。次のステップで重要なので注意しましょう。
14.Arduinoのプログラムを書き込もう
次は高速消費のプログラムをArduinoに書き込みます。具体的には、前回記事のソースコード2からArduino IDEにコピペして書き込みます。
ただし、コピペして使うだけでなく、SHOHISUの数字を書き換える必要があります。先程ツールで確認した数字から-3の数字を入力してください。例えば、今回の例だと、1108なので、1105と入力します。ただし、-3だと、消費数と現在日付の関係でずれることがあるので、実際には-10程度で残りを手動でしたほうが良いと思います。
また、ソースコードの作りの甘さもあるので-10くらいでやるのが良い気もします。
このプログラムは31日まである月で使う前提なので、もしこれがクリアしていない場合は、予め2,4,6,9,11月「以外」に日付を変更しておいてください。
なお、このSHOHISUの上限は「32767」となります。もし、32768以上の消費が必要な場合、2回に分けるなどの工夫が必要です。これはArduino本体の仕様です。
また、プログラムですが、私が横着して作ったプログラムだったので、消費数の内部計算が甘く、実際の消費予定数より少なく消費される仕様になっていたので、55行目を下記のように書き換えると、より消費数が正しく消費できると思います。
本件は、私がExcelで計算して検証した数式なので、誤っている可能性もありますが、筆者は実機でこれでうまくいきました(検証回数:1回)。
これらを自己責任で書き換えていただき、ArduinoIDEでプログラムを書き込みましょう。
15.ランクマバグ状態にして、Arduinoを挿し込む
さて、目当てのポケモンに向けて消費(日付を進める作業)に移る必要がありますが、まずは、一度巣穴の場所を離れて、ポケモンセンターに移動してください。
その状態で、いわゆる「ランクマバグ状態」に移行してください。詳細な手順は、前の記事の手順3-1を参考にしてください。
ランクマバグ状態にしたら、Homeボタンから設定画面に入り、「日付と時刻」から日付の変更画面に入り、日付を更新せずに「OK」を押してください。
この状態でArduinoをSwitchに挿せば自動的に日付更新が始まっていきます。
16.巣穴に戻り、セーブして準備完了
自動作業が終わったら、前回記事の捕獲パートです。お疲れ様でした。ポケモンセンターから目的の巣穴の目の前まで戻り、セーブしましょう。
あとは、自身が目的の消費数-3の日付になっていることを確認し、「みんなで挑戦」から3回、日付を変更すればOKです。その際に、目的のポケモンが出たら挑戦してそのまま捕獲、違うポケモンだったらリセットして、目当てのポケモンのシルエットが出るまで3回日付を変更して挑戦を繰り返すだけです。
なお、このとき、目標のポケモンではなかった場合(色違いのはずなのに光らなかった場合)は、一度そのまま捕まえて、それがどの個体のポケモンなのか、該当する性格・個体値のポケモンが目標の個体の付近にいるかをツールで確認してください。
もし、目標のポケモンよりも手前(上側)のポケモンが出現している場合には、日付を回す回数をそのズレ分だけ実施すればOKです。なお、目標ポケモンよりも下側だったり、そもそも付近にそのポケモンが見当たらなかった場合は、手順1からやり直しとなります。前者の場合は消費が大きすぎる、後者の場合はそもそも初期シードの特定に失敗しています。めげずに確認してみましょう。
17.捕獲しておしまい!
目当てのポケモンに、任意のボールを投げて捕獲できれば完了です。お疲れ様でした。
あとがき
本稿では、前回記事では必要最小限に留めていた「Arduino Leonardoを乱数調整のどのタイミングで使うのか?どのタイミングでプログラムを書き込むのか?」に焦点を当てた補足記事を書きました。
基本的には最小限のプログラム書き換えで済むことや、Switchとの接続タイミングが何となくお分かりいただけたかと思います。
もし、前回の記事で「Arduinoと乱数調整が結びつかない!」となっていた人にとって、この記事が参考となれば幸いです。
ではではc⌒っ.ω.)っ
前回記事(本補足記事の対象):
【Arduino自動化05】乱数調整レイドで色違いパッチルドン探し【冠の雪原】
次の記事:
【Arduino自動化18】ローカルレイド自動配布【デリバードレイドでマックスこうせき】
導入記事:
【Arduino自動化17】ふしぎなおくりもの受け取り【あいことば自動入力】
ますたーです。こんにちは。
今回の記事では「ふしぎなおくりもの」での『あいことば』(シリアルコード)による受け取りを自動化します。
Arduino自動化記事はこれで第17回。これからもよろしくお願いします。
なお、Arduino Leonardo自動化の導入・機材構成については導入記事を参考にしてください。
導入記事:【Arduino自動化01】Arduino開発環境の導入
※本ブログに初めてお越しの方は「本ブログについて」もぜひ、ご覧ください。
概要
「ふしぎなおくりもの」の「シリアルコードで受け取る」を自動で行います。
では、もくじです。
今回も余談が多めなので、ソースコードだけ欲しい方は⇒読み飛ばす。
2021年2月27日は「赤・緑」発売から25周年の「ポケモンデー」
いきなり余談をはさみますが、ポケモンの最初の作品「赤・緑」が発売されたのは、今からちょうど25年前の、1996年2月27日でした。つまり、本日2021年2月27日は「ポケモン赤・緑発売25周年」となります。おめでとうございます!!
実は、昨年2020年には、株式会社ポケモンにより、2月27日を「ポケモンデー」として、記念日として制定(日本記念日協会が認定)されています。つまりは、今年の2月27日は発売25周年「ポケモンデー」となるわけですね。
「うたうを覚えたピカチュウ」を受け取ろう
明日2021年2月28日(日)には、ポケモン25周年を記念したバーチャルコンサートが開催されます。これを記念して、2021年2月27日現在、ポケモン剣盾では、「うたう」を覚えた特別なピカチュウがプレゼントされています(期日:3月25日(木)23時59分まで)。
プレゼント方法は、剣盾「ふしぎなおくりもの」の「あいことば」を使った配信です。
ちなみに、今回のピカチュウを受け取るための「あいことば」は「P25MUS1C」です。まさに「ポケモン25周年コンサート」を表すあいことばですね。
準備(プログラムの使い方など)
ここからが本題です。
「あいことば」をプログラムに書き込もう
今回のArduino自動化では、「あいことば」の入力から受け取りまでを自動で行います。入力する『あいことば』を予め準備しておきましょう。
プログラム上では、serial_code[][32]に書き込みます。
具体的には、今回のあいことばが「P25MUS1C」なので、これを半角のダブルクオートで囲み、最後に半角のカンマをつけて記入してください(例⇒ "P25MUS1C", )。「"P25M US1C",」のように、区切りの半角スペースを挟んでもしっかり動きます。
余談ですが、剣盾のキーボードでは「Z(ゼット)」「I(アイ)」「O(オー)」はそれぞれ数字の「2」「1」「0」と間違えやすいため使われません。
このプログラムでは上記表記ミスにも対応できるように作ったつもりです。例えば、誤って「P25 MUSIC」などと記入しても動くはずなので、各人が読みやすい方法で記入してください。
ちなみに、キャンペーンによっては、1つのキャンペーン中に複数(10程度)の『あいことば』が発行される場合があります(例えば、いずれもすでに期間は終了していますが「幻のポケモンゲットチャレンジ」「サトピカゲットキャンペーン」など)。このプログラムでは複数の「あいことば」の入力にも対応可能ですので、『あいことば』を複数serial_code[][32]の中に記入することで全部続けて入力できます。
1つのシリアルならいざ知らず、複数のシリアルコード(あいことば)を入力する場合には、特にサブロムを持っている人などは重宝すると思います。
YY通信でオンライン接続し、カーソルを「ふしぎなおくりもの」に合わせる
次に、ゲーム本編での準備ですが、まず、YY通信で「インターネットに接続」をしてください。フィールド画面でYボタン⇒+ボタンで接続できるはずです。そして、Xボタンでメニューを開いた時に「ふしぎなおくりもの」にカーソルが合うようにしたら、Bを押してフィールド画面にもどってください。以上、わずか2ステップで準備完了です。
あとは、フィールド画面でArduinoを挿すだけ。簡単ですね。
ソースコード
プログラムにはポケモン25周年コンサート記念の「うたうピカチュウ」のシリアルコード(P25MUS1C)が入力されています。必要に応じて書き換えて使用ください。
なお、予めインターネットに接続した状態で、メニュー開いた際に「ふしぎなおくりもの」にカーソルが合う状態で、Arduinoを挿すだけで動きます。
あとがき
今回は、ポケモン25周年ということで、記念して配布されている「うたうを覚えた特別なピカチュウ」をArduinoで受け取りました。
Arduino自動化の記事と言いつつ、まずはポケモンのファンとして、心の底から25周年をお祝いします。
自身が初めて出会ったポケモン作品が「金・銀」で、そこから遡る形で「赤・緑」も遊び、今に至るまでにポケモン本編作品についてはほぼすべてを遊んできました。どの作品にも思い入れがありますが、これだけシリーズを通してのめり込めたゲームは「ポケモン」だけです。自分の人生はポケモンとともにあった、と言っても過言で無い気もします。
そして、その遊び方も、「図鑑集め」「コンテスト制覇」「リボン集め」「育成・対戦」「ポケモンとの触れ合い」「色違い厳選」など、ずっと飽きることなく、たくさん広がりました。そして、ポケモン剣盾では、新たな遊び方として「Arduino自動化」が加わったような形です。
私にとってポケモンは、かけがえの無いゲームで、遊びごたえもキャラクタ性も、シナリオも全部が全部、大好きなのです。この25周年という節目の日に、こうやってブログで気持ちをしたためることができるのも、本当に光栄ですし、これからのポケモンの作品も楽しみで仕方がありません。
そういう意味では、ちょうど今日未明に新作「ブリリアントダイヤモンド」「シャイニングパール」のティザームービーも公開されましたが、今から発売日(2021年冬)が待ち遠しくてしょうがないです。25年分のワクワク、しっかりと温めておきたいです。
なにはともあれ、改めてポケモン25周年、おめでとうございます。
さて、話がだいぶ逸れました。
皆様のポケモンライフが、あるいはArduino自動化ライフが、このブログにより一助となれば幸いです。ではではc⌒っ.ω.)っ
前記事:【Arduino自動化16】自動ミラクル交換(ID集めほか)
導入記事:【Arduino自動化01】Arduino開発環境の導入
【Arduino自動化16】自動ミラクル交換(ID集めほか)
ますたーです。こんにちは。
今回は、自動でボックスのポケモンをマジカル交換(旧:ミラクル交換)に出し続けます。
※本記事ではポケモンを「交換に出します」。利用に際してはくれぐれも自己責任でお願いします
Arduino自動化記事はこれで第16回。これからもよろしくお願いします。
なお、Arduino Leonardo自動化の導入・機材構成については導入記事を参考にしてください。
導入記事:【Arduino自動化01】Arduino開発環境の導入
※本ブログに初めてお越しの方は「本ブログについて」もぜひ、ご覧ください。
概要
本記事では、YY通信のマジカル交換(旧:ミラクル交換)を自動で繰り返し行います。「孵化余り」の有効活用や、ロトミIDくじ用のID集めなどにお役立てください。
※2021年2月19日AM9時追記:本稿中の「ミラクル交換」はすべて「マジカル交換」の誤りです。過去作品に引っ張られました。以降、適宜読み替えてください
では、目次です。
ソースコードのみ欲しいという方はどうぞコチラから⇒読み飛ばす。
ミラクル交換でID集め(ロトミIDくじを効率的に)
ミラクル交換の大きな特徴は、何よりも交換先が全国不特定多数のポケモントレーナーであることです。ポケモン剣盾での「おやID」は6桁なので、32ボックス960匹をランダムに交換し続けたとしても、これらの間で重複が起こる可能性はほぼ0です※。
※無作為の960匹について、これらでIDが重複する確率は単純計算で 1-(1-1106)960=0.09595%
おやIDをたくさん集めることで、ロトミIDくじの当選確率もアップします。例えば、50種類のおやIDを入手しておくと「はずれ」が出る確率が1%を下回ったり、100種類のおやIDがあれば50%以上の確率で「ポイントアップ」が手に入るようになったりと、非常にお得です。【Arduino自動化14】ロトミIDくじ無限抽選では、このあたりの、IDの数と当選確率の話も纏めているので、合わせてご参考いただければと思います。
要するに、ミラクル交換で他人産IDのポケモンを50匹程度を集めておけば、ロトミIDくじが、まさにソシャゲの「ログインボーナス」のようになるのでおすすめです。
ほとんど毎日「ポイントアップ」が貰えて、時々「ポイントマックス」が貰えるとなれば、毎日のポケモンのモチベーションが大きく上がりますよね。
他人の孵化余りも手に入る
ミラクル交換のもう一つの魅力、それは、孵化余りを流すプレイヤーも多いということ。私も含め、孵化余りは積極的にGTSやポケモンHOMEでの交換、ミラクル交換に出していますが、ID集めはもちろん、これは何よりも他人の孵化余りを手に入れられるから。
現在、環境で流行っているポケモンの孵化余りが手に入ったり、有用なタマゴわざを持ったポケモン(うたかたのアリア持ちラプラス、じばく持ちゴンベなど)などが手に入りやすく、対戦ガチ勢にも嬉しい仕様ですね。
つまりは、高個体値のポケモンや夢特性のポケモン、タマゴわざを持っているポケモン、おしゃれボールに入ったポケモンなどを手に入れることもできます。特に海外産のポケモンも手に入りやすく、これらを活用するとタマゴ孵化による色違い厳選もはかどります。
ちなみに、全自動タマゴ孵化については本ブログでも取り扱っています。合わせてご参考いただければ幸いです⇒【Arduino自動化12】全自動タマゴ受け取り&孵化。
準備(プログラムの書き換え)
ミラクル交換をたくさん行うにあたっては、大量のポケモン準備する必要があります。また、効率的に通信交換をするためにも、図鑑は完成させておくと良いでしょう。
さて、本稿で扱う自動化プログラムについても、必要に応じて4箇所書き換える必要があります。
通信交換するポケモンの数
1箇所目は、何匹のポケモンを交換に出すかです。MAX_TRADE_POKEMONにて指定してください。必ずしも30の倍数である必要はありませんが、左詰めにあずけておいてください。
ミラクル交換の待ち時間
2箇所目は、ミラクル交換の待機時間です。具体的には、YY通信で「ミラクル交換」を選んでフィールドに戻ってから「交換完了!」の文字が出るまでの待機時間です。
概ね30秒あればマッチングすることが多いですが、時々マッチングに時間がかかり、50秒ほどかかることもあります。皆様の環境に合わせて数字を記入してください。
数字は、WAIT_TIME_FOR_MATCHINGに単位「秒」で記入してください。
なお、この時間指定が短すぎると、その次のループでうまく交換ができませんので注意しましょう。45秒で設定した筆者実証時には、85回の交換中3回、45秒以内での通信交換に失敗しています。もし、時間に余裕のある人は、60秒などの充分に大きな数字を設定しておくと良いかもしれません。
図鑑の状況と通信進化ポケモン
3箇所目・4箇所目は、ポケモン図鑑の完成状況(新たに登録される可能性があるかどうか)と、受け取ったポケモンが進化する可能性を考慮するかどうかです。これらは数字ではなく、trueまたはfalseを記入します。
ポケモン図鑑が完成している場合はPOKEDEX_COMPLETEDにtrueを指定してください。また、通信交換で進化するポケモンを無視する場合はIGNORE_EVOLVEをtrueにしてください。デフォルトでは、ポケモン図鑑は完成済(true)・通信進化ポケモンは無視しない(false)になっています。
ポケモン図鑑に登録されていないポケモンを交換で受け取った場合、その図鑑説明の画面が出てきます。こちらは、たかだか5秒程度のロスなので、図鑑完成していない人も、あまり気にならないかもしれません。
一方で、バケッチャ(パンプジンに進化)などの通信進化するポケモンを受け取った場合、そのポケモンの進化画面が発生してしまいます。この進化ポケモン、数は20数匹と多めで、意外と受け取る機会が多いです。
通信進化は長くて20秒は時間を取られるので、よほど受け取らない自信が無い限りは、IGNORE_EVOLVEをfalseにしておきましょう。
特に、稀有な機会ではありますが、メタルコート持ちストライクの場合、進化時に「バレットパンチ」を覚えようとするため、そういうところもケアする必要があります。
実際に自動化ミラクル交換を試してみた
早速、85匹のパッチルドンを用意して、ミラクル交換のArduino自動化を実装&試してみました。
設定は1試行あたり45秒の待機時間、ポケモン図鑑は完成済、進化ポケモンは無視しない想定で、かかった時間は約3時間20分でした。1回の交換にかかる時間を平均すると約2分20秒となります。
なお、特筆すべき点として、待機時間を45秒に設定で、85回の通信交換中、3回はこの時間内に通信交換が成立せず、それぞれの翌試行分の交換が失敗しています。ゆえに、通信交換に成功したのは82匹です(いずれの試行も、通信交換に失敗した次の試行でループが復帰していました)。一応、これを避けるためには、待機時間を冗長に設定する他はありません。体感としては、60秒ほどあれば通信交換がほぼ成立すると考えます。
ちなみに、82匹の交換が成立したわけですが、そのうち1回のみ、通信交換するポケモン(バケッチャ)を受け取っています。約80回に1回(確率にすれば約1.25%)ですし、もし「全体的に時間効率を高めたい」という人は、IGNORE_EVOLVEを(true)にしても良いかもしれません。
ソースコード
さて、実際に使ったソースコードです。
使い方は簡単。ボックスを左詰めにした後、ポケモン剣盾をインターネット接続し、Arduinoを挿し込むだけ。
ただし、前述の通り、4箇所は各人のステータスに応じて書き換えてください。
あとがき
今回は16回目のArduino自動化記事として、ミラクル交換の自動化を紹介しました。
自分で実装してみて、思った以上にデバッグが大変だと思いました。長時間放置することが前提のプログラムゆえに、挙動を見守るのが大変で、コーディングをする時間よりも、本当に動くのか?を見守る時間のほうが10倍くらい長かった気がします。
私の本職は、プログラマでもデバッガーでもSEでも無いですが、本当にデバッグという作業は心がポキっと行くんだろうな、と漠然と感じました。
さて、話が逸れましたね。
今回のミラクル交換の実装により、今まで作ったプログラムが更に相互に利用しやすくなったな、と感じます。
具体的には、下記のようなサイクルでポケモンを遊び続けられるなぁと。
- 【Arduino自動化12】全自動タマゴ受け取り&孵化で色違い厳選など
- タマゴ孵化を経て、余ったポケモンたちを他人産ポケモンと交換(本稿)
- 集まったIDを使って【Arduino自動化14】ロトミIDくじ無限抽選
- 抽選後、不要なポケモンは【Arduino自動化13】全自動ポケモン逃がしでリリース
- オシャボや海外産ポケモンを活用し、タマゴ孵化厳選へ(1に戻る)
ほかにも、育成用アイテムは例えば【Arduino自動化11】5番道路で全自動羽集めなどで端数の努力値振りも対応できますし、「とくせいパッチ」などは【Arduino自動化06】完全放置「マックスこうせき」集め【ダイマックスアドベンチャー】で手に入れられるんですよね。
そういう意味で、Arduinoの自動化は、ポケモンの遊び方を深めることも、作業の代替もできるんだな、と改めて感じました。
皆様においても、このブログの記事ほかがお役立ていただければ幸いです。
ではではc⌒っ.ω.)っ
前記事:【Arduino自動化15】ラテラルタウン掘り出し物自動購入
次記事:【Arduino自動化17】ふしぎなおくりもの受け取り【あいことば自動入力】
導入記事:【Arduino自動化01】Arduino開発環境の導入
【Arduino自動化15】ラテラルタウン掘り出し物自動購入
ますたーです。こんにちは。
今回は、いわゆるランクマバグ状態で「掘り出し物」を買い続ける自動化記事です。
第15回目のArduino自動化記事。引き続きよろしくお願いします。
なお、Arduino Leonardo自動化の導入・機材構成については導入記事を参考にしてください。
導入記事:【Arduino自動化01】Arduino開発環境の導入
※本ブログに初めてお越しの方は「本ブログについて」もぜひ、ご覧ください。
概要
本記事では、ランクマバグ状態※による自動「ほりだしもの」購入を実装します。
※便宜上「ランクマバグ」と表記しますが、当ブログではランクマッチを使用しません。通信切断・初手降参の推奨もしません。
NintendoSwitch Ver.11.0アップデート対応済です。
★2021/9/20追記:NintendoSwitch Ver.13.0アップデート対応済です。
★2022/10/23追記:NintendoSwitch Ver.15.0アップデート対応済です。
では、目次です。
相変わらず余談多めですので、ソースコードだけ欲しいという方は⇒読み飛ばす。
ほりだしもの市でしか手に入らない「ぼうごパット」
余談を挟む余地もなく、最初に結論から話します。なぜ掘り出し物市を自動化するのか、その理由は、ここでしか買えないアイテム「ぼうごパット」があるからです。
また、ここでの入手が現実的なアイテムも複数あるのも魅力ですね。
ここからはすこしだけ、余談をはさみます。
「『ぼうごパット』についてはいい、他のアイテムは何が手に入るんだ」という方は⇒読み飛ばす。
どうぐ「ぼうごパット」の希少性
ガラル地方では本編(DLC含まず)において入手が困難なアイテムがいくつかあります。その中の筆頭として挙がるのはおそらく、「かえんだま」と「どくどくだま」※1、「マスターボール※2」「各種ガンテツボール※3」などでしょうか。なぜかは言わずもがな、これらは原則として「運」でしか手に入らないからです。
※1「かえんだま」「どくどくだま」はDLC・配布を除くと、トーナメントでの勝利報酬でしか入手できません
※2「マスターボール」はシナリオ内で1個+IDくじの特等で入手できます
※3「各種ガンテツボール」はシナリオ内で各1個+トーナメントでの勝利報酬で入手できます
さて、前述の通り「ぼうごパット」は、ラテラルタウンの「ほりだしもの市」でしか入手できない貴重なアイテムです。
しかも、上記「かえんだま」「どくどくだま」「ガンテツボール」などとは違い、剣盾発売から1年以上経った2021年2月11日現在において1度たりとも配布されたりレイド報酬になったりしたことがない「正真正銘」ここでしか手に入らないアイテムです。また、DLCで拾えたり作れたりするようになった「かえんだま」等とも違い、DLCを含めても入手方法がここだけです。如何に「ぼうごパット」がレアかがお分かりいただけたかと思います。
どうぐ「ぼうごパット」の効果
そんな幻の超激レアアイテム「ぼうごパット」は、多少ピンポイントながら効果も優秀。その驚きの効果は「直接攻撃に対して発動するわざ・とくせい・どうぐの効果を受けない」というもの。
メジャーどころでは「せいでんき」「ほうし」「さめはだ」「てつのトゲ」など、直接攻撃した際に発動する特性をほぼシャットアウトできます。また、追加効果が非常に厄介な守備技「ブロッキング(防御2段階ダウン)」「トーチカ(どく状態付与)」「ニードルガード(最大HPの1/8ダメージ)」などの追加効果を無効化できます。
さらに、どうぐ「ゴツゴツメット」の効果も無効にできるので、例えばナットレイには2重の意味で強く出られますし、ゴツメサンダー@夢(せいでんき)にも強く出られるかもしれませんね。
ただ、ここまで持ち上げておいてなんですが、皆様もよくご存知の通り対戦ではほとんど使われません。つまりは読まれにくい、ということだと思うので誰か使ってみてください。
ほりだしもの市で入手できる道具
さて、大きく話が逸れたので、一旦ラテラルタウンの話題に戻します。
ほりだしもの市では、1日に1回、露天商のお兄さんから3,000円でその日のほりだしものを購入することができます。また、前日に購入していなかった場合は、前日のほりだしものも5,000円で購入することができます。
目玉商品は前述の「ぼうごパット」ですが、有用なアイテムや他の入手方法が困難or現実的ではないアイテムも売られることがあるため、そちらも狙い目です。
いちおう、筆者的に狙い目のものには、黄色で網掛けしています。入手方法について特にコメントしていないものは、道中で拾えたり貰えたりするものです。
店頭に並ぶ頻度 | なまえ | 用途 | 入手方法または筆者コメント |
非常に多い | われたポット | ヤバチャ(がんさくフォルム)の進化用 | 実はガラル地方のどこにも落ちていない。DLC2弾「巨人の寝床」でドロップ報告あり。 |
多い | するどいツメ | 急所率が1段階上がる。夜にはニューラの進化にも | 進化に使うが、ニューラは持っていない。ちなみにピントレンズと同じ効果。 |
多い | プロテクター | サイドンの通信進化用 | 第4世代では1個しか手に入らない貴重アイテムだったのに… |
多い | れいかいのぬの | サマヨールの通信進化用 | DPではギラティナ捕獲後、最奥の部屋にあるアイテムだった。でもギラティナは関係ない |
ときどき | せんせいのツメ | 20%で先制攻撃できる | ニューラが5%で持っている。ここで手に入れよう。 |
ときどき | メタルコート | はがねタイプのわざの威力が1.2倍に。イワーク等の通信進化にも。 | 穴掘り兄弟が掘り当ててくれるので結構余りがち。進化アイテムなのに効果がある。 |
まれ | かけたポット | ヤバチャ(しんさくフォルム)の進化用 | ポケセンで売ると19,000円に化ける。まさに文字通りの掘り出し物。 |
まれ | きあいのハチマキ | ひんし相当の被ダメージ時、10%の確率でHP1で耐える | ワンリキーが5%で持っている。ここで手に入れよう。 |
まれ | きせきのタネ | くさタイプのわざの威力が1.2倍になる | 特にコメントが思いつかない。 |
まれ | くろいヘドロ | どくタイプは毎ターン1/16回復。それ以外は1/8ダメージ | ドヒドイデのイメージが強いが、野生で持っているのはグレッグル系列とダストダス。 |
まれ | しめつけバンド | わざ「しめつける」の毎ターンダメージが1/8⇒1/6になる | かつては幻の超激レアアイテムだった。DLC第2段冠の雪原で開放。 |
まれ | しんぴのしずく | みずタイプのわざの威力が1.2倍になる | 実はラプラスが100%持っている。2番道路でランダムに会えるぞ。 |
まれ | どくバリ | どくタイプのわざの威力が1.2倍になる | ハリーセン・ロゼリア系列・スコルピ系列が5%で持っている。 |
まれ | ねらいのまと | 相性無効タイプの被ダメージが等倍で当たるようになる | DLC第1段ウッウロボ以外では入手不可。こいつも幻の超激レアアイテムだった。 |
まれ | のろいのおふだ | ゴーストタイプのわざの威力が1.2倍になる | ヨマワル系列が5%で持っている。ここで手に入れよう。 |
まれ | ぼうごパット | 直接攻撃に対して発動するわざ・とくせい・どうぐの効果を受けない | 幻の超激レアアイテム。文字通りここでしか手に入らない!ちなみに「パッド」ではない |
まれ | まがったスプーン | エスパータイプのわざの威力が1.2倍になる | ケーシィが5%で持っている。ここで手に入れよう。 |
まれ | メトロノーム | 同じわざを繰り返し使うと威力アップ(+20%ずつ/最大+100%) | かつては幻の超激レアアイテムだった。DLC第2段冠の雪原で開放。 |
まれ | もくたん | ほのおタイプのわざの威力が1.2倍になる | 金銀では9,800円で買えた=売価4,900円だったが、今作では500円にしかならない。 |
まれ | りゅうのキバ | ドラゴンタイプのわざの威力が1.2倍になる | DLC第1段ウッウロボ以外では入手不可。こいつも幻の超激レアアイテムだった。 |
ごくまれ | ぎんのこな | むしタイプのわざの威力が1.2倍になる | コメント特になし。4番道路で拾えるそうです。 |
ごくまれ | するどいくちばし | ひこうタイプのわざの威力が1.2倍になる | コメント特になし。これも4番道路で拾えるそうです。 |
ごくまれ | くろいメガネ | あくタイプのわざの威力が1.2倍になる | RSEでカナシダトンネルを抜けたところで拾ったときのイベントが思い出です。 |
ごくまれ | くろおび | かくとうタイプのわざの威力が1.2倍になる | 金銀ではいかりのみずうみで水曜にミズオから貰えたが、いあいぎり必須なので不便。 |
ごくまれ | じしゃく | でんきタイプのわざの威力が1.2倍になる | 金銀では日曜日のニチオから貰えた。個人的に初めて出会った曜日兄弟でした。 |
ごくまれ | シルクのスカーフ | ノーマルタイプのわざの威力が1.2倍になる | RSEではマッスグマにもたせていました。まさか今作であくタイプになるとは… |
ごくまれ | せいれいプレート | フェアリータイプのわざの威力が1.2倍になる | 唯一残ったプレート。アルセウスはノーマルかフェアリーの二者択一を迫られることに。 |
ごくまれ | とけないこおり | こおりタイプのわざの威力が1.2倍になる | バイバニラが50%の確率で持っている。バニプッチは5%だ。 |
※注:上記の「幻の超激レアアイテム」とは、このラテラルタウンでしか入手できないことを指します
プログラムの使い方(ランクマバグの入り方)
前述の項目などを通して、ラテラルタウンの「ほりだしもの市」が如何に重要かがわかったと思います。特に、DLCを買っていない人には唯一の入手経路となるアイテムが5つもあるわけですから、無視するわけにもいきませんね。
さて、おまたせしました。肝心のプログラムの使い方です。
本稿でも、前回の【Arduino自動化14】ロトミIDくじ無限抽選と同じく、いわゆるランクマバグ状態でプログラムを動かします。やり方については、何も難しいことはなく、ランクマッチで1戦するだけなのですが、ランクマッチ以外の方法だと下記もあります。画像は過去記事の使いまわしです。あしからず。
- YY通信で「通信対戦」を行う(ローカル通信)
- もう一台のSwitch・剣盾を使ってその通信対戦に応じる
- 戦闘が始まったらHomeボタン長押し→「機内モード」をONに変更する
- エラーが発生するのでそれを閉じて、「にげる」選択
- フィールド画面に戻ってくる(ランクマバグ状態に移行完了)
ソースコード
使い方は、ラテラルタウンの露天商のお兄さんの前で、ランクマバグ状態でArduinoを挿し込むだけの簡単仕様です。1試行あたり25秒(実測値)でした。1回で3,000円取られるので、ちゃんと金額は準備しておきましょう。
なお、新規アイテム(初めて入手したアイテム)があっても、そのままループは破綻しませんので、そのまま放置でOKのはずです。
NintendoSwitch Ver.11.0アップデート対応済です。
2021/9/20追記:NintendoSwitch Ver.13.0アップデート対応済(詳細はこちら)
2022/10/23追記:NintendoSwitch Ver.15.0アップデート対応済
※Switch Liteをご利用の方は「#define SWITCH_VER (15)」を「#define SWITCH_VER (12)」に書き換えてご利用ください。ただし、未検証です。
一応、ループが破綻せずに2周目でズレを吸収する様子を↓下記GIF画像にて。
あとがき
今回で、Arduino自動化記事も15本目となります。
皆様に支えられ、本ブログも開設から3ヶ月が経過し、月間PV数も平均で2,537PV/月にまで成長しました(2021/2/8 0:00計算)。引き続きよろしくお願いいたします。
さて、DLCも第2弾まで出ているのに「なんで今更ラテラルタウンの記事?」と思った方も、ここまで読んでいただいて、「ここでしか入手できないアイテムなんてあったのか!」と驚いた方も多いのでは無いでしょうか。また、「『ぼうごパット』というアイテムなんて存在すら知らなかった!」という方もいらっしゃると思います。
上述しましたが、超激レアアイテムの「ぼうごパット」は、メタとしては強力な一方、汎用性には乏しくかなりピンポイントな運用になると思います。が、それ故にきっと意表を突けるアイテム枠として採用できるポテンシャルは充分にあると思います。
本ブログ記事が、皆様にとって「ぼうごパット」を今一度認識する機会となったり、Arduino自動化の一助となったりすれば幸いです。
ではではc⌒っ.ω.)っ
次の記事:【Arduino自動化16】自動ミラクル交換(ID集めほか)
導入記事:【Arduino自動化01】Arduino開発環境の導入
【Arduino自動化14】ロトミIDくじ無限抽選
ますたーです。こんにちは。
今回は、いわゆるランクマバグ状態で「ロトミIDくじ」を引き続ける自動化記事です。
Arduino自動化記事もこれで第14回。これからもよろしくお願いします。
なお、Arduino Leonardo自動化の導入・機材構成については導入記事を参考にしてください。
導入記事:【Arduino自動化01】Arduino開発環境の導入
※本ブログに初めてお越しの方は「本ブログについて」もぜひ、ご覧ください。
概要
本記事では、ランクマバグ状態※を利用した、ロトミIDくじ無限抽選を実装します。
※便宜上「ランクマバグ」と表記しますが、当ブログではランクマッチを使用しません。通信切断・初手降参の推奨もしません。
【!】ロトミIDくじは、その特性上、大量の「レポート」を伴います。必然的にmicroSDや本体メモリへの書き込みが増えますので、セーブデータ破損のリスクや動作不良のリスクなど、充分に危険性を理解した上でご参考ください。
NintendoSwitch Ver.11.0アップデート対応済です。
★2021/9/20追記:NintendoSwitch Ver.13.0アップデート対応済です。
★2022/10/23追記:NintendoSwitch Ver.15.0アップデート対応済です。
では、目次です。確率計算とかもしました!(理系っぽい!)
ロトミIDくじの当選確率を知りたいという方はコチラ⇒読み飛ばす。
- 概要
- ポケモンセンターでロトミIDくじが引ける
- ロトミIDくじで特等「マスターボール」を狙う
- ロトミIDくじの当選確率
- 「マスターボール」の当選確率は2倍?
- プログラムの使い方(ランクマバグの入り方)
- ソースコード
- あとがき
ポケモンセンターでロトミIDくじが引ける
まずは前提、というか余談です。
ポケモン剣盾では、ポケモンセンター各店舗のパソコンライクな機械「ロトミ」で1日1回「IDくじ」を引くことができます。
「IDくじ」をご存じない方にも説明をすると、手持ち・ボックスにいる全ポケモンの親IDと、ランダムで発生した5桁の乱数とを比較し、一致する桁数に応じて賞品が貰える、という毎作品お馴染みのおまけ要素です。
古くは第二世代(金銀)時代に始まり、ID完全一致の特等景品「マスターボール」は当時からの憧れの的でした(当時は、1日1回ではなく1週間に1回だったので引ける回数は大きく増えましたね)。完全に余談ですが、この「IDくじ」、何故か第五世代(BW)だけなかったんですよね。毎日のゲームモチベが減ったものです。
前作までは、わざわざコガネシティ(ラジオとう)やミナモシティ(ミナモデパート)、コトブキシティ(テレビコトブキ)などの街に移動する、いわゆる「IDくじのための移動」が必要でした。
今作は、なんと、どこの街のポケモンセンターでもIDくじが引けます。DLCでも、鎧の孤島なら拠点にロトミを連れてくることができるため、大変手軽にくじを回すことができるようになりました。また、今作のIDくじについても例外なく、特等(=ID下5桁一致)の賞品は「マスターボール」になります。
ロトミIDくじで特等「マスターボール」を狙う
ロトミIDくじは、ランダムに生成された5桁の数字を、手持ち・ボックスの全ポケモン(ポケジョブ除く)の親IDそれぞれの下5桁とを比較し、一致した桁数に応じて賞品がもらえます。
さて、肝心の特等「マスターボール」ですが、前述の通り親IDの下5桁が完全一致する必要があります。親IDが1つの場合(例えば一切他人と交換していない場合)の「マスターボール」当選確率を計算すると、「10の5乗分の1」になります。すなわち、わずか0.001%です※。
※一説によれば、今作は先頭5桁の一致も含むという噂?があるようです。それに則れば単純計算で当選確率は2倍になりますが、本ブログでは7回「特等」を当選していますが「上5桁一致」での当選はありませんでした。そのため、下5桁のみ当選する前提にて確率計算・表記しています
※ところが、後述の通り、実測値で計算した確率が「理論値の2倍」になります
ロトミIDくじの当選確率
上述の通り、「マスターボール」の当選確率はただでさえ低いですので、ミラクル交換やポケモンHOME(スマホ版)の交換機能などを活用し、できるだけ親IDを集めておくと良いでしょう。
ボックスいっぱいにすると30匹×32ボックス=960匹預けることができますので、これらのIDに一切の重複が無いと仮定すれば、マスターボールの当選確率が約1%まで跳ね上がります。
一応、理論値としては、手持ち6匹+960匹すべて違うポケモンで0.9614%が上限です。
300匹で特等の確率は0.3%程度になるので、マスターボール狙いなら、少なくとも10ボックス程度は他人の親IDのポケモンで埋めておきたいです。どうしても難しい場合でも、ハズレの確率が1%を下回る50種類までは少なくとも集めておきたいです。
なお、IDの一致桁数に応じた賞品の当選確率は下記の通りです(筆者試算)。
ID数 | 【特等】5桁 マスターボール |
【1等】4桁 ふしぎなあめ |
【2等】3桁 ポイントマックス |
【3等】2桁 ポイントアップ |
【4等】1桁 モーモーミルク |
はずれ |
1 | 0.00% | 0.01% | 0.09% | 0.90% | 9.00% | 90.00% |
10 | 0.01% | 0.08% | 0.81% | 7.75% | 52.41% | 38.94% |
25 | 0.02% | 0.20% | 2.00% | 18.00% | 70.31% | 9.46% |
50 | 0.05% | 0.40% | 3.95% | 31.96% | 62.74% | 0.90% |
100 | 0.10% | 0.80% | 7.71% | 50.90% | 40.48% | 0.01% |
300 | 0.30% | 2.36% | 21.01% | 69.69% | 6.64% | 0.00% |
500 | 0.50% | 3.90% | 31.85% | 62.66% | 1.09% | 0.00% |
700 | 0.70% | 5.41% | 40.65% | 53.07% | 0.18% | 0.00% |
960 | 0.96% | 7.32% | 49.59% | 42.11% | 0.02% | 0.00% |
966 | 0.96% | 7.37% | 49.77% | 41.89% | 0.02% | 0.00% |
言わずもがな、ポイントマックスはもちろんマスターボールやふしぎなあめの当選確率は、持っているID数が多ければ多いほど上がります。ユニークなのはポイントアップとモーモーミルクの当選確率で、途中で極大値を取ります。
具体的には、ポイントアップは283匹の時に69.764%、モーモーミルクは28匹の時に70.504%でそれぞれ極大値を取ります。現実的に960匹違うIDでボックスを埋めるのはツライと思いますので、このあたりを参考に、狙う道具を検討しつつ、事前に用意するポケモンの数を検討すべしですね。
「マスターボール」の当選確率は2倍?
9時間46分放置でマスターボールを7個入手しました
筆者は過去作でGTS交換したものなども含めて12ボックス分(360匹)、ポケモンHOMEで連れてきて、自動化プログラムを使用しました。結果、プログラムを9時間46分稼働させ続け、推定試行回数888抽選で「マスターボール」7つを入手できました。
マスターボールの当選確率を計算(考察)
さて、確率計算です。完全に余談ですので、読み飛ばしOKです→読み飛ばす
888試行に対して7回の「特等」当選ですが、これは確率に表すと0.7883%になります。一方、12ボックス分(360匹)での、1試行あたりの入手確率は計算上、0.3593%になります。すなわち、実績値が理論値のおおよそ2倍になるという、かなり稀有な事象が起こっています。
もし、噂通り「上5桁も当選する仕様」なら理論値は上記2倍の0.7187%になるので理論値とかなり近しくなりますが、これはかなり不思議です。というのも、筆者が特等を引いた7回とも「下5桁」で当選しているからです※。
※7回続けて「下5桁」で当選するのは統計学的に有意水準1%で有意な偏り(符号検定よりp<0.01)と言えます。要するに偶然の範疇を超えています
なので、もしかしたら、ロトミは内部的に2回「下5桁完全一致」の抽選を行っているのかもしれませんし、上5桁で当選した時に、下5桁で言い直しているのかもしれません。
いずれにしても、実績値から考えるに当選確率は、単純な「下5桁完全一致」で計算した理論値の2倍と考えるのが妥当なので、ロトミIDくじの各賞品の当選確率は下表になるかもしれません。どちらを信じるかは読者の判断に委ねます。
ID数 | 【特等】5桁 マスターボール |
【1等】4桁 ふしぎなあめ |
【2等】3桁 ポイントマックス |
【3等】2桁 ポイントアップ |
【4等】1桁 モーモーミルク |
はずれ |
1 | 0.00% | 0.01% | 0.09% | 0.90% | 9.00% | 90.00% |
10 | 0.02% | 0.06% | 0.82% | 7.75% | 52.41% | 38.94% |
25 | 0.05% | 0.15% | 2.03% | 18.00% | 70.31% | 9.46% |
50 | 0.10% | 0.30% | 4.00% | 31.96% | 62.74% | 0.90% |
100 | 0.20% | 0.60% | 7.81% | 50.90% | 40.48% | 0.01% |
300 | 0.60% | 1.77% | 21.30% | 69.69% | 6.64% | 0.00% |
500 | 1.00% | 2.93% | 32.33% | 62.66% | 1.09% | 0.00% |
700 | 1.39% | 4.06% | 41.31% | 53.07% | 0.18% | 0.00% |
960 | 1.90% | 5.49% | 50.48% | 42.11% | 0.02% | 0.00% |
966 | 1.91% | 5.52% | 50.66% | 41.89% | 0.02% | 0.00% |
プログラムの使い方(ランクマバグの入り方)
おまたせしました。
肝心のプログラムの使い方ですが、ロトミの前でソースコードを書き込んだArduinoを挿し込むだけの簡単仕様です。ただし、いわゆる「ランクマバグ」状態で使う必要がありますので、ランクマッチで1戦してください。
なお、ランクマッチを使用しない方法での「ランクマバグ状態」移行は下記手順でできます。画像は過去記事の使いまわしです。あしからず。
- YY通信で「通信対戦」を行う(ローカル通信)
- もう一台のSwitch・剣盾を使ってその通信対戦に応じる
- 戦闘が始まったらHomeボタン長押し→「機内モード」をONに変更する
- エラーが発生するのでそれを閉じて、「にげる」選択
- フィールド画面に戻ってくる(ランクマバグ状態に移行完了)
ソースコード
今回も例のごとく、「ランクマバグ」状態で使います。使い方は、最寄りのポケモンセンターのロトミの前でArduinoを挿し込むだけの簡単仕様です。
30試行あたり19分47秒(実測値)だったので、ざっくり1時間放置で90回抽選できます。
NintendoSwitch Ver.11.0アップデート対応済です。
2021/9/20追記:NintendoSwitch Ver.13.0アップデート対応済(詳細はこちら)
2022/10/23追記:NintendoSwitch Ver.15.0アップデート対応済
※Switch Liteをご利用の方は「#define SWITCH_VER (15)」を「#define SWITCH_VER (12)」に書き換えてご利用ください。ただし、未検証です。
※2023/5/31 微修正
あとがき
今回は、「ロトミIDくじ」の自動化について紹介しました。
ロトミってRotom Information Serviceの意味だったんですね。この記事を書くまで知りませんでした。
さて、本稿でも結構考察しましたが、様々なWebサイトを調べてもマスターボールの当選について「5桁一致」とは書いてあるものの「下5桁」のみならず「上5桁」も含むのかが分からず、自分で検証してしまいました。
結論、ロトミは「下5桁」でしか当選を教えてくれないが、確率は単純計算時の2倍で設定されている、という仮説ができましたね。そういう意味では、ある意味「自動化記事」でありながら「疑問だし記事」にもなってしまいました(笑)。
誰か、数学に強い人か、ロトミに詳しいポケモン博士にぜひともコメントしていただきたいものです(もしかしたらそもそも私の試算が間違っている、なんて本末転倒かもしれませんし)。
話が逸れましたが、これで「マスターボール」の自動入手もできるようになりました。マスターボールは「孵化厳選」では絶対に引き継げない、とても希少なボールですし、ボールエフェクトもカッコイイんですよね。そういう意味でも、すごく需要があるボールなのに…。もう少し手軽に入手できれば良いのにな、と思います。そういった意味でも、需要のある自動化だったのではないでしょうか。
本ブログが皆様の自動化ライフをより豊かなものにできれば幸いです。
ではではc⌒っ.ω.)っ
導入記事:【Arduino自動化01】Arduino開発環境の導入
次の記事:【Arduino自動化15】ラテラルタウン掘り出し物自動購入
2021/2/19追記:IDを効率よく集められる「ミラクル交換」の自動化記事を執筆しました。