見出し画像

はじめてのLAマルチスポナー乱数調整(色親分の乱数調整)

更新情報:
2022.9.4 記事の公開
2022.9.5 SEEDの使い回しについて追記

<はじめに>

ポケモン乱数鯖にて、pattirdon氏のツール開発や手順を公開してくださったことから、LAのマルチスポナー乱数について開拓されました。

日本では、かたり氏、みずようかん氏がTwitter上で最速で乱数の様子を公開していました。本記事は、かたり氏に手順を教えていただいたものをもとに書いております。

色違いの個体は剣盾やBDSP、過去作での乱数調整ができる個体が多いため、今回は「色違いの親分の乱数調整」の手順にフォーカスして記事を書きます。
また、筆者はひかるおまもりを持っていないので消費行動の数が多くなっています。(ちなみに、クリアもしてません。)

<実行環境>

処理に時間がかかるのでスペックが低めのPCだと時間がかかったり、動かない可能性があります。筆者の環境は、以下の通りです。

インテル® Core™ i7-8750H プロセッサー
NVIDIA® GeForce RTX™2060 / インテル® UHD グラフィックス 630
16GB DDR4 SODIMM
500GB SSD
Windows 10 Home

Apache Maven 3.8.4
Java version: 17.0.1 (JDKの導入)

<前提知識>

コマンドプロンプトの操作

基本操作は、以前Poke-Controllerの記事に書きましたが、その他の操作については調べて行ってください。
https://note.com/junky_poke_/n/n360e88a64788

JSONファイルの作り方

larng-java/configフォルダのテンプレートを使って、普段使用してるエディタで編集してください。筆者はVScodeを使用しています。

Javaやgitなどの導入

今後自動化鯖の方により、インストーラーの作成を予定しているため、本記事では説明を省いております。基本的な導入方法などは調べたら出るのと、pattirudonさんのredmeをご確認ください。

<基本知識:マルチスポナーの対象>

・LAのスポーンの種類
 マルチスポーン/大量発生/大大大発生/固定親分/歪み
・マルチスポナー乱数の対象
 手順が確立:マルチスポーン
 手順は未確立:大量発生/大大大発生
・現在リストがある個体は、下記サイトの「Spawner Maps」にあります。

<使用ツール>

①Pattirdon氏のツール

https://github.com/pattirudon/larng-java

Pattirdon氏のツールを使用する前の環境構築:
・git
・Java SDK 17.~~
・mvn install
上記をPattirudonさんのgithubを確認し、導入します。
※ 自動化鯖の方が設定用のバッチファイルを作成中です。

②Webでの検索ツール

web検索ツールの事前設定:
①光るお守りの有無:持っている人はチェック/ない人は空欄
②図鑑レベル:該当のものを選ぶ。Level10にしておきましょう。

<乱数調整の流れ>

0. LA側の準備
1. 個体情報の収集
2. JSONファイルをつくる
3. fixed seedsを求める
4. spawner seedsを求める
5. group seedを求める
6. Pattirudon氏のツールで検索する
7. webのツールで検索する
8. 消費を行う
9. エンカウント

0.ゲーム側の準備

LAの準備

・オートセーブをオフにする
・乱数で狙う個体、同じスポーンに出る個体の図鑑のレベルを10以上にしておく

剣盾/BDSP/HOMEの準備

・個体値を特定するための環境(レベル上げなど)

1.個体情報の収集

重要!!ここからの作業は全てムラに戻らず進めていきます!!

個体特定の流れ

個体値の特定は以下の流れで進めていきます。
図の①②③④は、1匹目、2匹目…に該当します。
1匹目、2匹目に関しては、どちらが先にスポーンしたかはわからないため、特定には使用しません。3匹目、4匹目の個体と区別ができればOKです。
※具体例で示すために、実例の性格を入れていますが、すなお・おだやか…の性格である必要はありません。
※ムラに戻らなければ良いので、レベル上げはLA/剣盾/BDSPどの環境でもOKです。


1-1. 対象のポケモンを決め、スポーンする場所に旗をたてておく

個体特定や消費作業に何度もくるため、間違えないように旗を立てておきます。対象ポケモンは、Spawner Maps」にあります。
※本記事ではビッパで説明しますが、はじめてのおすすめは「コリンク」です。逃げる個体がいると特定や消費のミスが発生するので、最初はおすすめしないです。

今回は、ビッパ/イーブイの場所ですすめます。

