性格値について

性格値とは各ポケモンごとに割り当てられた4バイトの数で性格を決めるのに使われていたことから、
性格値と名付けられた。
後述するが、性格値から性格が決められているのは4世代までである。
性格値から様々なことを求めることができる。

色違い

3世代4世代5世代6世代XD/Co

3/4/5世代及びXD/Coでは
(裏ID xor 表ID) xor (性格値上位16bit xor 性格値下位16bit) ≦ 7
のとき、色違いになる
6世代では
(裏ID xor 表ID) xor (性格値上位16bit xor 性格値下位16bit) ≦ 15
のとき、色違いになる

性格

3世代4世代XD/Co

性格値を25で割り、その余りによって決定させる
以下がその余りとせいかくの対応表である。
余りせいかく余りせいかく
0がんばりや13ようき
1さみしがり14むじゃき
2ゆうかん15ひかえめ
3いじっぱり16おっとり
4やんちゃ17れいせい
5ずぶとい18てれや
6すなお19うっかりや
7のんき20おだやか
8わんぱく21おとなしい
9のうてんき22なまいき
10おくびょう23しんちょう
11せっかち24きまぐれ
12まじめ

性別

3世代4世代5世代 XD/Co

性格値の下2桁が性別値になり、それをポケモンに与えられた雌雄比にしたがって評価する
♀:♂
1:700~1E1F~FF
1:300~3E3F~FF
1:100~7E7F~FF
3:100~BEBF~FF

個性

3世代4世代5世代 XD/Co

厳密にいうと、個性は4世代からの要素のため上記の表は間違ってるとも言えるが、
4世代以降に3世代/XD/Co産のポケモンを連れていくと個性は4/5世代と同じ形で決まる。
性格値を6で割った余りと個体値から個性は決定されます。
その位置は個体値の最大値ではない場合、下記表の次の位置に移る。
(5(特防)を超えた場合は0(HP)に戻る)
0HP
1攻撃
2防御
3素早さ
4特攻
5特防

なお、個性は各ステータスごとに5種類あるがそれは個体値を5で割った余りで決まる
余りHP攻撃防御特攻特防素早さ
0たべるのがだいすきちからがじまんからだがじょうぶこうきしんがつよいきがつよいかけっこがすき
1ひるねをよくするあばれることがすきうたれづよいイタズラがすきちょっぴりみえっぱりものおとにびんかん
2いねむりがおおいちょっとおこりっぽいねばりづよいぬけめがないまけんきがつよいおっちょこちょい
3ものをよくちらかすケンカをするのがすきしんぼうづよいかんがえごとがおおいまけずぎらいすこしおちょうしもの
4のんびりするのがすきちのけがおおいがまんづよいとてもきちょうめんちょっぴりごうじょうにげるのがはやい

特性

3世代4世代5世代

ただし、3/4世代と5世代では決まり方が違う。
性格値を0123ABCDとしたとき、
3/4世代はD、5世代は3の偶奇によって決定する。
偶数(0,2,4,6,8,A,C,E)なら特性1
奇数(1,3,5,7,9,B,D,F)なら特性2

ケムッソの進化先

3世代4世代5世代 XD/Co

3/4世代では
性格値の下位4桁 mod 10 ≧ 5 ならカラサリス
性格値の下位4桁 mod 10 < 5 ならマユルド
5世代では
性格値の上位4桁 mod 10 ≧ 5 ならマユルド
性格値の上位4桁 mod 10 < 5 ならカラサリス

まぼろしじま

3世代

0x0000~0xFFFFの疑似乱数が手持ちのポケモンの性格値の下位4桁と一致したときに出現する。
疑似乱数は午前0時を過ぎてからマップの境界をまたぐと更新される。
なお、電池切れの状態でゲームをはじめ、以後電池切れの状態を保持しているロムの疑似乱数は0x0000になる。

アンノーンの形状

3世代

