かけらの記録ノート

主にポケモンの乱数について語るブログ

【欧州版XD】いますぐバトルで初期シードを特定した場合のトゲピーの消費数

日本版だと難しそうという記事を見たので、試しに欧州版で検証してみた結果を書きます。

10回ほど検証して出た強制消費の値は下のようになりました。

1428
1419
1433
1443
1429
1403
1443
1405
1425
1423

10回で近い消費数がちらほら出ていたり、一致したものもあるので結構安定してる方じゃないでしょうか。やったことないのでよく分かりませんが...。

一応操作を書いておきますが、続きから始めるを選択したあとに、Bを長押しした状態でメッセージを早送りしながらA連打で受け取りました。言語はドイツ語です。

日本版では安定しないそうですが、フィールドでの消費速度の違いや、npcのいる環境で続きから始める場合に消費数の違いがあるのかもしれないです。その辺は気が向いたら調べます。今の所は欧州版大安定なので、欧州版を購入しましょう。

元々この方法での初期シードの特定は、ガルーラあたりが楽になるかなぁ~程度だったのでトゲピーまでは想定してませんでした。やっぱり展開がないと少し難しそうですね。

【追記】

連射コンで試してみましたが安定しませんでした。

1427
1424
1419
1391

もしやるなら素直にA連打でいいと思います。

【コロシアム乱数】初期シード検索の高速化

先日需要があると言われたので試しに作ってみました。ツイッターを眺めてて思ったんですけど、コロシアム乱数やってる人って結構いるんですね、驚きました。なんとなく触発されて私もやりたくなったので、久しぶりに何かやってみようと思います。

そんなどうでもいい話はともかく、ツールの説明に入りたいと思います。外観はこんなかんじです↓

f:id:sina_poke:20190319003328p:plain

コロシアム乱数をやったことのある人ならどうやって使えばいいかすぐわかると思います。見ての通り、1~8にトレーナー名と手持ちポケモン入力して計算を押すだけです。それだけで一瞬でシードが特定できます。

f:id:sina_poke:20190319003342p:plain

ただ、ツールを使用する前にデータベースを作成しておく必要があります。この辺はさっき上げたXD乱数の記事と一緒なので割愛します。

ツールはここからダウンロードできます。

※dllファイルを同封するのを忘れてたので上げ直しました。

一瞬で結果が出ると思うので試行回数を稼ぐ系の乱数にぴったりだと思います。みなさんもコロシアムスイクンやりましょう!

ツールのバグ報告や、直してほしいところがあったらコメント欄で教えてください。

【XD乱数】いますぐバトルでのシードの特定

お待たせしました。日本版での調査とツールのデバッグが一通り終わったのでやり方を公開したいと思います。

【注意】ID調整、ダークポケモンの乱数への応用に関しては欧州版でのみ可能です。日本版は消費の微調整ができないため、展開の広いポケモンに対しての乱数のみ現実的な難易度でできると思います。

ツールはここ からダウンロードできます。

データベースの計算が一部間違っていたのを修正。
シードの検索を高速化しました。

C#が書けないクソザコナメクジなのでpythonGUIツールを書いてみたんですが、言語の元々の性質故かGUIライブラリのせいか(たぶん両方)一部の処理がとても重くなってしましました。そのため、データベースを作ってみたり該当部をC言語で書き直してみたり色々してみました。pythonめちゃくちゃ便利なんですけどやっぱり遅いですね。

まぁそんなことは置いておいて、やり方の説明に入りたいと思います。

1. 初期シード検索用データベースの作成

上でも説明しましたが、一度GUIツール上で検索するコードを書いてみたところあまりにも遅かったので、データベースを作成することで高速化しました。これによって数十分かかっていたのが数秒に変わりました。7世代でおなじみの方法になりますね。作成するに当たり、最低500MB程度の空き容量が必要です。検索範囲を広げる場合は+数百MB必要になります。データベースの作成にはXDatabase.exeというツールを使います。

まずはじめにいつものやり方でシードを特定して、ある程度予想されるシードの範囲を特定しておきます。そして、その範囲+αのシードをツールに入力します。