下記の情報を収集していきます。
黄色の網掛け:LAで判別するもの
青色の網掛け:BDSP/剣盾で判別するもの
緑の網掛け:調べる、またはプログラムを使って求めるもの

普段使っているテンプレートが下記になるので、良ければ使ってください。他のタブでは、自分が検索で試しているデータやメモを入れてますので、参考までにご覧ください。

1-2. 1・2匹目の個体の情報を収集する

この個体はどちらが先にスポーンしたかがわからないため、スポーンさせる個体の区別のために使います。性別、性格をはじめとして区別するために必要な情報を集めておきます。
個体を区別できる情報を得た後は、ソフトをリセットします。

1-3. 3匹目の個体情報を収集する

1匹目,2匹目のどちらかの個体を捕獲して、「キャンプで夜まで寝る」「キャンプで朝まで寝る」を行います。
すると、新たな個体がスポーンしているので、その個体を捕獲します。
新たな個体が「3匹目のスポーン個体」となります。間違って1-2匹目の個体を引いた場合はリセットします。

1-4. 4匹目の個体情報を収集する

先程と同じ手順で3匹目を捕獲した後、「キャンプで夜まで寝る」「キャンプで朝まで寝る」として、4匹目を捕獲します。

1-5. 剣盾/BDSPで特性と個体値を確認する

LAでは特性・個体値を確認できないため、HOME経由でROMに移動し、「特性・個体値」の情報を得ます。
このときのレベル上げは、どちらでもLA/剣盾/BDSPのどれでも良いですが、努力値が入らない方法で特定するのがスムーズです。

1-6. LAで身長・体重を確認する

捕獲した個体の身長と体重を確認します。進化可能な個体の場合、進化させた方がより計算数が減るので進化させましょう。

1-7. 身長と体重の平均値を調べます

「Serebii net + 英語のポケモン名」とかで調べると下記のように種族の基本情報が確認できます。
ビーダルの場合、身長の平均が1m、体重の平均が31.5kgになります。

1-8.身長と体重に関するパラメータの確認

jshellを使い、身長と体重のパラメータを求めます。
入力方法と操作の様子は下記をご確認ください。
※cd larng-javaは、larng-javaフォルダ内にいる場合は不要です。

cd larng-java
jshell
/env -class-path ./target/larng-1.0-SNAPSHOT.jar
import jp.co.pattirudon.larng.*;
HeightWeightReverseSolver.weightMap(検索個体の身長f, 検索種族の平均身長f, 検索個体の体重f, 検索種族の平均体重f);

終了後は、/exitでjshellを閉じることができます。

完成した情報スプレッドシート

2.JSONファイルを作る

スプレッドシートで得られた情報を参考に2種類のJSONファイルを作成します。larng-java/configフォルダ内にテンプレートが入っていますのでご確認ください。
作成したJSONファイルは、configフォルダ内に入れておきます。

左:3匹目の個体のJSONファイル
右:4匹目の個体のJSONファイル

補足情報:
< numShinyRolls >
図鑑レベル10以下:1
図鑑レベル10:2
図鑑レベル 完璧:4
光るお守り所持:5
光るお守り+図鑑レベル完璧:7

<outwardAbillity>
通常特性の順番。
例)ビーダルの場合、1:たんじゅん、2:てんねん

<numAbillities>
通常特性の数。
例)ビーダルの場合、たんじゅん/てんねんの2つのため、"2"

<GenderRetio>
Male:オスのみ
OneFemaleOutOfEight:オス82.5%,メス12.5%
OneFemaleOutOfFour:オス75%,メス25%
Even:オス50%,メス50%
ThreeFemaleOutOfFour(191):オス25%,メス75%
SevenFemaleOutOfEight(225):オス12.5%,メス82.5%
Female:メスのみ
Genderless:性別なし

これ以降説明するコマンドは、configフォルダに入っていることを前提として、パスを書いています。別の場所に入れている方は、パスを書き換えてください。

参考資料:
性格の日本語ー英語
http://exp777.cs.land.to/pokemon/poke-en/nature.html

3. fixed seedsを求める

コマンドプロンプトで「larng-java」フォルダ内にいる上で実行します。

java -jar target/larng-1.0-SNAPSHOT.jar find-fixed-seeds ./confing/hogehoge1.json(3匹目の個体のJSONファイル)

実行すると5-15分くらい計算を行い、終了すると
fixedseedsフォルダに「fixed_seeds_yyyy_MM_dd.json」が出力されます。

