Try   HackMD

こんにちは。ニアトです。

先日はBDSP乱数ツール "XsReader" の紹介をしましたが、今回は別のBDSP乱数ツールであるGo Readerを紹介します。

Go Readerの概要(1)

Go Readerは2022年3月に夜綱氏によって開発された、BDSP向けのID調整ツールです。

Readme.txtでの紹介を以下に引用します。

BDSPのゴンベの瞬きを観測するやつです。

流石にこれだけだと味気ないのでもう少し解説しましょう。

Go Readerの概要(2)

このツールは以前私が考察したID調整のアルゴリズム と、夜綱氏本人による改良アルゴリズムをC#上で実装したものとなっています。

GoReaderを使ってID調整を行う場合の想定フローは以下の通りです。

  1. init(基準Seed)を特定する
  2. 欲しい6桁のidを入力して検索する
  3. 名前入力->キャンセルを繰り返して乱数消費する
  4. seed再特定をして目標消費数にどれだけ近づいたか調べる
  5. 消費数けんさくけっかで出てきたものに十分近づくまで3,4 を繰り返す
  6. 消費数検索結果で表示されているものと等しくなったときに主人公の顔写真を選択する
  7. 目的のIDに調整完了!

PlayerBlink(Python製BDSP乱数ツール)でもID調整は可能ですが、GoReaderの方が高速なアルゴリズムを採用しており、さらに動作安定性が高いのが特徴です。

ID調整を行う場合は基本的にこちらのツールを利用することを推奨します。

手法の説明

GoReaderを利用したID調整の手法について説明していきます。

準備:環境構築

必要な機材・ソフトウェアを以下に示します。

機材

  • Windows PC
  • Nintendo Switch
  • キャプチャーボード

switchの画面をPCに取り込める環境が必要となります。

ソフトウェア

  • (任意)OBSなどのキャプチャ用ソフト

キャプチャーボードを持っている方であればOBSなどは既に導入されていると思います。

もし導入されていない方の場合でも、Windows10以降のPCをお使いであれば"カメラ"アプリが標準で入っているのでそちらで代用可能です。

以降の説明ではOBSを用いて説明します。他のソフトをお使いの方は各自の環境に読み替えてください。

準備:ツールのDL

以下のURLからリンク先のダウンロードボタンをクリックしてGoReader.zipをダウンロードします。Dropboxの登録を求められることがありますが、無視して問題ありません。

https://www.dropbox.com/sh/2kv6tp6d54opkfx/AAA2VmSdrooAodC5KzGLxv58a?dl=0

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

zipファイルをダウンロードしたらファイルを展開(解凍)します。

zipファイルをダブルクリックして開いても動作しません。必ず展開したフォルダから実行してください。

実践:基準Seedの特定

Switch側の準備

任意の言語を選んで新しくゲームを開始して、ナナカマド博士がゴンベを出す画面まで進めてください。

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

以降、基準Seed特定が完了するまでSwitch側を操作する必要はありません。場合によっては長時間放置することになるため、自動スリープは切っておきましょう。

Switch側でやりがちなミスとして

  • 画面がスリープして観測が中断された

などが挙げられます。

画像の撮影

つづいてPC側でゴンベの目の画像を撮影しましょう。

ツールを開き、キャプチャ枠表示をクリックすると小さなウィンドウが表示されます。
今後、このウィンドウのことをキャプチャウィンドウと呼称します。

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

キャプチャウィンドウをキャプボの画面上まで移動させ、ゴンベの目の位置に合わせます。

このとき、ウィンドウのサイズを変更してなるべくゴンベの目だけが入るように調整してください。

位置があっていることを確認して、ツールの画像保存ボタンをクリックします。

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

すると、GoReader.exeと同じフォルダに撮影した画像(yyyymmddhhmmss.png)が保存されます。必要に応じてリネームした上で、Source フォルダに格納してください。

PCの画面設定によっては目の画像を正しく撮影出来ない場合があります。

その場合は設定タブ内のディスプレイスケールの項目をお使いのディスプレイのスケーリングと同じ値にセットしたうえで再度撮影してください。

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

参考:
Windows 10 PCを導入したらすぐにディスプレイの表示サイズを設定しよう(スケーリング)

また、目の画像が大きすぎる場合は正常に瞬きを検知できないことがあります。

その場合は保存した画像に対して、画像ファイルを右クリック->プログラムから開く->ペイントからペイントツールを起動しトリミングしてください。

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

ペイントを用いたトリミングの方法等に関しては本記事の趣旨上解説しません。使い方が分からない場合は各自で調べていただくようお願いします。

瞬きの観測

いよいよ基準Seedの特定を行います。

