splatoon2 のXパワーの仕組みを解説

0. はじめに

この記事ではスプラで使われているパワー(Xパワー、リーグパワー、フェスパワー)がどういったものなのかを解説します。
注意として、この記事で解説する手法は任天堂が公式に公開しているsplatoon2 の情報ではありません。あくまで、使われているであろうと言われている手法(glicko2)について、以下の文献と記事をもとにわかりやすく解説できればと思います。
できる限り数学の知識は使わずに解説できるよう頑張ります。

1. レートとレーティング手法

皆さんご存知のとおり、スプラトゥーンにはガチマッチにおける腕前というランク制度と、パワー(Xパワー、ガチパワー、フェスパワー、リーグパワー)といった数値化された制度があります。
この後者の数値はいったい何なのか?そしてこのパワーを算出する手法である「レーティング手法」とはいったい何なのか?
解説していきます。

1.1 強さとは?

勝負の世界において「強さを数値化したもの」をレート(スプラトゥーンではパワーと呼ばれるもの)と呼びます。
某人気漫画ドラゴンボ●ルでもありますよね、「私の戦闘力は53万です」ってやつです。基本的に数値が高ければ強いとされています。
またこのレートを出す方法のことをレーティング手法と呼びます。

では、ここでいう「強さ」とはなんでしょうか?また、どうやってそれを数値化すれば良いのでしょうか?

勝負の世界では「強い者が勝つのではなく、勝った者が強いのだ」といった格言もあります。今回紹介するレーティング手法に限らず、多くの場合基本的にはこの「勝負にどれだけ勝ってきたか」をもとにレートが決まります。

1.2 勝ち負けをどうやって数値化するか?

「勝負にどれだけ勝ってきたか」を元にレートが決まるといいましたが、では勝負にどれだけ勝ったのかを数値にする方法について考えてみましょう。

今から強さを数値にする例をいくつか挙げてみますので、その数値とみなさんの思う強さの感覚が一致するか確かめてみましょう。
ここで、スプラトゥーンを例にするとチーム戦なので少し複雑になってしまうため、ひとまずオセロで考えましょう。

例1. 「勝ち数」で数値化
まず最初は単純に「勝ち数」を強さの数値にしてみましょう。
とあるオセロ教室で5勝したAさんと3勝したBさんがいたとしましょう。
Aさんの強さは5、Bさんの強さは3

数値上では「Aさんの方が強い!」となりますが皆さんの感覚はどうですか?「まあいいんじゃないの?」って思う人もいれば疑問がいっぱい出てくる人もいるかとおもいます。
「誰に勝ったの?」とか「何試合やって何勝したの?」とか・・・

この算出方法は間違ってる!とは言えませんが、おそらくみなさんの思う「強さ」の感覚とはズレているのではないでしょうか?

例2. 「勝率」で数値化
では次に、強さの数値を勝率にしてみましょう。
さらに条件を合わせるためにAさんもBさんもずっとCさんと戦ったとしましょう。AさんはCさんに対して勝率100% でした。一方BさんはCさんに対して勝率90% でした。Aさんの強さは 1、Bさんの強さは0.9

この場合も数値上は「Aさんの方が強い!」となりますが、皆さんの感覚的にはいかがですか?
おそらく先ほどの「勝ち数」と比べると「強さ」の数値として良さそうな気がする人が多いのではないでしょうか?

では、この例、実は「AさんはCさんと3試合やって3勝」「BさんはCさんと20試合やって18勝」だと言われたらどう感じますか?

Aさんの強さは 1 (勝率なので3/3=1.0)
Bさんの強さは0.9(勝率なので18/20=0.9)
この数値は先ほどの例と同じですが、これをみて「Aさんの方が強い!」と感じるでしょうか?

もちろん、この感覚は人それぞれなので「正解」も「不正解」もありません。「3試合しかやってないなら、全勝はたまたまもありえるんじゃない?」って思うかもしれません。
さらにもし、「BさんはCさんに最初11連勝しました」って聞いたらどう思いますか?「11試合目の時点では勝率100%だし、3連勝より強そう」と感じるかもしれませんし、「Aさんがこの後20連勝するかもしれないじゃん!」と言う意見も聞こえてきます。