4. spawner seedsを求める

次に上記で出力されたJSONファイルを使用し、spawner seedsを求めます。
fixed_seeds_yyyy_MM_dd.jsonは、上記の出力されたものを入力します。

java -jar target/larng-1.0-SNAPSHOT.jar find-spawner-seeds -l fixedseeds/fixed_seeds_yyyy_MM_dd.json(書き換えが必要)

この計算…時間めっちゃかかります!!!

PCのスペックにもよりますが、30分〜3時間程とかなり時間がかかるので、検索数が多い場合は再度、個体の特定からやり直すことも検討してください。
参考程度にですが、画像の7000台の検索数で30分程度、15000前後で1時間ほどかかっていました。

終了後、spawnerseedsフォルダに「spawner_seeds_yyyy_MM_dd.json」が出力されます。日付や時間の部分は先程と異なりますのでご注意ください。

5. group seedを求める

spawner seedsが求められたら以下のように実行します。
変更箇所は2箇所です。

1. spawner_seeds_yyyy_MM_dd.json
 ひとつ前の手順で得られたファイルに書き換え
2. hogehoge2.json
 4匹目の個体のJSONファイル名にします

java -jar target/larng-1.0-SNAPSHOT.jar find-group-seeds -l spawnerseeds/spawner_seeds_yyyy_MM_dd.json ./config/hogehoge2.json(4匹目の個体のJSONファイル)

終了すると、コマンドプロンプトにGroup seedが出力されます。
今回は「38554df95663380」
この値はメモしておくと良いです。

6. Pattirudon氏のツールで検索する

下記のコマンドを実行し、検索用のGUIを起動します。

java -jar target/larng-1.0-SNAPSHOT.jar gui

<基本情報>
□ Group seed
□ Shiny rolls(上述のnumShinyRollsと同様の数値)
□ Gender retio(検索のキーワードは上述の通り、検索する個体に合わせた性別比率を選ぶ)

<色違いを検索するとき>
□ Search Pathにチェック
□ Number spawn:マルチスポーンのスポーン数
□ Max depth:Pathの長さ。(キャンプでの夜ー朝の操作の数に直結します)

単純に色違いを狙う場合は、このツールでのPathを使って進めていきます。
表示されているPathが3匹目の直前のGroupSeedからの地点のものであるため、最初の1,1,で3匹目、4匹目のスポーンが終了しているため、その次の値から消費を進めます。この記事では、これ以上の説明は省きます。
(最下部にツールの補足説明あります。)

7.色違いの親分個体を狙う

この項では、手順のみの情報を書きますが、この手順をとる理由を本記事の下部の「※ツールごとの情報の補足説明」に書いております。

7-1. 1,1,2の地点のGroupSeedを確認する

PattirudonさんのGUIツールにて、基本情報を入力した後、下記を行います。
□ Designerte Pathにチェック
□ Path 1,1,2で検索
□ 1,1,2の地点のGroupSeedを確認
→ 今回は、db9e2721eb3fd53eでした。

7-2. 16進数から符号なし10進数の変換

webツールの入力形式に合わせるため、16進数から符号なし10進数への変換をします。

下記のサイトを使いました。

webツールの入力用のSeedは
「15825129167260734782」ということがわかりました。

7-3. webツールへの入力

下記のサイトに情報を入力していきます。
記事の冒頭の<使用ツール>の項に基本設定について書いておりますので、そちらは忘れずに行ってください。

□ Seed:10進数に変換した数値
□ Max Number of Advance:消費行動の実行数。(pattirudonさんつーるのMax depthに対応)
□ Number of Spawns:マルチスポナーのスポーン数
□ Select Spawner:スポナーの検索。現在検索している個体のものを選択する。Spawner Mapsをみると分かりやすいです。
□ Select Filter:検索用のフィルター
□ Filter Result:Alpha Only:親分のみのフィルター

8.消費の手順

今回は色親分イーブイを狙ってみようと思います。

8-1. マルチスポーンの残り1体を倒す

Seedを求めたところからのスタートになるため、1体スポーンしたままになっている個体がいるので、倒すor捕獲しておきます。
※最初に1体倒してから行う理由は「※ツールごとの情報の補足説明」に記述。

□ マルチスポーンの残りの1体を倒す
□ 狙っているマルチスポナーに個体がいないことを確認
□ 夜にするー>朝にする

8-2. webツールを見ながら消費を進める