性格値を2進数にし、以下のように並べたときに色がついてる数字の部分を並べ、
それを28で割った余りで求めることができる
00000000 00000000 00000000 00000000
00000000 mod 28
なお、26は?、27は!である。

サイズ

3世代4世代   

なお上記表にはXD/Coではサイズを測れる場所・ポケモンがないためXD/Coを除いているが、
XD/Co産のポケモンのサイズを測ると3/4世代と同様の方式をとる。
(下記の式は16進法表記前提の式である)

S=((((A個体値の1の位 xor B個体値の1の位) * H個体値の1の位) xor 性格値の1・2の位) * 0x100) +((C個体値の1の位 xor D個体値の1の位) * S個体値の1の位) xor 性格値の3・4の位
Sの値を下記の表のZと見比べ、初めてS<ZになるようなZの一つ上のX・Y・Zを使う

XYZ
0122010000
012C01000A
019002006E
01F4040136
02581402C6
02BC320A96
0320641E1E
038496452E
03E896C6C6
044C64BA5E
04B032E16E
051414F4F6
057805FCC6
05DC02FEBA
064001FF82
06A401FFE6

サイズ=(((S-Z)÷Y)+X) * 図鑑でのポケモンの高さ ÷ 0xA

パッチールの模様

3世代4世代5世代 XD/Co

性格値ABCDEFGHのとき、各桁の16進数を10進数にし、座標系(B,A)(D,C)(F,E)(H,G)を作成する。
これらはそれぞれ順にパッチールの「顔の左側の点」、「顔の右側の点」、「左耳の点」「右耳の点」の左上の点から数えた座標系の位置である。
これらの座標にゲーム内では左の顔の点に(18,19)、右の顔に(6,18)、左耳に(24, 1)を加えて模様を生成する。
右耳に変更点は無い。

ポケスロンのパフォーマンス

 4世代   

かなり複雑なので、ポケスロンガチ勢のろいしんさんのブログ参照
ポケスロン解説 – ろいしんぶろぐ

