|
ふと気付けば、ブラック・ホワイトにおいて、ポケモンドリームワールドから連れてきた夢特性持ちポケモンがハイリンクの森にたくさん居ついていました。 連れてくるだけ連れてきておいて、仲間に加えていなかったからですね。 だってどうせ仲間にするならば、高個体値を粘りたいじゃありませんか。 彼らを親にしてより強固な対人戦用個体を造り出すにしても、親は性能がいいに越したことはありません。 そこでこのたび、ハイリンクの森に出現するポケモンでも乱数調整ができやしないかと試してみました。 結論を言えば無事に成功。 そこで、あれこれ実験してみた流れと、そこから確立した方法論をここに纏めようと思います。 |
|
◆背景・動機
『ポケットモンスターブラック』『ホワイト』において、野生のポケモンに対して乱数調整を行う方法はすでに確立されている模様である。 当管理人自身はいまだ固定シンボルのポケモン(具体的にはビクティニとレシラム)でしか試していないが、一般的な草むらから飛び出てくる野生のポケモンであってもその手法は変わらないと聞く。 ならばハイリンクの森に登場するPDW産のポケモンであっても、やはり同様にして高個体値のポケモンを出すことができるのではないかと考えた。 多くの場合、ハイリンクの森で仲間にしたポケモンをそのまま実戦で用いることはしない。 ♀からならば夢特性を孵化によって遺伝させることができるため、夢特性持ちのポケモンを育てたいときであっても、一度孵化によってより好ましい個体を厳選するのが普通である。 特に遺伝技を用いたい場合にはこの作業は必須のものとなる。 (この際、相手の♂はメタモンでは遺伝できないことに注意したい。メタモンではなく卵グループの同一である♂を用いる必要がある。) となると、ハイリンクで出逢うポケモンは必ずしも高個体値である必要はない。 しかし今作の仕様変更により、孵化乱数調整を利用する場合であっても、両親ともに高個体値であることが好まれるようになった。 片親が6Vでさえあれば楽に(色違い)性格一致6Vを産めた第4世代との違いである。 そこで、ハイリンクにおいても高個体値を狙う手法を確立させておいた方が便利であると考え、このたびそれを実行に移すことと決めたのである。 ……ひとたび乱数に溺れるよと、ちょいとでもレアっぽい個体は乱数で超個体値を狙いたくなるのだという性癖は内緒。 (かつて化石産オムナイトでも6Vを出したものである。) ただし、性格値の乱数調整については度外視する。 これは、Cギア起動中の性格値に関するフレーム進む速度がかなり速いため、BWにおける性格調整は困難とされているためである。 しかしハイリンク産のポケモンが親としてしか用いられないことを考えると、支障は来さない。 (もちろん、♂限定ゆえに夢特性を遺伝できない旧御三家やラビリンスブイズに毒手ドクロッグ、また、そもそもタマゴを作らないアルセウスなどについてはこの限りではない。これらの場合は、シンクロの効かない糞仕様の中性格一致理想個体値を目指さねばならない。) 以降の説明は、ハイリンク以外での乱数調整は問題なくできる程度の知識を前提としている。 より入門的な解説記事もいずれ執筆したいと思ってはいるが、それはまたの機会に残すことにする。 ◆実験方法 ◎実験対象 今回の実験の被験者として、小さな森在住のベロリンガさん(Lv.10/女性)に協力していただくことにした。 彼女には実験により5VC24になっていただく。 先述のように当実験においては性格値については度外視するが、実験に成功した暁には、性格の如何に関わらずレポートを書いて、今後の対戦用ポケモンの種親としての生涯を送ってもらうこととする。 ◎成否判定 BWにおいて、初期SEED合わせの簡易な成否判定を行う手法が確立されていないことは周知のごとくである。 DPtにおけるコイントス、あるいはHGSSにおける徘徊位置のように、データを起動してすぐにフレーム数が正しいことをチェックすることはできない。 そこで初期SEED判定は行わずにベロリンガとエンカウントし、捕獲した個体の能力値(個体値)から逆算して初期SEED、およびエンカウントまでに消費したSEEDが幾つかであるかを特定する。 捕獲した個体から個体値を特定するのは、本来Lv.10という低さでは行えないことである。 そこでサブROMとサブDSを用意し、セーブ不要のIR対戦でレベル50フラットを行い、個体値を大幅に絞り込む。 「おまえ、ミッションのレベル100フラットを使えおwww」と言われるかもしれないが、当方いまだそれ叶わぬ……。 しかしLv.50もあれば何の問題もなく、初期SEED及び消費SEEDを特定できる。 また、実験が進んでSEEDが局所的な範囲に絞り込めるようになってからはレベル50フラットすら行わず、捕獲時の能力のみでSEEDを特定することも可能である。 ◎実験手順 初めに通常野生ポケモンと全く同様の方法によって乱数調整を行う。 Cギア起動時に初期SEEDが再計算され、その後のSEEDが歩行による懐き判定のみで消費されるという前提でベロリンガとエンカウント・捕獲し、個体値を調べる。 するとすぐにこの方法が失敗することがわかる。 そこでインターネット上の情報に頼る(!?)。 ハイリンク産の乱数調整について詳しく書かれたブログなどはぱっと見では見当たらなかったが(もしあるならばこんな考察は無用である)、掲示板の情報で有用なものに出くわす。 「ハイリンクにワープする約4.3秒後に初期SEEDが再計算される」と「エンカウント時に乱数を20消費する」の2点である。 これをそのまま鵜呑みにして成功するのであればそれは実験とは言えないわけであるが、情報の真偽を確かめる目的と、「4.3秒後」という数値が(自分のやり方でも)果たして妥当なものであるかを確かめることが、今回の実験の主たる目的となる。 この実験に際しての乱数計算は、全ておひるごはん氏の作成したツール「White Black Calculator Ver.0.1」を用いた。 ◆結果 ◎初期SEED (※以下の計算では、全て1秒=60Fとして計算している) 検証に用いた初期SEEDは0xEC843E79である。 これは 「月×日+分+秒」:236 「時」:10 「フレーム+年の下2桁」:4021 というSEEDである(念のため、これは当実験者所有のDSでのみ有効な初期SEEDである点に注意)。 この初期SEEDを以下のやり方によって引き当てることに成功した。 2036年10月20日 10時12分00秒 時計セット ↓15秒間 10時12分15秒 ソフト選択 ↓62秒間=3720F 10時13分17秒 「ハイリンクへワープした!」でAボタン (「62秒間」の部分をストップウォッチで目押しする。) 実際にはこの更に数秒後に初期SEEDが再計算されるとのことである。 文献値によればそれは4.3秒後とのことであるが、6秒ほどなければ「月×日+分+秒」の要求値と辻褄が合わない。 「時」についてはさすがにズレようがないので、問題なく要求値に合致している。 「フレーム数」は「フレーム+年の下2桁」との逆算から3985Fであったことがわかる。 ここで気をつけなくてはならないことが2点ある。 ソフト選択時までの「15秒間」は高精度が要求されないため適当であり、最大で1秒遅れほどの誤差があっても成功し得ること。 ソフト選択後の「62秒間」には、起動時暗転画面の空白の約50Fが含まれること。 以上を鑑みると、今回の初期SEED決定過程は以下のようであったと推定される。 ただし、「15秒間」における余剰分をαF、空白時間をβFであったとする。 (これは私の力量に依存するが、さすがに|α|<30のハズで、文献ではβ≒50である。) 10時12分00秒 時計セット ↓15秒間+αF 10時12分15秒αF ソフト選択 ↓βF 10時12分15秒(α+β)F ソフト起動 ↓(3720-β)F 10時13分17秒αF ワープ ↓(265+β)F 10時13分21秒(α+β+25)F 初期SEED再計算 ここで、 2秒≦(α+β+25)F<3秒 、すなわち 95≦α+β<155 であったのならば(え、てことは「15秒間」の部分がヘタクソだったのか?? 指標がDS時計の秒針だから信用ならんわな)、再計算が行われたのが10時13分23秒であり 「月×日+分+秒」=236 との要求と合致する。 また、 ストップウォッチ:βF+(3720-β)F=62秒 待ちフレーム: (3720-β)F+(265+β)F=3985F と矛盾は生じない。 さて、ワープ時に生じる再計算までの誤差であるが、上のように(265+β)Fであったことがわかる。 ここで β=50 であったとすると、その誤差は 315F=5.25秒 であり、文献とはいくらかの食い違いが生じていたこととなる。 ◎消費SEED 手持ち数を1匹にして、約300歩歩いてからエンカウントしたときの消費SEEDが22であった。 歩数の300歩が128×2歩以上128×3歩未満であることから、手持ち数の2倍、すなわち消費SEED2つ分が懐き判定によるもののはずである。 残りの20が、ハイリンクへワープし、森へ移動し、そこで固定シンボルとエンカウントするという一連の作業の中で自動で消費する値と考えられる。 実験序盤では、この検証結果よりも2つ消費SEEDの大きい個体を引き当てたことがあった。 どうやらゲーム起動時以外でCギアを起動するとその際に乱数を2つ消費するらしいので、それが原因と思われる。 ◆考察 今回の実験結果をもとに、今後ハイリンク乱数調整を行う際の方法論を確立する。 私はストップウォッチを用いての目押しを簡単にするために、狙うタイミングが整数秒ジャストになるよう数値を定めている。 すると、「ソフト選択からワープ決定までのフレーム数」、すなわち「待ちフレーム」から「ワープ誤差」を差し引いて「空白時間」を足したフレーム数が60の倍数になるように待ちSEEDを定めればよい。 そこから「年数」を決定させる。 空白時間が β=50 としたときの今回の実験例をこの方法で辿る。 今回は「フレーム+年の下2桁」が4021であることが要求されているため、まずここから「ワープ誤差315F」を差し引き、次に「空白時間50F」を足す。 すると3756という数値が得られるが、ここから36だけ削り取れれば 3720F=62秒ジャスト となり、目押しが容易になる。 すると「待ちフレーム」を3985F、「年数」を2036年にすれば狙う初期SEEDを引き当てることができるというわけである。 この方法論を、全く別の初期SEEDに対しても試してみた。 結果見事に5VA0のニドラン♀とナゾノクサ、アメタマ(3匹とも同一SEED)を手に入れることができた。 消費SEEDについては、ハイリンクでは20が必ずどこかで消費されているので、これに加えて懐き判定で消費できる分を考慮すればOKである。 ◆今後の課題 ◎一般的なこと ハイリンク厳選の際には乱数が20個自動で消費されることがわかったが、この消費が具体的にどのタイミングで為されるかは確かめていない。 仮にハイリンクへワープするだけで消費されるというのであれば、固定シンボルなどでの乱数調整において大量消費が必要となった際に、利用可能かもしれない。 これはすぐに検証できそうである。 一応、森の境界をくぐるのは関係なさそうである。 すると「ワープ」か「エンカウント時の質問」か「エンカウント」か。 ◎個人的なこと 空白時間を50Fとして計算してきたが、実際のところこれがいくらなのか確認していない。 ハイリンク以外の乱数調整でこの値をもっと正確に測定した方がいいであろう。 (もっとも、正確な値が意味を為すのは自身の目押しが安定するようになったときなのだが。) ワープ時の再計算の誤差が文献と食い違った点も、きっとこの空白時間に関する認識の違いが原因となっているように思う。 というか、計算ツール「WCS」には空白時間を自動で考慮に入れる機能がついており(デフォルトでは70Fとしている)、当方それに気付かないまま実験を行っていたww ただそれが機能するのは、初期SEEDのみならず具体的な日時までツールに求めさせるときだと思うので、関係ないのかな?? ◆感想 ハイリンク乱数調整簡単すぎwwww 一度やり方がわかっちまえば次々狙い個体が出るわww 上では一般論を確立させることを目指したけれど、どうせ親行きとなることを考えれば、俺個人としては5VのSEEDが1つできるようになれば本当は十分なんだよね。 あとはアルセウスのときにはどんな個体を狙うかで悩む。 もっとも、シンクロ効かないせいで性格厳選が面倒臭いんだけどな。 今回の実験で仲間となったベロリンガさんには今後親として頑張っていただくとすでに述べた。 ……5V個体がただの親用なのか?? せめて図太いでなければ本人に活躍してもらえたかもしれない。 追実験で手に入れたニドランやナゾノクサは通常モンスターボールで捕獲したので、遺伝技に頼らないのならばそのまま実戦投入も可能となろうが、やっぱり性格気にしてなかった。 もう1つだけ、今回の実験で確信したことがある。。 懐き判定のためにハイリンクを所狭しと駆けずりまわる女主人公のアイコンが、鼻血が出るほどのかわいさであることだ。 彼女と一緒ならば、128×100歩の消費が必要になっても辛くないかもしれない(ウソ)。 |
Author:虹色
ゲームはあんまし好きじゃないけど、ポケモンだけは初代から続けている。
対人戦の経験はほとんどないけど、乱数調整はしっかり身につけている。
そんな不可思議なポケモントレーナー。
面倒臭がりな管理人なのですよ……。
現在BWの女主人公に熱愛中です。