一撃誌






Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


web拍手 by FC2 tweet

エメループの仕組み

エメラルドで、なぜループが起こるのか?
なぜ、決まった時間だけ待てば強いポケモンが現れると分かるのか?

試しに説明してみます。
といっても、私は数学が苦手なので怪しい部分もあります。



かなりの長文になってしまったのと、夢が壊れる可能性もあるので
一応続きからにしておきます。<乱数について>

エメラルドに限らず、GBA以降のポケモンでは
ゲーム内で「乱数」と呼ばれるものが使われています。
ランダムで、次にどんな数が出てくるか結果が全く予想できない数の事です。

ポケモンバトルが得意な方でしたら、
ダメージ計算の場面でよく聞く言葉だと思います。
全く同じ能力値のポケモンが相手なのに、自分のポケモンの攻撃で
倒せる時と倒せない時があるのは、乱数のせいでダメージが少しだけ変化しているからです。
この時、どんな乱数が出るのか分からないので、最終的なダメージは運任せになります。


乱数はゲーム内の多くの場面で使われています。
ポケモンのダメージに限らず、
技が命中するかどうかの判定を行う時にも使います。
また、ポケモンの個体値を決定する場面でも関わってきます。

このように、数をランダムに決めていく事で、ゲームをより面白くする働きがあります。
もしも乱数が存在しなかったら、一撃技が100%当たるゲームになりますね・・・。怖!


ただし、コンピューターは外部の操作なしで完全な乱数を作る事ができません。
代わりに、「擬似乱数」と呼ばれるものを作っています。
擬似乱数は乱数によく似ていて、ランダムに決まる数に見えますが
実際は決まった計算式から答えが出せる数です。
つまり、計算式がどんなものか分かってしまえば、出てくる数が何であるか分かってしまいます。
ポケモンのゲームにおける乱数も、この擬似乱数を利用しています。



<擬似乱数の決まり方>

擬似乱数を計算するのは、擬似乱数生成器の仕事です。
与えられた数を決められた計算式の一部に入れて計算し、擬似乱数を求める働きです。
計算式に入れる最初の数はseed(シード、乱数の種)と呼ばれていて、
これがないと計算を始める事ができません。
seedがどんな数になるかはゲーム起動時に決まります。

決まり方はゲームによって違いますが、エメラルドは0で固定になっています。
つまり、どのエメラルドでも同じパターンの擬似乱数ができる事になります。
この計算式によって出てきた擬似乱数が、次に計算する時に使われます。


例えば、極端な話ですが
決められた計算式が 
△+1=? だったとします。(実際はもっと複雑な式なので安心して下さい)

この時、△の部分に最初の数を入れないと計算ができません。
エメラルドを起動したときは、最初の数が0なので
0+1=1
というように、答え(擬似乱数)を出す事ができます。

出てきた答え(擬似乱数)を次の計算式で使うので、
△+1=? の部分に先ほど出てきた答え、1を入れると
1+1=2 のように、次の答え(擬似乱数)が決まります。

このように計算を繰り返し、擬似乱数を次々と作っていきます。



<ポケモンの個体値・エメループ>

先ほど少し触れましたが、
乱数がポケモンの個体値を決めるのに関わっています。
個体値以外では、性格や特性・性別等も別の乱数から決まっていきます。
言いにくいのですが、全てのポケモンは乱数と計算式から作られている、という事になります。

擬似乱数が計算式から次々と作られていき、
それを利用してポケモンの個体値も次々と作られていきます。
擬似乱数1つにつき個体値が1つ、という訳ではなく
いくつかの擬似乱数を利用して1つの個体値セットが作られます。
方法には3通りあり、それぞれmethod1、2、3と呼ばれています。
どの方法で作られるかは、ポケモンの種類や出現場所によります。

作られる個体値の順番は、エメラルドならば
最初のseedも計算式も同じなので、全てのソフトで同じ個体値の並びができてしまいます。
エメループの特徴として、同じタイミングでポケモンに出会うと
同じ個体値のポケモンが出てきてしまうのはこれが原因です。