f:id:sina_poke:20190318184911p:plain

データベースの作成には、シードの範囲にもよりますが10分以内には終わると思います。あまり検索範囲を取りすぎると計算時間も長くなりますし、容量も大きくなってしまうのでそこはうまい具合に決めてください。データベースの作成中はとてもPCが重くなって、他の用途に使えなくなるので注意してください。

データベースの作成が終わったら次にソートを行います。これは、付属のXDatabaseSort.exeを実行するだけです。

f:id:sina_poke:20190318185005p:plain

データベースの容量にもよりますが、数分で終わります。

これでデータベースの作成は完了です。

2. 目標個体の設定

ここからはXDQuickBattleSearchを使っていきます。

まずは初めに、ギンザルさんのツールやID / イーブイ検索タブを使って目標のシードを検索しておきます。

f:id:sina_poke:20190318180452p:plain

私のツールでは検索結果の一番左のシード列がこれに当たります。イーブイの検索に関してなんですが、個体値の範囲を広くして計算するとあまりにも遅すぎてツールが止まってしまうので別に専用のツールを添付しました。こんなかんじで使ってください。

f:id:sina_poke:20190318233745p:plain

適当に作ったので割とガバガバです。どちらも計算結果をresult.csvとして出力する機能がついています。

ここまでできたら初期シードの特定に入る前に一度ゲームを始めて、リバース状態のダークポケモンと適当なポケモンを手持ちに置いておきます。これらは消費を行うのに使用します。

3. 初期シードの特定

ここからが本番です。まずはいつものように決められた秒数で起動を行い、「続きから始める」ではなく「対戦モード」を選択します。そのまま「いますぐバトル」を選択し、「コンピュータとバトル」の「さいきょう」を選びます。

f:id:sina_poke:20190318185546p:plain

ここで出た手持ちの種類とHPの実数値をツールに入力し、計算をクリックします。

f:id:sina_poke:20190318234808p:plain

数秒で結果がでると思いますが、ここで運悪く候補が見つからなかった場合はリセットしてもう一度時間設定からやり直してください。正しい入力をしても(調査不足のせいで)結果がでないことがあるので注意してください。

ここで結果が出た場合は、画面下の方にある「絞り込み」と「完全一致のみ出力」にチェックを入れます。そうすると自動的に消費数が入力できるようになるので、そこに0~10000程度の範囲を入力します。

そしてゲームに戻り、一度Bでキャンセルしてからもう一度さいきょうを選択し、そこで出てきた手持ちをツールに入力して計算します。「Bでキャンセル~ツールに入力して計算」までの流れを最大5~6回まで行って、結果が出力されれば初期シードの特定は成功です。

f:id:sina_poke:20190318191743p:plain

あとは出力された現在シードを使って煮るなり焼くなり好きにしてください。もし結果が出なかった場合はリセットして時間設定からやり直してください。

前の記事で初期シードの特定は不安定だと書きましたが、うまく特定できる割合はおよそ試行回数3~4回あたりに1回です。慣れてくれば1回の試行が1分程度で終わるようになるのであまり時間はかかりませんが、中々結果がでないとストレスがたまります。主人公のお尻を眺めるのに飽きたときにはいいかもしれませんね。

4. 目標個体までの消費

大まかな消費を行う場合はつないでバトルで行います。

f:id:sina_poke:20190318181715p:plain

適当に項目を設定して決定を選択するとXD上での今の手持ちが表示されるので、つよさをみるを使って消費します。

f:id:sina_poke:20190318182458p:plain

ギンザルさんのページにある通り、リバース状態のダークポケモンを眺めると約3700/sの消費を行うことができます。そのため、あらかじめメインのデータの手持ちに消費用のポケモンをセットしておく必要があります。

ここで消費を行ったあとはいますぐバトルで現在のシードを求めます。シード検索タブのシードを選択して、消費前のシードと検索したい消費数の範囲を入力します。そして出てきた手持ちを入力した後に「完全一致のみ出力」にチェックを入れて計算を押します。