残りの作業はwebのツールを見ながら進めていきます。
D1,D2はそれぞれ以下を意味しています。

D1:2体スポーンしているうちの1体を倒して、キャンプに戻る。夜にするー朝にする
D2:2体スポーンしているうちの2体を倒して、キャンプに戻る。夜にするー朝にする

webのツールはチェックできるようになっているため、1つの消費行動が終わったらチェックしていきます。

8-3. エンカウント

消費が全て終わると個体とエンカウントできます。

8-4.想定した個体が出ない場合のTips

□ 消費行動が間違っている
→ リセットして消費をやり直すことが可能です。何度かやりなおしてみましょう。

□ 色違いだけど個体が違う
→ 再現性まで確認はできていないのですが、"セーブデータの時間"がSeedを求めた日から進んでしまっている場合にこの事象が確認できました。

□ 途中で間違っている個体を確認したい
→ PattirudonさんツールのPathを参考にD2の地点の個体を2体捕獲して、リストにある個体かを性別・性格などで確認しましょう。D2の地点を選ぶ理由は、1体の捕獲だとどちらの個体かわからなくなるためです。

※ツールごとの情報の補足説明

消費に関しての表示がツールごとに若干違うため、下記の個体が同一個体になっています。

Pattirudonさんツール

計算して出力されるGroup Seedsは、3匹目を特定する直前のseedsです。Pathの最初 1,1は 3匹目/4匹目に対応しているため、狙える個体は1,1を通るPathになります。

webツール

マルチスポーンの個体がフィールドにいないことを前提としているツールのため、2のPathを通っている必要があります。
Pattirudonさんツールで求めたGroupseedsを使う場合は、1,1のPathを前提としており、webツールではその次の2を通ることを前提としてるため、1,1,2の地点のPattirudonさんツールのGroupSeedsを入力し(16進数から符号なし10進数に変換)、ツール上に表示されます。
表示されている個体のPathの冒頭に1,1,2をつけると、個体のPathが同一になります。

補足:SEEDの使い回しについて

GroupSeedを求めたら繰り返し同じSEEDを使い回すことができます。
普段は、以下のようにエクセルを作り、SEEDを見失わないようにしています。

①webの検索で利用したGroupSeedをPattirudonさんツールの「Group seed」に入力しておきます。

②捕獲した色親分イーブイのPathを確認します。
「2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1」

③D1で終了した場合は、1体スポーンしているので倒します。
 D2の場合は、スポーンしている個体がいないので不要です。

④先程作成したPathの前に「2」、後ろに「2」を追加したPathを作ります。
2, 2, 2, 1, 2, 1, 1, 1, 1, 2, 1, 1, 2, 1, 2, 1, 1, 1, 2」にというPathを作ります。

⑤ ①で入れたGroupSeedと作成したPathを入力し、Designate a Path でwebツールの検索用のGroupSeedを特定します。
今回は「5c10f9b598b98a31」でした。

24行目をみると、色違い個体が出ていたことを確認できます。
25行目がwebツールで検索をかける地点です。

⑥16進数から10進数へ変換し、webツールで検索をします。

⑦最後に上記の個体がいるか一応、Pattirudonさんツールで確認します。

基準:5c10f9b598b98a31
2,2,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1(2+色違いが出るPath)
Trueになっているので色違いが出るはず


おわりに

LAのマルチスポナー乱数で、色違いの親分個体が厳選できるようになりました。大量発生や大大大発生も同じような手順でできるようなのので、もしよければ、どなたか手順を開拓していただけると嬉しいです。

また、環境構築やJSONファイルの作成など煩雑な手順は自動化鯖のメンバーの方々が簡易化できるようなツールを開発していますので、情報が追加されましたら記事を更新いたします。

Special Thanks:

かたり氏:手順や記事の内容のアドバイスなどありがとうございました。
かたーりいつもありがとう

筆者Twitter

じゃんきー
https://twitter.com/junky_poke_

更新情報などを得たい方は下記のTwitterをフォローをお願いします。
※LAの乱数調整の細かいサポートは予定しておりませんが、記事の誤植や誤った記述、情報の不足は確認でき次第対応いたします。
※感想とか、できたよー!とかリプくれたり、メンションしてくれたり、DMくれたりは喜びます。←

ウィッシュリスト
https://www.amazon.jp/hz/wishlist/ls/2L4LJ6N4M4YE4?ref_=wl_share

この記事が気に入ったらサポートをしてみませんか?