この個体値の並びは、時間にして大体1フレーム(約1/60秒)間隔で作られていきますが
何らかの条件によってズレが発生します。
電源を入れるかリセット~つづきからはじめるを選択するまでの時間
(オープニングの時間)が影響しているという説もありますが、詳しくは不明です。


ごちゃごちゃしてきたので、
また例をあげて説明してみます。


究極のスープの素(seed)があったとします。
この素を使い、料理人(擬似乱数生成器)がレシピ(計算式)を元に
材料(擬似乱数)を決め、スープ(個体値)を作っていきます。
作られたスープは一部を残しておいて、次に作るスープの材料にします。
こうして、次々とスープを作っていきます。

レシピは途中で変わる事はありませんが、
出来上がっていくスープの味は全て違うものになります。
スープの調理時間(フレーム数、経過時間)はほぼ一定で、
決まった時間にスープを注文すれば同じ味のスープが食べられます。

料理人は3人いて(method1・2・3)、材料の好みがそれぞれ違います。
使うレシピは同じでも、嫌いな材料があったら入れません。
よって、料理人ごとに少し違う味のスープができていきます。

と、こんな感じになります。


この例で説明すると、
エメラルドループを利用してポケモンを厳選するというのは、
決まった時間にスープを取りに行く事です。
いつ取りに行けば良いかは、調理場(ゲーム内のデータ)に入らずに知る事ができます。
なぜなら、スープの素(seed)と元のレシピ(計算式)が既に判明していて、
スープができる順番と時間が決まっているからです。

エメラルドループが改造やバグ技と決定的に違う部分は、
利用によってソフトの中身に悪影響を及ぼさない事です。
そもそも、普通にプレイしていても避けられないものです。
ただ単に、決められた計算式で導かれた結果を利用しているにすぎません。
既に計算式が判明している、個体値計算やダメージ計算と同じ事です。

改造で能力値をいじるというのは、調理場に忍び込んでスープに変なものを入れる事。
バグ技とは、調理場の外から変なものをスープに投げ込む事。
ループを利用した厳選は、目当てのスープができるまで待つ事。
たくさん捕まえて厳選するのは、スープをたくさん取っていく事。




<まとめ>

ポケモンの個体値は
seed、擬似乱数、それを作りだす計算式、出てきた答えを利用する方法の
4つの要素から決まっていく。

エメループはseedが0に固定される事によって起こり、
計算結果がどのソフトでも同じになってしまうので
決まった個体値が順番に現れるようになってしまう。
逆に、どんな個体値が現れるか計算で分かるようになったので
高個体値を探して捕まえる事が可能になった。




以上です。


間違いやミスがありましたらご指摘下さい。





参考URL
http://www5.atwiki.jp/metamon/pages/31.html

計算式等の詳細はこちらに載っています。

二進法とか十六進法の説明はややこしいので省きましたが、
この機会に勉強してみるのも良いかも・・・?



スープが好きなので例えをスープにしてみました。
エメラルドスープがあったら・・・どんな味がするのやら。

web拍手 by FC2 tweet

*Comment

 

丁寧な説明、ありがとうございます。
学校の先生みたいです。
ただ本当に学校で同じ勉強があったら、一回では理解できないかも。
私は基礎が全然わかってないので。

他のソフトは起動時にseedが決まるとありますが、
それは電源を入れた時なのか(ソフトリセットでは変わらないのか)
同じセーブデータなら一回切ってもseedは変わるのか変わらないのか
そのへんが知りたいです。

「私のデータは色違いが出やすい」とか、よく聞きますよね。
あれはどういうことなんでしょう。
ルビサファとファイリフではseedのありかたが違うのでしょうか。
  • posted by タッツー 
  • URL 
  • 2008.12/19 18:55分 
  • [Edit]

 

>タッツーさん
どういたしまして。
学校の授業にポケモン学があったら良いですね~。

