色の名前を使わずに色を指示する:AIへの色の伝え方
遊びをつくる執筆にClaudeを使用しています。

ゲームのタイトル画面の配色をAIに頼む場面を考えてみます。「落ち着いた青で」と書くと、返ってくるコードの青は、思い描いていた青と近いでしょうか。同じ文を何度か送ったとき、毎回同じ青になるでしょうか。 この記事で確かめるのは、色の名前を使わずに、明るさ・鮮やかさ・温かさの三つの軸で色を伝えると、色名で頼むより狙いに近い色が返ってくるかどうかです。結果は書きません。読者が自分で行えるよう、問いの立て方、準備、手順、記録の取り方、結果の読み方を設計書の形で示します。
色名が伝えているものと、伝えていないもの
「青」という一語には、幅広い色が含まれます。深い紺色も、淡い水色も、くすんだ灰青も、日常では青の仲間として扱われます。色名は便利ですが、明るさや鮮やかさの情報を落とした状態で相手に渡されます。
人間同士なら、前後の文脈や好みの共有で補えます。AIに頼む場合は、その補いが毎回同じとは限りません。色名が曖昧さの一因になっているなら、色名を外して別の軸で伝えたときに、ずれや散らばりが小さくなる可能性があります。これがこの実験の仮説です。成り立つかどうかは、記録を取ってから判断します。
三つの軸は、色を数値で扱うHSLという表し方にほぼ対応させられます。
- 明るさ:HSLのL(Lightness)。0に近いほど暗く、100に近いほど白に近づきます。
- 鮮やかさ:HSLのS(Saturation)。0に近いほど灰色に近く、100に近いほど混じり気のない色です。
- 温かさ:色相H(Hue)の位置の大まかな言い換えです。赤・橙・黄の側を「温かい」、青・青緑の側を「冷たい」と呼びます。
注意点が二つあります。HSLのSは、見た目の鮮やかさと完全には一致しません。同じSでも、色相によって鮮やかに見える度合いは変わります。もう一つは、温かさだけでは色相が決まらないことです。「中間」と伝えた場合、緑にも紫にも解釈できます。この限界も実験の観察対象に含めます。
実験の設計:三つの伝え方を比べる
問いは「同じ目標色を、伝え方を変えて頼むと、生成された色と目標のずれ、および生成ごとの散らばりはどう変わるか」です。比べる条件は三つです。
- 条件A(色名):色名で頼みます。例:「背景は落ち着いた青にしてください」。
- 条件B(三軸の言葉):色名を使わず、三軸の段階で頼みます。例:「背景は、明るさは中より少し暗め、鮮やかさは控えめ、温かさはやや冷たい側にしてください」。
- 条件C(三軸の言葉+相対修正):条件Bの出力を見たうえで、「明るさをもう一段階だけ上げてください」のように、軸と方向だけで直します。
条件Cを入れる理由は、色の伝え方には最初の一回だけでなく、直し方も含まれるからです。「もう少し明るく」のような相対的な指示が、実際に目標へ近づく方向に働くかを見ます。
禁止語のルールも決めます。条件Bと条件Cでは、色名(赤、青、水色など)に加えて、色を連想させるものの名前(空、海、夕焼け、血、若葉など)も使いません。連想語は色名の代わりになってしまい、軸だけの伝達を測れなくなるためです。指示文を書いたら、禁止語が混ざっていないか読み直してください。
準備と手順
準備するものは、次のとおりです。
- 使うAIを一つ決めます。モデルと設定は、実験の間は変えません。
- 色を確認するブラウザを一つ決めます。表示のずれを減らすためです。
- カラーピッカー(OSやブラウザの開発者ツールにあるもの)と、下に示す測定用の小さなHTMLを用意します。
- 記録用の表を用意します。表計算ソフトでも紙でもかまいません。
1. 目標色を決める
ゲームの画面を一枚想定し、背景・ボタン・文字の三色について、カラーピッカーで目標色を選びます。先に決めて記録し、以後は変更しません。結果を見てから目標を動かすと、比較が成り立たなくなります。
2. 目標色を三軸の言葉に翻訳する
目標色をHSLの数値にし、三軸の段階に直します。段階の境目は、この実験のために均等に切った目安であり、公的な基準ではありません。
- 1、明るさ(L):0〜20、鮮やかさ(S):0〜20
- 2、明るさ(L):20〜40、鮮やかさ(S):20〜40
- 3、明るさ(L):40〜60、鮮やかさ(S):40〜60
- 4、明るさ(L):60〜80、鮮やかさ(S):60〜80
- 5、明るさ(L):80〜100、鮮やかさ(S):80〜100
温かさは、色相Hを見て「冷たい/やや冷たい/中間/やや温かい/温かい」から選びます。境目は自分で決め、記録に残してください。紫や緑のように位置が曖昧な色は「中間」にしやすいので、その色を選んだ場合は後の読み方で特に注意します。
3. 生成と回数
各条件で同じ頼み方を5回ずつ、毎回新しい会話で行います。会話を引き継ぐと、前の出力に引きずられるためです。依頼の骨格は固定します。たとえば「ゲームのタイトル画面を、一枚のHTMLで作ってください。背景、ボタン、文字の色は次の指示に従ってください」とし、色の指示部分だけを条件ごとに差し替えます。条件Cだけは、条件Bの各回の出力に続けて、相対修正を一回だけ送ります。
記録の取り方:生成コードの色を数値にする
記録の単位は「条件 × 回 × 要素(背景・ボタン・文字)」です。つまり1条件につき5回×3要素で15件、三条件で45件になります。生成されたコードから色コードを抜き出し、次の小さなHTMLで目標との差を出します。HTMLファイルとして保存し、ブラウザで開くだけで動きます。
<!doctype html>
<meta charset="utf-8">
<title>色の差を測る</title>
<p>目標 <input id="a" value="#3a7ca5"> 生成 <input id="b" value="#4f8fb8"> <button id="go">測る</button></p>
<pre id="out"></pre>
<script>
function hsl(hex){
const n=parseInt(hex.replace('#',''),16);
const r=(n>>16&255)/255,g=(n>>8&255)/255,b=(n&255)/255;
const mx=Math.max(r,g,b),mn=Math.min(r,g,b),d=mx-mn;
const l=(mx+mn)/2;
let h=0,s=0;
if(d){
s=d/(1-Math.abs(2*l-1));
if(mx===r)h=((g-b)/d+6)%6;
else if(mx===g)h=(b-r)/d+2;
else h=(r-g)/d+4;
h*=60;
}
return {h,s:s*100,l:l*100};
}
document.getElementById('go').onclick=()=>{
const t=hsl(a.value),c=hsl(b.value);
let dh=Math.abs(t.h-c.h); if(dh>180)dh=360-dh;
out.textContent=
'目標 H'+t.h.toFixed(0)+' S'+t.s.toFixed(0)+' L'+t.l.toFixed(0)+'\n'+
'生成 H'+c.h.toFixed(0)+' S'+c.s.toFixed(0)+' L'+c.l.toFixed(0)+'\n'+
'色相差 '+dh.toFixed(0)+'度 / 彩度差 '+(c.s-t.s).toFixed(0)+' / 明度差 '+(c.l-t.l).toFixed(0);
};
</script>入力できるのは「#」付き6桁の16進数です。生成コードが「#abc」のような3桁や、rgb()、hsl()で書かれていた場合は、あらかじめ6桁の16進数に直してから入力してください。
表には、1件ごとに次の項目を残します。
- 条件、回、要素
- 生成された色コード
- 色相差(度)、彩度差、明度差
- 指示文の全文(後で禁止語の混入を確認するため)
結果の読み方と起こりやすい誤り
数値がそろったら、条件ごと・要素ごとに二つの観点で見ます。
- ずれ:色相差の平均、彩度差と明度差の平均(符号つき)。符号を残すと、「毎回暗すぎる」のような偏りが見えます。
- 散らばり:5回の間で、色相・彩度・明度がどれだけ揺れたか。最大と最小の幅で十分です。
判断の例を挙げます。条件Bのずれが条件Aより小さく、散らばりも小さければ、三軸の言葉は色名より安定して伝わったと読めます。ずれは小さいのに散らばりが大きければ、平均では近くても毎回の当たり外れが大きい伝え方です。散らばりは小さいのにずれが大きい場合は、AIが一貫して別の解釈をしている可能性があり、段階の言葉の選び方を見直す手がかりになります。
条件Cでは、修正前後の差が目標に近づいたかを軸ごとに確かめます。明度は近づいたが色相はずれたなど、軸ごとに結果が分かれることもあります。
5回という回数は少なめです。差が小さいときは、結論を急がず回数を増やしてください。
起こりやすい誤りを挙げます。
- 連想語の混入:「静かな夜のような」と書くと、色名を使わなくても色を指示してしまいます。
- 会話の持ち越し:新しい会話で行わないと、前の出力が影響します。
- 目標の後出し変更:結果を見てから目標を直すと、比較が無意味になります。
- 表示環境の違い:モニタの設定やダークモードの切り替えで見た目は変わりますが、色コードの数値は変わりません。数値で比べる限り影響は小さいものの、見た目の印象を記録するときは環境を固定してください。
- HSLの限界:低い鮮やかさの色は色相が不安定で、わずかな差で色相が大きく動きます。灰色に近い目標を選ぶと、色相差が大きく出やすい点に注意してください。
- 要素の混同:背景・ボタン・文字は役割が違い、AIがコントラスト確保のために明るさを調整することもあります。要素ごとに分けて読みます。
次の行動
まず、目標色を一つだけ、背景の一色に絞って、条件AとBを3回ずつ試してみてください。記録表と上のHTMLがあれば、一時間もかからずに最初の数値がそろいます。そこで差が見えたら、ボタンと文字、条件C、回数の追加へと広げていきます。