例題では非常に簡単でわかりやすい数値化をしましたが、強さの数値化についてはもっと複雑にすることもできますし、いろんな方法が考えられます。
この強さの数値化の方法のことをレーティング手法と言い、色々な方法が研究されています。

レーティング手法は実際たくさん考えられていて、勝負の種類やその状況によってみんなが思う「強さ」の感覚にどれくらい合うかが変わってきます。
加えて、人それぞれ強さの感覚も少しずつ違ってくるのでどうやって数値化するかは非常に難しい問題であり、今なお世界中で研究されています。

2. スプラトゥーンのレーティング手法

ここまでレートとレーティング手法が何かということを紹介してきましたが、ここからは実際にスプラで使われているレーティング手法「glicko-2 system」についてお話ししていきます。
冒頭でも書きましたが、この手法はあくまで「ベースとして採用しているであろう」といわれている手法であり、任天堂が公式で発表しているものではありませんのでその点はご注意ください。

2.1 偏差の導入

先ほど、スプラにおけるパワーはレートと呼ばれる「強さを数値化したもの」であると説明しました。
今から説明する手法では、そのレートとは別に「偏差」と呼ばれる信頼度のような値をもっています(正確にはrating deviation(RD)、つまりレート偏差です)。
今からこの「偏差」がどういったものかを説明していきます。

またオセロの例を考えましょう。
先ほどと同様にAさん、Bさん、Cさん、DさんがそれぞれEさんとオセロで対戦し

  • Aさんは10試合やって7勝(勝率70%)

  • Bさんは100試合やって70勝(勝率70%)

  • Cさんは5試合やって4勝(勝率80%)

  • Dさんは100試合やって80勝(勝率80%)

だったとしましょう。

この時、AさんもBさんも勝率70%ですが、ではこの二人の強さは同じと言って良いでしょうか?勝率をレートとすると同じ0.7でよいでしょうか?

CさんもDさんも勝率80%なので「CさんとDさんは同じ強さでAさんとBさんはこの二人よりも弱い」と言っていいでしょうか?

強さの数値であるレートを勝率として、レートが同じなのは一旦OKとしましょう。(glicko-2では厳密にはレートも同じにはなりませんが、ここでは一旦受け入れましょう)

でもBさんとCさんを比べた時本当にBさんの方が弱く、仮に二人が何度か戦ったらCさんが勝ち越すと思いますか?
またBさんとDさんが戦った場合も同じ「レート0.7 vs レート0.8」の戦いですが本当に同じような結果になると思いますか?

感覚的には「BさんとDさんが勝負すればDさんの方が多く勝ちそう」だけれど、「BさんとCさんが勝負してもちょっとどうなるかわからない」という気がしませんか?

ここで、「偏差」の登場です。
偏差は信頼度のようなものと言いましたが、信頼度は値が大きければ信頼できることを表しますが、偏差はその逆で、偏差が大きいと自信がない(信頼しにくい)と考えるものです。

たとえば、Aさんはレート0.7で偏差が0.1としましょう。すると、0.7±0.1がAさんの「真のレート」である可能性が高いみたいな使い方ができます。
Aさんは試合数が少ないので、現状0.7だけれど試合を重ねると0.6になるかもしれないし、0.8になるかもしれないけれど、まあだいたい0.6から0.8のどこかだ!という解釈をします。
試合を重ねるごとに偏差は基本的には小さくなります。
なので、例えばBさんはレートが0.7で偏差が0.01になったりします。(偏差の算出方法は今は説明のため適当です。)
この場合、0.7±0.01がBさんの真のレートである可能性が高いといった形で使うことができます。
これも同様、Bさんの今までの結果から0.69から0.71ぐらいでしょう!と解釈できます。
同様に

  • Cさんはレート0.8、偏差0.2

  • Dさんはレート0.8、偏差0.01

だとすると、Cさんは本当のレートは0.6から1.0のどこかっぽくて、0.6から0.8ぐらいのレートのAさんとはどっちが強いかはまだ予想しづらい、みたいな解釈ができるわけです。
図にするとこんな感じです。

こうやって考えるとみなさんの感覚と少し近くなったのではないでしょうか?
これが偏差を登場させるメリットになります。

2.2 スプラ2でのパワーと偏差

偏差についてなんとなく理解できましたか?これが理解できればあと一息です!