設定タブ内の瞬き画像リストから先ほど撮影した画像を選択します(もし見つからない場合はReloadボタンをクリックしてください)。選択したら保存ボタンを押します。

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

先ほど撮影に用いたキャプチャウィンドウは少し広げておきます。

その後seed特定タブに戻り、自動検索に☑を入れて開始ボタンをクリックすると瞬き観測が開始されます。

想定誤差の項目は基本的に変更する必要はありません。もし特定に失敗する場合はここの値を増やすと解決する場合があります。

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

観測中は左側のテーブルに観測した瞬き間隔とその種類が追加されていきます。

エントロピーの値が128以上になるとSeedの復元処理が走り、特定出来るとinitの値が更新されます。

ツール側でやりがちなミスとして

  • 他の画面を全画面にした所為でOBS側のウィンドウが隠れてしまう
  • キャプチャウィンドウの位置がズレている
  • 間違った画像を選択している

などが挙げられます。

特定終了後は、ゴンベの瞬きと同期する形でcurrent枠の消費数のカウントが増加し、同期タブ内で次のゴンベの瞬きまでのカウントダウンタイマーが走り始めます。

映像上のゴンベの瞬きとツールが同期していることを確認してください。

注意:
ゲームソフトを完全に終了させてしまうとSeedがリセットされます。
基準Seedの特定からやり直してください。

実践:idの検索

特定した基準Seedを用いてid検索を行います。

検索枠のた~げっと内に狙いたいidを幾つか記入し、消費数上限を設定し検索ボタンをクリックするとけんさくけっかの欄に消費数[F] 目的のid の形式で候補が表示されます。

候補の中から適当なidを選んでください。

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →

id調整の場合、高速で乱数を消費することが困難なため、消費数上限は大きくても10万程度にすることを推奨します。
また、目的のidが見つからなかった場合はゲームをリセットして瞬きの観測からやり直してください。

GoReader単体ではいわゆるTSV特定(あるいは裏id特定)を行うことはできません。PokeFinder経由で目的のidを探す必要があります。
もし孵化乱数を行うためにTSVを知る必要がある場合は、以下のリンクを参考に進めてください;
はじめてのBDSP ID調整

乱数の消費

ゴンベの瞬きだけで目的のIDまでの消費を行う場合、次の瞬きまでの間隔が3~12秒かかる都合上、非常に時間がかかることになります。

より高速に乱数消費を行うには、名前入力による消費を利用します。名前決定とそのキャンセルの度に5消費が入ることを利用して時間短縮が可能です。

ナナカマド博士のメッセージを読み飛ばして、名前入力画面を表示させます。

この画面からOKを選択して名前を仮決定したタイミングで乱数が5消費されます。

その後、名前を確認する選択ウインドウでいいえ(No)を選択すると、再度名前入力画面に戻ってきます。

これらの手順を必要な回数だけ繰り返してください。

乱数消費に関する詳細な情報は以下のリンクを参考にしてください;
はじめてのBDSP ID調整

実践:seedの再特定

ゴンベの瞬きや名前入力キャンセルによる乱数消費を行ったところで、現在の消費数を知るためにseedの再特定を行います。

seed再特定タブを開くと、幾つかの入力項目が表示されます。

  • 検索範囲
    seed特定を行う検索範囲です。

  • 観測回数
    検索を行うのに必要な瞬き間隔の回数を指定します。消費数の範囲が10000程度の場合は4回、100000程度の場合は6回が目安です。

これらを入力の上、seed特定と同様に開始ボタンをクリックして検索を行います。

再特定の際は名前確認画面で特定を行ってください。


名前確認画面(再掲)

実践:ID決定

目標としている消費数が近づいたら、実際に名前を決定しましょう。

seed再特定タブから再特定を行った後、名前確認画面でいいえ(No)を選択して顔写真の画面で待機します。

この間に同期タブを開いておきましょう。次の消費がいつ起こるかが分かりやすいため便利です。

current枠内の消費数が目的のIDの出る消費数に到達すると同時に、主人公の顔写真を選択します。その後希望の名前を入力して決定したうえで、ナナカマド博士の名前確認にはい(Yes)と答えると調整完了です。

オープニング終了後ストーリーを進め、チュートリアル戦闘を完了させると、ポケモンのステータス画面からIDが確認できます。

もしID調整に失敗していた場合、そのままソフトを終了することでセーブデータ削除の手間を踏むことなくリトライできるため、オープニング後主人公の部屋を出る前に設定からオートセーブを切っておくことを推奨します。

おわりに

本記事ではBDSPにおけるID調整ツールであるGoReaderの紹介と使い方の解説をしました。

もしツールの使い方などで分からないことがあれば、Discordのポケモン乱数鯖までお問い合わせください。#ダイパリメイクチャンネルにてお伺いいたします。