採点の仕組み
Color Hunch のすべての推測は、あなたの色が本当の色からどれだけ離れているかで採点されます。動かしたスライダーの量ではなく、人間の目に二つがどれだけ違って見えるかです。尺度は CIEDE2000 で、このページはそれが何を意味し、なぜその区別が重要なのかを説明します。
重要なのは、いちばん思いつきやすい代替案が、プレイヤーに伝わる形で間違っているからです。
なぜスライダーの移動量では測れないのか
色の推測を採点する簡単な方法は、スライダーの位置を比べることです。あなたの色相が目標からどれだけ離れているか、彩度がどれだけ違うか。コードは一行で済み、そして人が静かに信用しなくなるゲームができあがります。
理由は、スライダーの同じ移動量が目にとって同じ変化ではないからです。色相の十度のずれは緑では目立ち、深い青ではほとんど見えません。明るい色で明度を少し動かせば誰でも気づき、暗い色で同じだけ動かしてもほとんど誰も気づきません。移動量で採点すると、色相の反対側から近づいただけで減点され、見た目には外れている幸運な一致が報われてしまいます。
色差とは実際に何なのか
色差は、空間内の距離が目に見える違いと対応するように作られた空間に両方の色を置き、その二点間の距離を測ることで求めます。この数値を ΔE と呼びます。デルタ E の E は、ドイツ語で感覚を意味する Empfindung に由来します。
最初の式である CIE76 は、Lab 空間の二点を結ぶ直線でした。実際の前進であり、既知の弱点もありました。彩度の高い色では違いを過大に、青では過小に評価したのです。CIEDE2000 はその修正で、明度・彩度・色相に重み項を加え、さらに旧式が最も苦手だった青の領域に相互作用項を加えています。
Color Hunch はそれをどう使っているか
推測を送信すると、あなたが合わせた色とそこに本来ある色の両方が sRGB から Lab に変換され、CIEDE2000 がその距離を返します。その距離がラウンドの得点になり、ステージの星はラウンドの得点から決まります。
画面に出る数値は近さのパーセントであって、ΔE そのものではありません。これは意図的です。ΔE 4.2 と言われても行動に移せませんが、「近さ 87」なら前回の自分と比べられます。ΔE はあるべき場所、つまり採点の内側に留まります。
なぜどこでも同じ式が動くのか
アプリ、ゲームサーバー、そしてこのサイトは同じ実装で採点し、同じ参照値と照合されています。ブラウザで 87 になる推測は、アプリでも 87 です。
当たり前に聞こえて、簡単に崩れます。三つの言語の三つのコードベースは、つなぎ止めるものがなければ離れていきます。ここでそれを担うのは、固定の入力ペアと期待される出力を持つテストです。移植が参照からずれれば、リーダーボードが静かに無意味になる代わりに、ビルドが落ちます。
ΔE の値が意味するもの
おおよその目安として、正常な色覚の人がまともな照明の下で見た場合、その色差はこう見えます。
| ΔE | 何に気づくか |
|---|---|
| 1 未満 | 肉眼では区別できません。二つは同じ色として読まれます。 |
| 1〜2 | 訓練された目が近くで、たいていは並べて見れば分かります。 |
| 2〜10 | 一目で気づきます。多くの人は同じ色の二つの色合いと言うでしょう。 |
| 11〜49 | 明らかに違うが近縁の色。赤と、少しオレンジ寄りの赤のような関係です。 |
| 50 以上 | まったく別の色。誰も取り違えません。 |
この区分は仕様ではなく慣例です。分野内でこう語られているというだけで、出典によって境界は少しずつ違います。点数を読むための目安として使ってください。
CIEDE2000 は CIE(国際照明委員会)が CIE 142-2001 で定義した式です。ここでの実装は Sharma, Wu, Dalal (2005)「The CIEDE2000 Color-Difference Formula」に従っています。多くの実装がこの論文と照合されており、照合に使うテストデータもそこに記載されています。