概説
Performance point(pp)とは、プレイヤーがRanked, Approvedの各譜面をクリアした際に自動的に計算される値。
それぞれの譜面で得たppから各プレイヤーの合計ppが計算され、それに基づいて世界ランクが決定される。
歴史
公式wikiリンク:ppv1 / Performance points
元々osu!におけるランキングは合計スコアにより決定されていました。
2012年7月に最初のpp制度であるppv1が導入されましたが、これは以下のような問題を抱えていました。
- ppの計算式が不明(現在まで公開されていません)
- HardにModをつけると過剰に評価され、逆にInsaneは過小評価される
それらの修正版として、2014年1月にTom94のランクシステムを応用したppv2が導入されました。
peppyはppシステムに直接関与しなくなり、他の管理メンバーがppシステムを運用しています。
ppv2は導入直後は細かな修正が何回か行われましたが、その後は1~数年ごとに見直し(rework(rebalance))が行われ、変更がある際には公式ニュースで事前に通知されます。
ppの計算方法
以下の記載は2021/12 時点のものです。rebalanceが入ると計算方法が変わることがあります。
基本的には 高SD(Stars) の譜面を 高精度 で FC すると高ポイントがもらえます。
ただし、譜面の内容に応じて、同じSDの譜面であっても全然違うppになることがあります。これは下記の理由のためです。
ppシステムではstdではAim, Speed, Accuracy3つの要素からプレイが評価され、最終的なppが計算されます。
- ゲーム内ではこの個別の要素がどれだけppに寄与しているかを確認する手段はありません。
外部ツールでは計算できるようです(最新のppシステムに対応していないツールが多いです。詳細は調べてみてください)
Aim
短い時間のうちに遠く・小さい的を当てることが評価されます。
長い譜面であったり、高精度(98+?)だとより良いようです。
いわゆるジャンプ譜面をプレイすると、この評価が高くなります。
Speed
短い時間のうちに多くのノーツを叩けることが評価されます。
長い譜面であったり、高精度(95+?)だとより良いようです。
高BPMのストリーム譜面をプレイするとこの評価が高くなります。
Accuracy
ODが高い譜面において、高い精度(Accuracy)でクリアすることが評価されます。
ヒットオブジェクト数が多いと評価が高くなります。
Strain
stdではstrainはSRの計算にのみ用いられていて、譜面に難所がいくつあるかが考慮されます。
難所が多いほどSRが高くなる(=ppも高くなる)ようです。
また、strainはtaikoとmaniaでのみpp計算においても別枠で評価されます。
高BPMでのリズムの複雑さが考慮されるようです。
Modについて
各Modをつけるとppが補正されます。
以下が各Modにおける詳細です。
HD
ARに応じてppがBuffされます。低ARであればより高ppになります。
AR11ではHDをつけてもppはほぼ変わりません。
HR
HRをつけた状態の譜面として評価されます。
特にCSが小さくなる事によるAim評価とOD10で高精度を取った際のAccuracy評価が大きいです。
DT(NC)
1.5倍した状態の譜面として評価されます。
DTをつけると等速の譜面とは様相が全く異なるのでppは跳ね上がります。
AR10.3(AR9DT)以上では高ARによるppボーナスも貰えますが、2021/1のrebalanceでややナーフされました。
ODもDTをつけると高くなるため、高精度による評価も大きいです。
FL
曲の長さに応じて強烈なpp Buffがかかります。
TV sizeの譜面ではそこまでppは増えません。
marathon(>5分)の譜面でFLをつけると評価が高いです。
EZ
EZをつけた状態の譜面として評価されます。
CSが大きくなることによるSD低下とOD半減による精度ボーナス減少が厳しく、ppとして貰える量はかなり目減りします。
低ARになるため、HDをつけると一応ppは増えますがただでさえ難しいReadingが非常に厳しくなります。
NF
Missを出さなければNFをつけてもつけなくてもppは変わりません。
倍率は x(1 - miss の数 x 0.02), 最小 x0.9 の計算式が適用されます。
5個Missを出すと x0.9 になります。
HT
HTをつけた状態の譜面として評価されます。
SDが大きく低下し、またODの低下による精度ボーナス減少の影響がやや大きいです。
SO
譜面の中でスピンが占める割合に応じて倍率に補正がかかります。
譜面にスピンが1個もなければ影響ありません。
譜面が全てスピンだった場合ppは0になります。
SD・PF
pp計算に変更はありません。
RX・AP・AT・CN・v2
そもそもスコアの送信がされないため、ppの計算はされません。
記録の上書きについて
BPには同じ譜面でppは一つしか表示されません。(同じマップセットでも違う譜面であれば大丈夫)
低いppで更新してしまう場合があり、どういった状況で起こるのかを説明します。
osu!サーバーは各譜面において、それぞれのプレイヤーのそれぞれのModでの一番いいスコアを記録します。
例えば NM、HD、HDSD、HDDT、HDHRDT、DT、HDNC、NC、NCSO、NCSONF これらは全て違う記録としてサーバーに保存されます。
BPにはサーバーに保存された記録の中で、一番高いppの記録が表示されます。
例1
- ①HD で200pp、600万点
- ②HD で170pp、700万点
- ③NM で150pp、800万点
この時、サーバーに保存されるのは②と③の記録です。①は破棄されます。
②と③を比較したときに、ppが高いのは②です。BPには②の170ppが記録されます。
例2
- ①HDDT で500pp、800万点
- ②HDNC で520pp、1000万点
- ③NC で550pp、800万点
- ④NCSD で530pp、900万点
この時、サーバーには全ての記録が保存されます。
この中で一番ppが高いのは③なので、BPには③の550ppが記録されます。
合計ppの計算方法
各プレイヤーのユーザーページにはBest Performance(BP)欄があり、そこに過去自分が取ったppベスト100の譜面が表示されています。
合計ppはこの100個 + ボーナスpp(後述) から計算されます。(それより下も計算されるという情報もありますが、どちらでも結果はほぼ変わりません)
重み付けpp
それぞれのppは事前に重み付けがされます。
一番トップのppは1倍、二番目は0.95倍、三番目は0.95^2倍、…百番目は0.95^100(≒0.01)倍されます。(^は累乗を示す)
例えば上から110pp、100pp、100pp、90pp、80ppという5つのみのBPを持っている人(実際にはそんな人は居ませんが)について考えてみます。
BP欄の順番 | 元のpp | 倍率 | 重み付けpp |
1番目 | 110pp | x1 | 110pp |
2番目 | 100pp | x0.95 | 95pp |
3番目 | 100pp | x0.95^2 | 90pp |
4番目 | 90pp | x0.95^3 | 77pp |
5番目 | 80pp | x0.95^4 | 65pp |
BP欄からのpp | 437pp |
となり、この人のBP欄からのppはおおよそ437ppとなります。(内部的にはそれぞれの小数点以下の値も計算されています)
当然ながら、この重み付けによるシステムは一番上は1倍である一方、百番目は0.01倍されてしまうため、合計ppを効率的に上げるにはトップのppをどんどん塗り替えていく必要があります。
ボーナスpp
ボーナスppはクリアしたRanked, Approved譜面の数に応じて与えられます。
上限は416.6667ppで、次の計算式が適用されます。
ボーナスpp = 416.6667 * (1 - 0.9994 ^ N) (N:クリアしたRanked or Approved譜面の数)
おおよそ1000譜面クリアすると200pp貰える計算になります。上限に近づくほど、1譜面あたりの貰えるボーナスppは少なくなります。
上の例であれば5譜面しかクリアしてないので、計算するとボーナスpp = 1.25pp になります。
以上より、合計pp = BP欄からのpp + ボーナスpp であるので、例とした人の合計pp は 437pp + 1.25pp ≒ 438ppとなります。
世界ランクの決定方法
世界ランクは純粋に合計ppの高い順に決定されます。サイトでは表示されていませんが小数点以下のppも内部では保持されています。
一定期間以上プレイせず(ランキングでの名前欄が灰色の状態)にreworkを迎えると、そのプレイヤーは世界ランクから一時的に削除されます。
一回でも記録を残せば再計算されランキングに復帰します。
osu!のプレイ人口は増加傾向にあり、昔からのプレイヤーでも月に数回はプレイしている人も多く、年月が経つごとに世界ランクを上げるのは難しくなっています。
2020年では、ppを稼がずに一年放置するとどのランク帯でも約1.7倍(#10,000であれば一年後#17,000)になっていたようです。
この放置しているとランクが落ちる現象のことは (rank) decayと呼ばれます。
2018年8月時点のものですが世界ランクとppをグラフ化したものがあったため貼っておきます。
これを見ると順位を対数でとってグラフを作成した際におおよそ直線のグラフが描かれていることがわかります。
例えば、#120000→#24000 と #8000→#1600(どちらも1/5倍) ではおおよそ同じ量のppが必要、ということになります。
rework(変更)履歴
2021/11 rebalance
https://osu.ppy.sh/home/news/2021-11-09-performance-points-star-rating-updates
- aimの難易度算出法変更
- awkward jump(ジャンプ角度の極端な差、ジャンプの遠さの極端な差)がバフ
- >300BPMの鋭角ジャンプがバフ
- 高速スライダーのバフ
- 複雑なリズムの Buff
- 偶奇が混ざったり、途中でBPMが変わるようなストリーム配置がバフ
- SD値の変更
- 単純なジャンプ譜面、高難易度の単純なストリーム譜面がナーフ
- 総合的な実力が要求される譜面がバフ
- FL change
- FLがSDを変化させるように
- speed capの取り外し
- 超高BPMストリームを高精度で叩ける人が増えたため
- 一定条件下でslider breakをミス扱いに
- コンボ数とミス数からSBの数を推測してミスとして加算する
2021/7 rebalance
https://osu.ppy.sh/home/news/2021-07-27-performance-points-star-rating-updates
- Diff spike Nerf
- SR値が変更
- 特にpp譜面において特徴的なDiff spikeを持つ譜面が主な対象
- 譜面の中で一箇所のみ難しい譜面はナーフ、多くの難所を持つ譜面はバフ
- strain fix
- DTやHTをつけた際のstrain値の誤りを修正
- 高ARボーナス Buff
- オブジェクト数400~800の譜面のDTがバフ
- FL fix
- ARボーナスとFLボーナスの大きい値のみを参照するように
- wide-angle Jump Nerf
- 鈍角ジャンブのボーナス値が少し減少
2021/1 rebalance
https://osu.ppy.sh/home/news/2021-01-14-performance-points-updates
- AR11 Nerf
- やっていることがFLに近いという指摘から
- トップ層におけるAR11 meta への対策として
- 短いTV sizeはNerf、Long譜面はBuff
- Double tap Nerf
- 特にひだまりの詩DT対策として
- 50の数に応じてppが大きく減少
- Low Accuracy Nerf
- 低精度でのプレイは Nerf
- Nofail と Spinout の Buff
- Deranker対策として
- NFは x(1 - miss の数 x 0.02), 最小 x0.9
- SOは譜面全体に占めるSpinの数に応じて倍率補正
- Miss ペナルティ Change
- Long譜面のChokeは Buff
- TV sizeでMissの数が多いプレイは Nerf
2019/2 rebalance
https://osu.ppy.sh/home/news/2019-02-05-new-changes-to-star-rating-performance-points
- 鈍角ジャンプ Buff
- 同じ間隔のジャンプでも角度を考慮するように
- 150°で最大 Buff
- 高BPM stream Buff
- 叩ける人が少なく難しいという一般的認識から
- Spaced stream Nerf
- 当時1位を独走していたidke対策として
- 特に大きく間隔の空いたstreamを Nerf
- Long slider Buff
- Low accuracy Nerf
- 高BPMにおける低Accを Nerf
- FL Buff
- ヒットオブジェクト数に応じて Buff
- HD Change
- 特にARと大きく関連するように
2018/5 rebalance
https://osu.ppy.sh/home/news/2018-05-16-performance-updates
- HD 倍率 change
- ARに応じて倍率が変化、高ARでは倍率減少
- aimマップでは Nerf
- spaced stream は Buff