他のソフトでのseedの決まり方は、
まだよく分かっていません。

色違いが出やすいというのは・・・
ただ単に運が良いのか、
たまたま色違いのフレームが最初の方に集中するデータなのかもしれませんね。
  • posted by ヨウコ 
  • URL 
  • 2008.12/19 20:24分 
  • [Edit]

管理人のみ閲覧できます 

このコメントは管理人のみ閲覧できます
  • posted by  
  •  
  • 2009.01/10 20:34分 
  • [Edit]

 

>秘密のコメント下さった方
初めまして。ご訪問有難うございます。
それについては・・・こんな所で良ければご自由にどうぞ。
無事にできたら教えて頂けると嬉しいです。
  • posted by ヨウコ 
  • URL 
  • 2009.01/10 20:58分 
  • [Edit]

電池切れ 

私のエメラルドは、電池切れ?で時計が動かないのですが、電池切れの場合でもエメラルドループは発生するのでしょうか?
  • posted by ラモス 
  • URL 
  • 2009.01/11 09:36分 
  • [Edit]

 

>ラモスさん
電池切れの場合については分かりません。
電池交換をお勧めします。

推測になってしまいますが、
エメラルドループはゲームをプレイ中に本人が意識してもしなくても
必ず順番どおりに個体値ができていく仕様ですので
発生しないという事はないと思います。
  • posted by ヨウコ 
  • URL 
  • 2009.01/12 00:38分 
  • [Edit]

管理人のみ閲覧できます 

このコメントは管理人のみ閲覧できます
  • posted by  
  •  
  • 2009.01/12 21:49分 
  • [Edit]

 

エメループは、ストップウォッチが、必ずなければいけませんか?
  • posted by ブラウン 
  • URL 
  • 2011.08/08 17:47分 
  • [Edit]

 

>ブラウンさん
エメループのタイミングを上手く合わせるためには、
ストップウォッチか、ストップウォッチの機能が付いている携帯電話が必要です。
無くてもできますが、合わせるのが難しくなり、時間がかかってしまいます。
  • posted by ヨウコ 
  • URL 
  • 2011.08/08 22:11分 
  • [Edit]

 

>早い返信ありがとうございます。
 ポケモンの館のエメタイマーで計ればよろしいですか?
 
 エメループをやるのは、初めてなのですがレジロックの
  306188Fを狙いたくてあちこちのサイト巡りをしたので
 が、やり方が、サッパリ分かりません。
 どのような事をすればいいのでしょうか?


 ポケモンの館のエメタイマーのリストは、どのように使えば
 いいのでしょうか? 
  
 エメループの時間を出す所までは、できたのですが、
 レジロックには、多少のラグが、生じるらしくその解決策
 が、見つかりません。教えてくれませんか?
 
 たくさんの質問を一度にしてすいません。
 エメループの解き方とか学校の授業に出でも不思議じゃ
 ないと思うんですけどね。.

 
 

 

>ブラウンさん
エメタイマーが利用できるなら、それでOKです。

時間がズレるのであれば、リストを確認しながら、
待機時間の長さを変えれば良いと思います。
具体的な厳選方法については、以下のラティオスの記事を参考にしてみてください。
ttp://sheercold.blog60.fc2.com/blog-entry-904.html
  • posted by ヨウコ 
  • URL 
  • 2011.08/10 00:36分 
  • [Edit]

Comment_form

管理者のみ表示。 | 非公開コメント投稿可能です。

左サイドMenu

プロフィール

ヨウコ/yoko

Author:ヨウコ/yoko
海外アジアで働く日本人ポケモントレーナー。台湾で3年働いて、次はシンガポール!
世界中のポケモントレーナーと交流したり、各国のオフ会に参加したりしています。

FC2 Prof

最近の記事

月別アーカイブ

カウンター

FLAG Counter

Free counters!

since 2012.12.22

右サイドメニュー

ブログ内検索

ストップウォッチ

1/100秒まで測れます。

    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。