ゆうのぴあ

2008-11-27 すげー

エメラルドのループ利用厳選は実機でちゃんと通用することが確認できました。



・実験方法

カイオーガの前でセーブ。

ソフトリセット後、最速でカイオーガを捕まえる&個体値性格チェック。

個体値と性格から、性格値の下位4バイトを決定するのに使われた擬似乱数の値を逆算する。

逆算した値から、その後2000フレーム(適当)までに現れる(はずの)カイオーガ個体値と性格を計算。

ソフトリセット後、最速より若干ラグを作って、最速より数秒遅くカイオーガを捕まえる&個体値性格チェック。

チェックした個体値と性格が、既に計算したものに一致するかどうか調べる。


・結果

3秒くらい遅らせて捕獲→200フレーム後付近に出ると予想したものとすべて一致。

10秒くらい遅らせて捕獲→600フレーム後付近に出ると予想したものとすべて一致。



あと、擬似乱数の発生と消費がどのタイミングで行われているかですが、

ストップウォッチで、

ソフトリセットから20.097秒 オープニング長めに見る→553F

ソフトリセットから19.987秒 カイオーガの目の前まで最速→541F

となったので、リセット後、オープニングの時点で1フレームに1つ消費されているようです。


なので、目当ての個体値&性格を狙う場合、

ソフトリセットした瞬間から、目当てのポケモンと遭遇するまでの時間を計ればいいということになります。

とりあえず大まかに何秒くらいか調べて、その後早すぎた遅すぎたを毎回調べて微調整していくのがよさそう。