先ほどのオセロの例だとレートを勝率を使って0.7や0.8として話をしていましたが、実際の試合でレートを決めるためには、まず1試合もしていない状態のレートと偏差の値(初期値)を決める必要があります。そしてそれを更新していくことで、真のレートを算出していきます。

これは公表されていない情報なので定かではありませんが、スプラのX帯のパワーの初期値は2000〜2300、偏差が150 だと言われています。

どうやって更新していくかを理解するには、もう一つ変動率(rating volatility) というものを導入して、さらに統計をはじめとした大学の数学の知識が必要となってしまうため、ここでは割愛します(需要があればまた記事にするかもです)。

細かなことはすっとばして簡単に説明すると

  • 自分よりパワーが高い相手(格上)に勝つとパワーの上がり幅が大きく(スプラ的にいうと「パワーがいっぱいもらえる」)、パワーが低い相手(格下)に勝ってもそんなにパワーは上がらない。

  • 偏差の小さい格上に勝つとさらにパワーが上がりやすい。逆に偏差の小さい格下に負けるとパワーが大きく下がる。

  • 自分の偏差が大きい時はパワーがもらいやすい(計測ブーストはこれ)。自分の偏差が小さくなるにつれてパワーの増減が小さくなる。

  • 偏差は基本的には試合を重ねるごとに小さくなる。

他にもこういう状況だとどうなるの?みたいなお話があれば聞いていただければお答えします。

注意として、今説明している glicko-2 は1対1のゲームを想定して作られたものであり、上に書いたパワー更新の特性も1対1でのものになりますが基本的にはチーム戦でも同じような特性になるように作られているはずです。チーム戦における個人レートを具体的にどうするのかについては、いくつか文献は存在しますが、スプラのパワーの計算方法が未公開情報のため、どのように実装されているかは不明です。そのためどのようにチーム専用に改良したかはわかりませんが、基本的な考え方は今紹介したものがベースになっていると思われます。

なのでチーム戦の話で解釈するのであれば、上の説明で「相手→相手チーム」、「自分→自チーム」と読みかえてもらえばおおよその理解としては良いかなと思います。

+++++++++++++++(補足)+++++++++++++++

少しだけ数学的な話をしますので、興味のある人だけ読んでいただければと思います。

glicko-2 system ではプレイヤーのレーティングを正規分布で表現しており、いわゆる平均と標準偏差がレーティングとレーティング偏差にあたるようです。今回はわかりやすく説明するために、±偏差が大体のレーティングみたいな書き方をして、いわゆる1σ(約68%の区間)で話をしました。このような説明をする際は2σ(約95%の区間)で議論をするのが一般的かと思いますが、「なんで2かけるの?」みたいな話を割愛するために1σで話を進めました。次の章のシミュレーションでは2σで可視化しているのでご安心ください。

また glicko-2 system はbaysian 系の手法の先駆けとして提案されたようですが、それから10年以上経っており様々な改良手法が出てきているのも事実のようです。ただし、正規分布を仮定するモデリングについては多くの手法が採用しているため、基本的にはここが変わることはあまり考えにくく、推定手法がより改良されていると思います(調査不足だったらすみません・・・)。
splatoon2 の開発チームがどの手法を採用したのか、また味方と敵のレーティングをどう考慮したのかは不明ではありますが、個人の見解として、モデリングが同じであれば推定した分布の基本的な性質は大きくは変わらない(むしろ仮定に近づく)と考えています。
よって、本記事で解説していることは非公式情報ではありますが、最近のデータサイエンスのトレンドを考えれば、splatoon2におけるレーティングシステムと大きく違うことはないだろうと思います。

++++++++++++++++++++++++++++++++++

3. シミュレーション

最後に紹介したレーティングシステムを使って、パワーをシミュレーションで計算してみました。

3.1 設定

このシミュレーションでは実際に splatoon2 をプレーしてパワーを出したわけではなく、パワーと偏差を割り振ったプレイヤーを400人それっぽく用意して擬似的に対戦させて、勝ち負けを反映させてパワーの変動をみています。
以下条件です。

  • パワーは 2000 、偏差は 150 からスタート

  • 自分の真のパワーは2300想定

  • 1回対戦するごとにパワーを更新


3.2 シミュレーション結果

