|
初代ポケモンは開発中、HPや能力を数値で表示せず、 文章メッセージで状態を示すファジーな ゲームシステムが試みられていたそうです。 たぶん魔道物語あたりを参考にしたんでしょうね。 今でもポケモンチェンジ時のメッセージの多様さに その名残を見つけることが出来ます。 その後、数字を使うことによるゲーム性の深まりを再発見し、 やがて現在ぼくたちが触れる形に完成したのだそうです。
でもじゃあ、ゲーム画面に表示される「のうりょく」とか 「ダメージ」とかの数値って一体なんなんだろう。 ポケモンって一体どんなゲームなんだろう。 そんな疑問から、このテーマは始まります。
>レポート#1 「レベル」と「のうりょく」、二人の仲
以前、というか去年、ポケモンのプレイ日記をつけるついでに、 とあるポケモンの成長の記録をつけたことがあります。 あろうことかケムッソです。名前はマグナム、可愛いです。 このケムッソの成長記録をちょっと折れ線グラフにしてみました。 今回はこのグラフをもとに、ポケモンの「のうりょく」について 少しだけ考察してみたいと思います。 グラフ:http://usamimi.info/~koratta/neta/magnum_grow.gif (表:http://usamimi.info/~koratta/neta/magnum_growreport_ex.txt)
一見すると、このケムッソの「のうりょく」は 「レベル」の一次関数のように思えます。 小数点以下の数値が不明だから、精度はアレですけども。 一次関数っていうのは「y=ax+b」ってやつですね。 この場合は「のうりょく=a×レベル+b」って感じかしら。 定数aは直線の傾き具合に関係する数値だそうです。 この中に、ポケモンの種類ごとの強さの違いや、 一匹一匹の個性などが、何らかの形で入っているんでしょうね。
また、「レベル」が0の時「のうりょく」が0を 通っていないようですね。おおよそ「HP」では9付近、 その他の「のうりょく」では4付近を通っているように見えます。 定数bが0ではないらしいことが分かります。 なお、細かい計算が必要な考察は次回以降にやりたいと思います。
ところで、このグラフを一次関数だ思ってよく見てみると、 Lv10からLv20くらいにかけて、「こうげき」が大きく上昇 している点がなんだか気になりますね。 一次関数はふつう、こういった曲線を描きません。 実はこのころ、たくさん倒せば「こうげき」がよくあがると噂の ポチエナと、これでもかというくらい戦ってたのです。 (うっかり成長記録つけ忘れるくらい) 前後でレベルごとの上昇数が変化していること、 しかし定数bはあまり変わっていないらしいことから、 特定のポケモンを倒すと得られる何かが 定数aに影響を与えていた可能性があります。 (そういう意味では変数って呼ぶほうが正しいかな?)
最後にもう一つ、よ〜く見ていただかないといけないんですけど、 「とくぼう」と「すばやさ」の線、他より微妙に うねっとしてるような気がしないでしょうか。 表から調べてみると、「とくぼう」には上昇数に2以上の幅が、 「すばやさ」には最小上昇数および最大上昇数の連続出現が、 それぞれ周期的に見られることが分かります。 これは単なる端数処理では見られないはずのもので、 周期信号を量子化したときのノイズに似てます。 グラフ:http://usamimi.info/~koratta/neta/magnum_growalias.gif 「なまいき」なうちのケムッソは「とくぼう」が上がりやすく、 「すばやさ」が上がりにくい、という話があります。 この「せいかく」の補正が仮に、「のうりょく」算出式に 挿入される定数の乗算だとすると、可能性として考えられるのは、 端数処理の繰り返しによる誤差の蓄積です。
参考:ひみつの情報屋さん、アスペクト「ポケットモンスター図鑑」 メディアファクトリー「ルビーサファイアポケモン図鑑完成ガイド」
いかがでしたでしょうか。長くなりましたが、 今回はこんなところで終えたいと思います。 「のうりょく」は「レベル」の一次関数! たぶん。 そんなのどっかに書いてあるよとか言われても気にしない! 手探りで調べていくのってめんどく、あわわ、楽しいです。 次回は定数aとbの算出に挑戦、するかも? いつになるか分かりませんけど…。
皆さんも発見したこと、考えてみたこと、疑問その他、 ぜひこのテーマで発表してみてくださいね。 もちろんこのテーマではぴくし〜のーとの使い方の通り、 ポケモンシリーズのゲームを通常にプレイして確認できる情報 ぴくしぃ内のページ、公式書籍に乗っているもの 以外からの引用はしませんし、できません。
|
117-53-8-7.adachi.ne.jp
|
>レポート#2 「すばやさ」ってなんだろう
いわゆるRPGには登場人物の強さを視覚的かつ具体的に 示す「ステータス」があります。 その中で「すばやさ」は、必ずと言っていいほど含まれているもの。 ゲームによっては「DEX」とか表現するものもありますね。
ポケモンもこの例に漏れず、「すばやさ」がありますね。 この数値が大きい方から先に行動できます。 ポケモンの世界で言うと、これ、かなーり重要視されています。 たった”1”の違いでも、値が大きいほうが先に動く。シビアだなぁ。実社会の厳しさを表していますね。
でもですよ。いかにも身軽で素早そうな外見のポケモンが、 重量感あるポケモンより遅かったりするこの世界。 仮に「すばやさ」が具体的に数値で視認できない場合、つまり すばやさが数値ではなく、図鑑の説明文等に則って忠実に再現 された場合、そこにはどんな世界があるんでしょ。
例えば、ガブリアス。マッハポケモン。 マッハっすよお姉さん。マッハということは、時速で言うと 約1,062.36km/h。ガブリアスが成層圏で行動可能とした場合、 テッカニンすらヨユーで抑えれますね。
一方、カイリューを見てみると、16時間で地球を1周します。 地球一周はおおよそ40,000km。これを16時間で1周するとなれば、 2,500km/hで飛行できる。マッハポケモンは数匹居るっ。
ただ、通常この速さで動いたとしますと、大気との摩擦熱が 問題となってきますね。 マッハ3(約3,675km/h)程度になると、大体300〜700℃の熱が発生するみたいです。 そうなるとガブリアスVSカイリューが戦った場合、炎龍同士が ぶつかり合う大迫力の怪獣映画が出来ますね。
しかしながら、人とポケモンが力を合わせて共存する世界。 命をぞんざいに扱うことはいけません。 「すばやさ」を数値、目に見える形で表現しているのも、 ポケモンを守るためなのかもしれませんね。
よく「何でこのポケモンはあのポケモンより遅いんだろう」とか 不服に思う事は良くあるけれど、こう考えるとより落ち着いて ポケモンというゲームと向き合うことができる気がしています。
おわり。
|
p3233-ipbf906funabasi.chiba.ocn.ne.jp
|
>トガさん なるほど、カイリューより「すばやさ」の高いポケモンは とんでもないことになってしまいそうですね。 1ターンに自分と相手が一回ずつ行動するっていう ポケモンバトルのルール上、「すばやさ」はポケモンの 速度じゃなくて、行動に移る瞬発力、っていうのはどうでしょう。 キノピオは加速力が高いんだけど、 クッパのほうが最高速度は上、みたいな。
>レポート#3 定数aとbを挟撃せよ
さて今回は、定数aとbを追っていきたいと思います。 ですがその前に、ちょっとだけ前回のおさらいをしておきましょう。 前回の考察から、「のうりょく」の関数には、 以下のような点が推測されました。
・定数aはある条件の時変動すること ・なんらかの端数処理を行っているらしいこと
端数処理というのは、切り捨てとか、四捨五入とかのことです。 これを考慮して計算しないと精度が悪くなりそうです。 定数aが変動するなら、まずは定数bから追っていくのが よさそうですね。待ってろよ定数bめ。
あとここらへんから細かい計算がいっぱい必要になってきそうで ちょっとめんどくさいです。せいぜい中学数学までの範囲だと 思いますけど(でないと殻サリスが分からない) つたない数学能力への補足、つっこみ等お待ちしてます。 それでは教科書32ページを開いてください。
N=aL+b N=「のうりょく」表示値 L=「レベル」
これはレポート#1で推定された「のうりょく」関数でしたね。 短い変数名は今後もこれを統一して使うことにします。 まず上の式を二元一次方程式とかいうのにしちゃいましょう。 二つの点が分かれば解けるとウワサのあれです。 Nは端数処理を切り捨てと仮定して+1の幅を持つyとしときます。 (これが違っても、解に手を加えれば済むのでひとまずは)
y1=aL1+b (N1≦y1<N1+1) …A y2=aL2+b (N2≦y2<N2+1) …B
式Bをa=(y2-b)/L2に変形して式Aに代入し、 bについて式を整理します。
b=(L1y2-L2y1)/(L1-L2) (N1≦y1<N1+1) (N2≦y2<N2+1)
(0<L2<L1)のとき、 y1の最大値かつy2の最小値に、bの最小値が対応し、 y1の最小値かつy2の最大値に、bの最大値が対応するようです。
(L1N2-L2(N1+1))/(L1-L2)<b<(L1(N2+1)-L2N1)/(L1-L2) (0<L2<L1) 図:http://usamimi.info/~koratta/neta/fixb_width.gif
ややこしい。説明あってんのかな。 実際にマグナムの「のうりょく」の定数bの一番狭い変域を エクセル先生に調べてもらいました。 L1、L2には、レベル毎の上昇数、つまり定数aに変化がなくなった ようにみえる、レベル46以降を代入します。 座標は(L1,N1)(L2,N2)です。
「HP」 b<10.0434... (100,247)(54,137) b>9.9142...(81,201)(46,119)
「こうげき」 b<5.125 (100,177)(68,121) b>4.9534... (93,164)(50,91)
「ぼうぎょ」 b<5.1111... (100,114)(55,64) b>4.7906... (99,112)(56,66)
「とくこう」 b<5.1052... (100,63)(62,40) b>4.967... (81,51)(50,34)
「とくぼう」 b<4 (100,104)(61,64) b>9.5454... (61,64)(50,55) 解なし
「すばやさ」 b<1 (56,43)(48,36) b>9.4 (61,45)(56,43) 解なし
「せいかく」補正がかかっている「とくぼう」と「すばやさ」は 式が破綻してしまいましたね。 前回でも触れた端数処理の繰り返しが原因していると思います。 細かいことは「せいかく」の回でやることにして忘れましょう。 他の「のうりょく」に関しては、「HP」の定数bがおよそ10、 残りの「のうりょく」の定数bはおよそ5という結果が出ました。 微少な幅を省いた整数の10と5は切りのいい数値であることから、 これが実際の数値であること、「せいかく」補正無しの端数処理が 「切り捨て」であることが推定できます。 「とくぼう」と「すばやさ」の定数bは赤点なので追試ですけど。
では今度は定数aを計算してみましょう。 定数bが判明しましたので、「のうりょく」関数を変形した式に マグナムの各値を代入すればOKです。L≧46の(L,N)です。
a=(y-b)/L (N≦y<N+1) (N-b)/L≦a<(N+1-b)/L (0<L)
「HP」 a≧23.7 (100,247) a<2.3703... (54,137)
「こうげき」 a≧1.72 (100,177) a<1.7204... (93,164)
「ぼうぎょ」 a≧1.09(100,114) a<1.0909... (55,64)
「とくこう」 a≧0.58 (100,63) a<0.5802...(81,51)
「とくぼう」 a≧1 (50,55) a<0.9836... (61,64) よって解なし
「すばやさ」 a≧0.6842... (95,70) a<0.6666... (48,36) よって解なし
グラフ:http://usamimi.info/~koratta/neta/magnum_fixa.gif
だんだんマグナムの「のうりょく」が赤裸々に判明してきました。 「とくぼう」と「すばやさ」は(以下略) 定数aは小数第二位までが有効桁のように見えますね。 レベル100のとき1になるからでしょうか。 とすると端数処理が切り捨てである推測も強まります。 今後さらに追試することにしましょう。 グラフを見ると、「こうげき」がどれだけ上がったのかが よくわかりますね。ポチエナと戦わなかったらレベル100でも まだ110くらいだったかも? ほかの「のうりょく」も レベル37あたりまでじわじわ上がっているようにみえます。
ここまでのまとめです。
N=floor(aL+b) N=「のうりょく」表示値 L=「レベル」 b=「のうりょく」定数(「HP」のとき10、その他のとき5) floor()=切り下げ関数(その数を超えない一番大きい整数にする)
floorはtrunc(切り捨て関数)に訂正可能です。 なんかまた長くなっちゃいましたね。 次回は一旦マグナムとバイバイして、他のポケモンといちゃいちゃ 定数aをさらに詳しく調べてみることにします。ではでは。
|
117-53-8-7.adachi.ne.jp