究極的には、ソフトリセットからAボタン押すまでを設定時間通りに押してくれるツールが欲しくなってくるな(

半自動タマゴ割り機が作れるんだから全自動厳選機も夢じゃなかろ


でも、狙いからのばらつきが前後1秒もあっても、120回の試行を行えば目当てのやつと1回遭遇できると期待できるくらいなんだから、割と短時間で目当ての遭遇できる気がする。最初思ったより、机上論ではないっぽい。

ソフトリセットと同時にストップウォッチを押すときの誤差が0.5秒、Aボタンを押すときの誤差を0.5秒としてもそのくらいだし、実際は0.5秒もずれることはないはず。

難しいのが狙いの個体がソフトリセットから何秒後か推定するところかな。測定&修正が必要だからそこに時間を食いそう。




次は実践。

ラティはもういらっしゃらないので泣く泣くカイオーガで粘ってみます(

エメ買ってきてもいいんだけど、GBAも紛失中でレコード混ぜられないっていうね…


ちなみに、もしこれを見て、やってみたいけど、乱数の逆算とか乱数から個体値の生成がうまくできなくてやろうにもやれないという人がいたら、へぼですが現状使えているプログラムは作ったので必要であればうpできます。

実際やってみると結構感動しますよ(



※追記

やってみた。


目当て 529F 26-27-16-30-26-29,おくびょう

ストップウォッチで19.6秒くらいを狙う

以下出てきた個体のフレーム

517

526

536

527

537

528

532

536

528

526

536

531

546

531

538

533

536

534

529 19回目の試行で目当てのカイオーガを捕獲。


誤差は0.5秒(30F)以内には抑えられる感じですね。

リセット後30分とかでも、30回の試行で出せるならやる価値はあるかも。


6384Fに攻撃以外の合計が120の臆病めざ地67を発見。めざ地ラティ狙いならこいつがよさそう。

してんのーしてんのー 2008/11/28 14:09 これはすばらしぃー(
そのネ申プログラムを是非うpして欲しいです!!

HP31素早さ30のクレセリアは何匹か捕まえましたが全詳細個体値までは調べて無かったです。お役に立てずすみません。

通りすがりの人通りすがりの人 2008/11/29 18:19 これは素晴らしい
ここまで読んで疑問があるんですけど
特性シンクロを利用して野生のポケモンに遭遇したときの場合なんですけどその場合はどうなってるんでしょうか?
リセットからの時間ごとだと考えを用いると特定の性格が出る時にエンカウントしやすくなってなるなどの可能性が考えられますけど
あまいかおりでエンカウントさせた場合はそういうのも不可能ですし…
となると前回の記事に書かれていた使われている場所がわからないとおっしゃっているmethod2,3はこの際に使われているんでしょうか?

時間があれば検証してもらえないでしょうか
自分でもやりたいんですけど悲しいことにプログラム等に対する能力や知識が足りないので不可能なので(

それと前回の記事
>下から5個ずつ組にする(例:0 | 00101 | 11010 | 11100)
>分けたものを10進数に直したものが、| 防御or特防 | 攻撃or特攻 | HPor素早さ になります。上の例ならHP29、攻撃26、防御5。
HPは16+8+4で28だと思います(

eunopiaeunopia 2008/11/29 21:04 >してんのーさん
http://www1.axfc.net/uploader/He/so/164386.zip
うpしてみました。よくわかんないor動かねーよということがあったら教えてください(

クレセリアは…まあそうですよね( 自分もそうです。
でも調べた人が既にいたみたいで、この件に関してはもう大丈夫です。


>通りすがりの人
解析する技術があるわけではないのでなんともいえないのですが、おそらく「かわらずのいし」孵化同様、いったん性格値を作ってから、シンクロするよう書き換えているのではないでしょうか。
シンクロを使って出したポケモンが、例の性格値&個体値の相関から外れるという話も聞きますし。

method2,3はアドバンス限定で、野生ポケモンに使われているらしいです。野生はmethod1,2,3が場所によって使い分けられているとか。
なので、野生については調べるのがちょっと大変そうなんですよね。
ちなみに、はじめのポケモンやダンバル等人にもらうポケモン、あとはラティなどの伝説は必ずmethod1みたいです。あとDS版はすべてmethod1のようです。
詳しくはここを見ると分かるかもしれません( 
http://www.smogon.com/dp/articles/pid_iv_creation

>HPは16+8+4で28だと思います(
すいません、そのとおりです(
ほかには1バイトを間違って書いてましたorz
前回の記事で言う2バイト=正しい1バイトです

ヤンヤン 2008/12/05 20:27 はじめまして。非常に興味深く読ませていただきました。
私も是非試してみたいと思うのですが、件のプログラムを再度アップしていただけないでしょうか。
記載されているものを試してみたのですが、Not Foundが出てしまいまして…
よろしければお願いいたします。

eunopiaeunopia 2008/12/06 00:28 読んでくださってありがとうございます。
プログラムは恥ずかしかったので即刻削除してしまいました。すみません(

http://www1.axfc.net/uploader/He/so/166824.zip
以前アップしたものとは違うものなのですが、エメループ用のツールとしては使いやすくなったと思います。


・変更点
個体値&性格の入力で、性格値&遅延で発生する個体値を計算するようにしました
何フレーム目まで計算するか入力できます。なぜ前回はあんなに重いのを出力するようにしたんでしょうね(

eunopiaeunopia 2008/12/06 10:28 すいません。改善したつもりのところが間違ってたようで、正常な出力がされてませんでした(

http://www1.axfc.net/uploader/He/so/166944.zip
直したものがこちらです。pass=utu

ヤンヤン 2008/12/06 17:03 早速対応していただき、ありがとうございます。
ダウンロードさせていただきました。厳選するのが楽しみです。
本当にありがとうございました。

renren 2008/12/07 08:51 はじめまして。ダウンロードしたいのですがキーワードは何を入力すればいいのでしょうか?
passを入力してもキーワードが正しくありませんと出るのですが。

eunopiaeunopia 2008/12/07 09:33 すいません、なんかボケていたようで、キーワードは"roop"です。

renren 2008/12/07 10:19 ありがとうございます。ダウンロードできました。
この使い方がよくわからないのですがどうやって使うんですか?
質問ばかりですいません。

おひるごはんおひるごはん 2008/12/07 15:15 XPHomeEditionのSP3(VisualStudioの2005入り)と2000のSP4で動作しませんでした。
2000で試してみた時、MSVCR90D.dllが指定されたパスに見つかりませんと出たのだけれど、
ちょこちょこ調べて推測するに、VSの2008入れるか、vistaじゃないとキツかったりとかしますかね?

eunopiaeunopia 2008/12/08 01:00 >renさん
個体値と性格をHP個体値(スペース)攻撃個体値(スペース)…(スペース)性格とキーボードで入力してください。
その後も入力を求められるので、適当に値を入力してください

>ひるめしさん
なるほど…
とりあえずその文面でググって一番上に出てきたのをやってみました(
http://www1.axfc.net/uploader/He/so/167613.zip
(pass=sage)
どうでしょうか?


自分が得たいデータをとるための簡単なプログラムは書けるけど、他人が使えるプログラムを作れるかどうかは正直かなり微妙…
なんで誰かみんなが使えるものを作ってくれないかと期待しています(

おひるごはんおひるごはん 2008/12/08 02:00 やはりダメでした…。
でも自分も早急に必要とはしないので、放置しちゃってくださいな。
ソースコードさえあれば自分もjava版作れるとは思うのですが、時間が…。(

BTGFBTGF 2008/12/08 14:22 はじめまして

アップされたものを落としたのですが、アプリケーションの構成が正しくないから開始できないと出てしまいました
どうすればよいのでしょうか?

eunopiaeunopia 2008/12/09 01:05 >ひるめしさん
そうですかorz
了解です。
ソースは現状のままではいろいろと酷いので、整理したらのっけるかもです。


>BTGFさん
http://www1.axfc.net/uploader/He/so/167931.zip
pass=sage
これではどうでしょう?
駄目だとしてもじぶんにはなんともできないかもです…(知識ないので

とおりすがりとおりすがり 2008/12/09 07:52 http://lab.co-conv.jp/blog/2007/08/
こちらを参照にしてはいかがでしょう。

ラティ好きな人ラティ好きな人 2008/12/09 14:39 UPされているものをダウンロードさせていただきましたが、
アプリケーションの構成が…となってうまく起動できません。
どうすればよいでしょうか。

metagross-armormetagross-armor 2008/12/09 16:12 再頒布パッケージ落としても起動できないので、今のところC++本体をインストールしないとダメみたい。
http://www.microsoft.com/japan/msdn/vstudio/express/default.aspx

村雨村雨 2008/12/09 17:29 eunopiaさんの作ったものでC++で開いて数値を入力するのですが、性格値を確定できませんでした と出るのですがどうすればよいですか?

eunopiaeunopia 2008/12/09 23:47 >とおりすがりさん
ありがとうございます。
一応最新のがそれやってみたもののはずなんですけど無理みたいですorz

>ラティ好きな人さん
多くの人がそうなってしまうみたいです。すいません…
アーマーさんに提示してもらったものを試してみたらうまくいくかもしれません。

>アーマーさん
どうもー。ありがとうございます。
コンパイラ変えたらうまくいくのかなー

>村雨さん
性格値を確定できませんでした、と出る場合、
その個体値と性格はラティオスでは野生と孵化以外ではありえないものであるか、
個体値から逆算できる性格値が2つ以上あるかのどちらかです。
性格値の候補が2つ以上あると、その後の計算ができないためそうしています。

ですので、もう一度捕まえなおして、それから計算を行うようにしてください。
性格値の候補が2つ以上ある場合はそれほど多くないので、2回くらい捕まえなおせばOKなはずです。

eunopiaeunopia 2008/12/09 23:49 「ラティオスでは」はいらないです。
野生と孵化以外=カイオーガやラティオス、レジアイス、ダンバルなどの固定シンボル