f:id:sina_poke:20190318192633p:plain

候補が見つかると通知してくれます。ここの工程も若干不安定なため、結果が出ないことがあるので注意してください。その場合は、もう一度手持ちの生成からツールでの計算を行って結果が出るまで繰り返してください。適切な消費範囲が設定されていれば何度か検索することで必ずシードを求められるはずです。目標のシードギリギリまでつないでバトルで消費してしまうとこのせいで過ぎてしまうことがあるので注意してください。

検索する消費数の範囲が数千万単位でとても広い場合、間違った候補が出力される可能性があります。その場合はそのシードが正しいかどうか確認してから使うようにしてください。

残り消費数が約10000程度になったら、消費契機タブで残りの消費を行います。

現在のシードと目標の消費数を入力します。続きから始める場合は持ち物消費にチェックを入れてロード後のフィールドの持ち物消費数を入力しておきます。※持ち物消費数が分からない場合は入力しなくていいと思います。

f:id:sina_poke:20190318235507p:plain

ここで計算を押して結果が出なかった場合は消費数が奇数ずれしているので、入力する消費数を変えるか現在シード特定の要領でもう一度いますぐバトルで消費を行ってください。結果が出た場合は出力された組み合わせの通りに行動すれば消費ができます。3つ候補が出ると思いますがどれを行っても大丈夫です。カッコ内はその行動をする回数になります。タイトルに戻ってからそれぞれ下のように行動します。

・最初

最初から始めるを選択します。

f:id:sina_poke:20190318183229p:plain

この画面で「はい」を選択すると2消費されます。日本XDはここで「はい」を選択後に高速消費が起きてしまうので、消費の調整ができません。

・設定

設定を変更してセーブすると40消費されます。

f:id:sina_poke:20190318183249p:plain

・いますぐ

タイトルから入れる対戦モードの画面からいますぐバトルを選択し、すぐ戻ります。対戦モードからいますぐバトルに入る時に消費が行われます。

f:id:sina_poke:20190318183321p:plain

この工程にミスがあり、たまに消費数がずれます。一度消費がずれた候補は何度やってもずれるので、別の候補で消費を行うか下のいますぐを使用しないものを使ってください。いますぐの回数が10回程度ならほとんど大丈夫ですが、50回を超えるとミスがちらほら出てきます。安定を取るならこの工程を行わないか、せめて5回以内に抑えると良いと思います。

いますぐを使用しない場合は設定の40消費と最初からの2消費で目標のシードまで消費する必要があります。ものすごく時間がかかると思うので絶対に失敗したくないものにのみ行うと良いです。

5. 目標個体とのエンカウント

ID調整、イーブイの場合は最後に「最初から始める」を選択して消費を行ってからタイトルには戻らずにそのまま名前選択を行って最初から始めてください。※消費の最後に「最初(0)」の候補は使えません。続きから始める場合はタイトルに戻ってから続きからを選択してください。続きから直後のエンカウントについて、nの調査や消費数の範囲などは調べてないので各自調べてそれに合わせて調整を行ってください。うまく目標個体とエンカウントできれば成功です。消費数を調べた時に大きくずれているといますぐでの消費ミスの可能性があるので注意してください。

成功するとこんなかんじになります。

f:id:sina_poke:20190319125751j:plain

f:id:sina_poke:20190319125802j:plain

臆病色イーブイ 29-4-29-31-30-31 表ID 48835 裏ID57548

以上でツールの説明を終わりにします。ツールについて何か要望や改善してほしいところがあったら教えてください。

需要がありそうなら仕組みについて記事にまとめます。

【欧州版XD乱数】ID調整&イーブイの乱数調整

お久しぶりです。ここ一年程度ポケモンから離れていたのですが、暇つぶしに乱数界隈を眺めていたらモチベが出てきたので、前回に投げたXDのいますぐバトルの調査の続きをしていました。

sina-poke.hatenablog.com

 ↑こいつですね