400人と対戦した時のパワーの推移は以下の図ようになりました。
青い実線がパワーの推移で、薄く塗られている部分が偏差の範囲になります。赤の点線が真のパワー想定の2300のラインを表しています。

今まで説明してきたとおり、偏差の範囲(薄い青色の範囲)というのが「この範囲の中にたぶん真のパワーがあるよー」ってことなのですが、確かに薄い青い範囲の中に赤の点線が入ってるなーって感じがしますよね。
青の実線は上振れたり下ぶれたりしていて、スプラのパワー同様上振れ下振れも存在しますが、偏差の範囲を考えればまあ妥当だよなーって気持ちになってきませんか?

図の左側が見にくいので最初の100試合だけ拡大してプロットしたのが次の図です。

これを見ると最初偏差が150から始まっているので、薄い青の縦の幅がちょっと大きめですが、だんだんとこの幅が小さくなるのがわかりますよね?これが偏差が小さくなる(信頼度が高くなる)のを表しています。
実際パワーも真のパワーに近づいていますね。

偏差の推移を表した図が次の図になります。

今回のシミュレーション設定はsplatoon の実際のガチマッチを完全に再現しているものではありませんので、あくまで参考程度に眺めてください。
これを見ると150からスタートして徐々に下がっていき今回は60近くまで落ちました。実際のゲームではどのくらいの値まで下がるかは(設定とマッチングシステム次第なので)不明ですし、おそらくパワー帯によっても異なりますが、大体 30~60 ぐらいになってるんじゃないかなーと個人的には予想しています。

次にパワーの増減を図にしてみました。スプラでは「パワー〇〇もらった」とか「パワー〇〇引かれた」っていうやつですね。

最初が分かりにくいので拡大したものも先にお見せしておきます。

これを見る計測の10試合とそのあとの10試合ぐらいは確かにパワーの増減が大きいですよね。これは偏差の大きさがパワーの増減にかなり依存するのでこう言った結果になりやすいということです。
おちついてくると多くても±10〜20ぐらいになりましたね。23帯だとまあこんなもんかって感じもするので、割と感覚と近いかもしれません。

4. 最後に

どうでしたか?なんとなくパワーについての理解は深まりましたか?
分かりにくい箇所や疑問点があれば気軽に聞いてください。

最後に〆の代わりに、パワーの性質について追加で書いておきます


4.1  性質1

数学的には偏差を2倍した値を2σと呼ぶのですが、自分の真のパワーは「パワー±2σ」の範囲に約95%の確率で入っていることになります。
例えばパワーが2300で偏差が50の場合、その人の真のパワーは95%の確率で 2200~2400 のどこかにあるという考え方です。(ちなみに1σは約68%です。)逆にいうと、偏差が50ぐらいだとすると、2300の人と2500の人は結構な差があると思っていいです。


4.2  性質2

パワーと偏差がわかれば、実は予想勝率の計算ができます。(計算方法の説明は割愛します)

  • パワー2300・偏差80 vs パワー2400・偏差70

    • 後者の勝率 84.6%

  • パワー2300・偏差100 vs パワー2350・偏差100

    • 後者の勝率 65.5%

  • パワー2500・偏差60 vs パワー2550・偏差50

    • 後者の勝率 76.1%

  • パワー2500・偏差40 vs パワー2550・偏差30

    • 後者の勝率 86%

こうやってみるとパワーが50や100違うと結構違うのが分かりますね。


4.2  性質3

最高パワーと最終パワー、普段戦ってる部屋の平均パワーについて色々と悩んだり考えたりする人も多いと思います。「自分はXP〇〇の実力もない、たまたま運が良かった」や「あの人もっとXP高そうなんだけれどなー、なんでだろう?」という話もききます。
確かに上振れ・下振れは存在します。そして数学的にいうと、最高パワーはあくまでも上振れなのですが、大切なことは基準を合わせることです。
スプラ界隈においてはXPは最高XPを基準にするのが基本になっているので、そこで自分だけ上振れたと思う必要はありません。胸を張って最高値で自分のXPを語っていきましょう!
またおそらくですが、上位勢の方々は偏差が小さいと思われます。なので、特に最高値で語ってもらっても、「上振れ」でもないと個人的見解を残しておきます。

【参考文献】


紹介しきれなかったものもメモとして残しておきます。

この記事が気に入ったらサポートをしてみませんか?