4 Responses to “性格値について”

  1. ASPEAR より:

    はじめまして。
    メールアドレスはダミーです、ご容赦ください。
    世代ごとの違いを細かく書いていて、参考になる記事です。

    ところで、ケムッソの進化先や個性の優先表示位置などといった「第5世代以前で『性格値』と呼ばれる値によって決定されていたもの」が、第6世代で何を基準にして決定されているか、気になったことはありませんか?
    特にパッチールの模様は32ビットすべて使うため、転送後の模様を再現するにはフラグなどではなく、転送前のすべての情報を引き継がなくてはならないはずです。

    結論を言うと、これらは「暗号化定数(英:Encryption constant)」と呼ばれる数値によって決定されます。
    その名の通りポケモンデータをチートなどで直接解析・改変されないための暗号化に使われる32ビットの数値で、ポケモンデータの先頭に位置します。
    Encryption keyと呼ばれることもあります。
    参考サイトは以下の通りです。
    User:Chenzw/Encryption constant
    http://bulbapedia.bulbagarden.net/wiki/User:Chenzw/Encryption_constant
    Pokemon X/Y 3DS Structure
    http://projectpokemon.org/wiki/Pokemon_X/Y_3DS_Structure

    そこで思ったのは、第5世代以前で「性格値」と呼ばれる値を厳密に引き継いでいるものは第6世代で「暗号化定数」と呼ばれる値であり、第6世代で「性格値」と呼ばれる値は色違いの判定のみに使われるデータなのではないか、ということです。

    根拠としましては、1つ目は前述した暗号化定数の「ポケモンデータの先頭に位置し、暗号化に使われる」という性質が第5世代以前の性格値と共通することが挙げられます。
    ポケモンデータの暗号化の手法にはデータブロック並べ替えとXORマスクの2つがあります。
    このうち並べ替えには第3世代では性格値全体、第4~第5世代では性格値の一部が使われていますが、第6世代では暗号化定数の一部が使われています。
    XORマスクには第3世代では性格値とトレーナーID、第4~第5世代ではチェックサムをseedとした乱数が使われていますが、第6世代では暗号化定数をseedとした乱数が使われています。

    2つ目の根拠には、裏IDxor表IDxor性格値下位16ビットxor性格値上位16ビットが8~15のポケモンは、第5世代から第6世代に移る際に性格値に0x80000000がxorされますが、その際にケムッソの進化先やパッチールの模様が変化しないことが挙げられます。
    (個性の優先表示位置が変わるかは分かっていませんが……)
    以下のサイトに検証結果が載っています。
    第5世代以前と第6世代以降の色違いの取り扱い
    https://archive.fo/KTqI3
    第6世代の性格値
    https://archive.fo/LDmFo
    第6世代のPID その2
    https://archive.fo/SuMSg

    3つ目の根拠は以上2つに比べてやや弱いのですが、XYORASの殿堂入りの記録において、暗号化定数は記録されるが性格値は記録されないことが挙げられます。
    殿堂入りの記録においては、色違いは1ビットのフラグで管理されます。

    これらの根拠より、第6世代で「暗号化定数」と呼ばれている数値と第5世代以前の性格値が実際には同じもので、
    第6世代で「性格値」と呼ばれているものは色違いの判定のみに使われるデータだと考えられます。

    事の真相は、XYで色違いの発生確率を上げたくなったゲーフリが、判定式を変更するだけだとそれまで色違いでなかった一部の個体も色違いにしてしまうため、性格値から色違いの判定を切り離し、色違いの判定は別の値で管理することにしたが、
    そのことを知らない解析者は色違いの判定のために切り離した方の値を性格値と呼び、それまで性格値としていたものを「暗号化定数」と呼ぶことにしてしまった、というところでしょうか。

    余談ですが、個人的にはむしろ第3~第5世代で「性格値」と呼ばれているものを「暗号化定数」と呼び直すのはどうかと思っております。
    実際暗号化には使われてますし、第5世代以降性格値と性格が関係ないというのもあります。

    • てるる(Tellu) より:

      改めましてはじめまして
      暗号化定数という単語自体は聞いたことがありましたが、
      暗号→何に使ってるかよくわからないというように変な解釈をして自己完結してしまっていたので、
      BulbapediaのURL非常に勉強になりました。
      (暗号化についても、3世代の例のバグを昔話題になる前に少し調べてた頃に3世代では性格値を使って暗号化してる程度しか認識していませんでした)
      特に5世代から6世代へポケモンを送った際、5世代以前における性格値がそのまま暗号化定数になるという記述はASPEARさんの意見を裏付け、個人的に興味深かったです。
      性格値の名称といいますか、3世代における消費の単位としてFを使用してるように、もともとの意味から外れてしまっていても、そのまま使われてしまっているのは、やはり間違いだと認識はしていても、
      結局その使われ方が大衆によって支持されていることから、使わざるを得ないということなのかなと思いました。
      空振るという動詞は本来存在せず、空振りという名詞しかなかったようにというような日本語の変化というわけではありませんが、そういうモノなのかという気もします。
      SM孵化乱数が現実的になり、実機でも暗号化定数を認識しやすくなりそうなので、
      考察だったり、検証だったりが増えるかもしれませんね。
      (Bulbapediaの記事に個性・ケムッソ・パッチールとすでに一通りありますが、7世代でも同様か明確に記述されてるわけではないですし)

  2. ASPEAR より:

    あら、先日この記事にコメントを残したはずですが、表示されてませんね。
    削除されたのかと思いましたが、もう一度同じ文面を投稿しようとすると重複扱い(つまり投稿自体はされてる)……どういうことでしょう?

    • てるる(Tellu) より:

      初めまして
      先ほど確認したところ、システム側にスパム認定されていたようです。
      おそらく多数のURLが含まれていたことが原因だと思われます。
      先ほどこちらで解除いたしましたので、コメントに対しては精読後返信させていただきますね。

サブコンテンツ

このページの先頭へ