前回から色々と試行錯誤した結果、一部の特定の条件でXDのいますぐバトルからシードの特定が可能になりました。これによって、欧州版でのみ簡単にID調整とイーブイの乱数ができるようになりました。日本XDではまだ試してませんが、名前選択時に高速消費が起こるので、難易度としてはコロシアムのID調整と同じくらいだと思います。

・色イーブイ

f:id:sina_poke:20190315170651j:plain

・ID00000

f:id:sina_poke:20190315170712j:plain

なんと、この程度なら数分でできてしまいます。また、セーブデータ未ロード下で3500/sの消費方法を見つけたので、頑張れば任意IDでの色イーブイや、特定の性格値を色にする任意IDなんかもできると思います。

色回避ルーチンあるのにそもそもID調整なんてする必要ある?と思われる方もいるかもしれませんが、それを考慮することでより狙える個体の範囲が広がるので、ID調整する価値は十分あると思います。

今までID調整にしか焦点を当ててませんでしたが、いますぐバトル下で初期シードの特定から一定数消費後の現在シードの特定までできたため、ID調整だけでなく、一般的なダークポケモンの乱数にも応用できると思います。この方法を使うことで、一部のnpc消費ありの乱数がとても楽になのではないでしょうか?まだ試してないので詳細は分かりませんが。

これだけ話を聞くと利点しか浮かんでこないと思いますが、現段階の方法では欠点があります。というのも、調査がまだ完全ではないためです。具体的には、初期シードの特定が若干不安定であることと、消費契機時に約2%程度の確率でミスが起きてしまいます。色々調査して数日悩みましたが解決しなかったので、今は諦めてそれを受け入れつつツールを作成しました。詳細はまた別の記事に書き留めようと思います。

日本版での調査や続きから始めるを選択したときの挙動に対応させたらツールを公開したいと思います。

コロシアム乱数調整 図太い1V2Uスイクン

夏休みに入ってからずっとやってた。

f:id:sina_poke:20170812205759j:plain

seed 0x01DC95D4 任意消費数 6839 強制消費1 18210
性格値 0x8DE57AF8 図太い 30-21-30-27-27-31 めざパ氷 68

昔に挫折したものを掘り返してやってみました。
全然強制消費の値が安定せず、成功まで2週間も掛かってました。
後半あたりから毎日10時間近く試行していて、全然出ずに途中で心が折れそうになりましたが、成功してくれて本当に嬉しいです!
メモを見たら計500回と少しやってました(白目)
固定しておいたのでクリア後にダイボに入れる予定です。

強制消費の値は一見バラツキがあるように見えますが、ある程度出やすいところと出にくいところがあるみたいです。
回数を重ねて出やすい消費帯を探すと良いかもしれません。
私の場合は400回中5回引いていて、前後の消費数をよく引いていた18210を狙ったところ、丁度500回目で成功しました。
消費数のメモを貼っておくので参考にしてみてください。↓↓

・ヤドヤ→放送局間 29秒での消費数

f:id:sina_poke:20170812204513p:plain

操作に大きなずれがないと思ったもののみメモしてます。
(これ以外にも100回近くはメモしてないだけでやってる)
200~300回あたりから操作を少し変えたので消費数の傾向が変わってます。
☆がついてるやつはメソッドずれの個体と良個体だったやつ(なぜかメモった)

一応このIDは臆病と控えめの5Vが光るものだったので、臆病5Vにも数回挑戦していました。
同じseedからヤドヤ→放送局間の操作時間を一定にして、消費数の再現性があるか調べてみましたが、結構バラツキました。↓

f:id:sina_poke:20170812205042p:plain
最初のNPCの動きは同じだったので序盤のNPCによる消費の再現性は取れていそうですが、ディスクを入れる時間やUFOに乗るまでの時間で動きにずれが起きてると思われます。再現性を保つにはそれらの時間も一定にする必要がありそうです。

 

第六世代孵化乱数調整のやり方

ほぼ内容が固定乱数のやつを引用してます。

準備するもの
3DS
 newやLLでももちろん可能
ORAS、XYのゲームソフト
6世代乱数用のツール
3DSRNGtool(孵化乱数他色々用の神ツール)
・エメタイマー

ゲーム内で準備するもの

マスターボール1個
・野生ポケモンを捕まえるための適当なボール
・↑用の捕獲要員(必要なら)
個体値絞り込み用の飴
 XYでは8個程度
・炎の体要員

上記準備を済ませた後、タマゴができている状態で、受け取る場所から最も近い野生ポケモンの出現するポイントでセーブする。(捕獲要因を連れてきている場合は先頭においておく)

XYはここ

f:id:sina_poke:20170609173721p:plain

事前に親の情報etcをツールに入力しておいてください。

f:id:sina_poke:20170609173217p:plain

 

1.基準となる初期seed(以下基準seed)の特定

固定乱数の項とほぼ同じ。孵化乱数では2匹目を捕まえる際はマスボではなく適当なボールでもいい。


2.基準seedから初期seedの検索

固定乱数の項と同じ。

 

3.検索開始消費数の特定

固定乱数の3.と同じように操作して初期seedを特定します。

特定後、ゲーム内でそのまま待機し、タイマーが0になるのにできるだけ合わせて野生ポケモンともう一度エンカウントします。(ぴったり合わせる必要はない)
出てきたポケモンを捕獲し、個体値を測定して個体検索ツールで検索します。
結果に出てきた消費数が拒否したときのフレーム数の目安となるのでメモしておきます。(固定乱数などで近い秒数で行ったことがある場合は飛ばしてもおk)

ソフトリセットを行い、冒頭と同じようにして起動し、初期seedを求め、出た結果を3DSRNGToolのseedに入力しておきます。

f:id:sina_poke:20170609171534p:plain
ゲーム内で兄の前まで操作し、タイマーが0になると同時に拒否をします。
※拒否を行うために2度ゲーム上でいいえを選択する必要があるので注意。

f:id:sina_poke:20170609174020p:plain
その後、タマゴができるまで走り、受け取ったタマゴを割ります。
生まれたポケモン個体値を特定し、性別や特性とともにツールに入力し、検索します。
上でメモしたフレームあたりを探し、合致するものが今回引いた消費数になります。
この行程を何度か行い、拒否時の消費数の目安を立ててください。
大体の値が分かったらツールのFrame Rangeの左側とTarget Frameに入力しておきます。

f:id:sina_poke:20170609172235p:plain

↑は270秒での結果

 

4.目標個体の検索と乱数の消費

エメタイマーを別にもう一つ起動させておき、3と同じようにして野生ポケモンから初期seedを特定します。
特定したseedからツールで欲しい個体を検索し、出た消費数(Shift/Fの値)を追加で起動したエメタイマーのフレーム欄に入力します。
ゲーム内でタマゴを拒否するところまで画面を進め、タイトルと同時にカウントを開始したタイマーが0になった瞬間に追加分の設定したタイマーを開始させます。
そして、フレームを設定したタイマーが0になると同時に拒否します。

f:id:sina_poke:20170609174020p:plain

ここで次にタマゴを受け取り、割った結果が目標個体と一致していれば成功です!
失敗した場合はどの消費数を引いたかをツールから探し、ずれを修正してもう一度4.の冒頭からやり直してください。

 

成功例

陽気5V色コイキング前記事

f:id:sina_poke:20170608222227j:plain

ORASではまだ試してないので誰かやってみてください。

おしまい

XY孵化乱数調整 陽気5V色コイキング

できそうだったのでやってみた。

結果

f:id:sina_poke:20170608222030j:plain

f:id:sina_poke:20170608222227j:plain

狙った個体

初期seed 0xcb1cc22af:id:sina_poke:20170608221123p:plain

 仕組み等は前記事に書いてあります。
展開がないので少し厳しいかと思いましたが、その分候補が多いので試行回数が稼ぎやすく普通にできました。
いつものように初期seedを特定してお兄さんとの会話で待機し、拒否するだけです。
親に赤い糸を持たせていると個体値からの判別が難しいことが難点ですかね。
今回はXYでやりましたが、ORASでも同じようにできると思います。

あと記事とは関係ないんですけどなんとなくで付けていたブログのタイトルを変えてみました。(小声)