2008年11月26日水曜日

スクリプトの話〜番外編・色の名前

ここ2回ほど、色を指定する話題を出しましたので
それに関連して色の話を。。。

僕は会社に勤めながら
一方ではWEBの制作なんかもしてるわけなんですが、
そうするとどうしても色を扱うことになるんですね。
で、例えば「白」を表現するのに、WEBであれば
「#FFFFFF」というコードを使いますし、
会社でエクセルのマクロを組む時なんか
(「あ〜、ヒロシ君、この管理表ね、
終わった課題の行はグレーにして
重要度が「高」のものはピンクになるようにしといてねー。」)
RGBで「255, 255, 255」と表現したりします。
これだけでも一杯一杯なのに、
リンデンスクリプトでは <1.0, 1.0, 1.0> というのを
覚えなきゃならなくなりました。
うわー、大変!
どれか一つに統一してくれ〜!

ところが、実はこの3つ、同じものだったのですね。
RGBというくらいで、光の3原色、
赤と緑と青をどのくらい混ぜるか、というのを表しています。
ご存知のように、赤と緑と青、全部を全て100%ずつ混ぜると
白になります。
そして、この3つ全てが全くない状態、
それが暗闇の黒、というわけですね。
と、すると、リンデンの <1.0, 1.0, 1.0> というのはわかりやすい。
最初、色はベクトル型、と聞いて、
数学の時間を思い出し、妙な矢印を思い出していた僕ですが、
何のことはない、この3つの数字は、赤、緑、青を
どのくらい混ぜるかを示しているだけですね。
<1.0, 1.0, 1.0> は全てが100%ということですから白、
そして、<0.0, 0.0, 0.0> は黒、というわけです。

となると、いわゆるRGBは?
WEBカラーのしくみは?

そう。まず、RGBの方は名前から言っても
リンデンと同じなのでしょう。
(255, 255, 255) は赤と緑と青のレベルだ。
でも何故255なのか?
これが0スタートということを考えると、
つまりは256の段階があることになり、、、
うーん、256とはいかにもコンピュータらしい数字だ。
そもそもこの数字は何なのか。。。

実はこの10進法の255を16進法で表すと「FF」なのです!
16進法で最大の数である「F」が2つつながった形、
つまりは16×16を表現しているわけですね。
ということは!
そう。
無意味に思えたWEBカラーの「#FFFFFF」も
何のことはない、「FF, FF, FF」だったのであり、
つまりは「255, 255, 255」であったわけなのです。
で、255では扱いにくいので、これを1.0に置き換えたのが
リンデンのスクリプトというわけです。
みんな同じ数字だったのだ!^^

と考えると、つまりこれらは全て、
赤と緑と青の組み合わせを示しているわけですから、
一々覚えたり、チャートを見たりしなくても
感覚的に、簡単に表記できるようになりますね。

つまり、「赤」は赤100%なので    <1.0, 0.0, 0.0>
「青」は青100%なので、      <0.0, 0.0, 1.0>
「緑」は緑100%なので、      <0.0, 1.0, 0.0>
「黄色」は赤と緑の組み合わせなので、<1.0, 1.0, 0.0>
「空色(アクア)」は緑と青で、   <0.0, 1.0, 1.0>
「赤紫」は赤と青で、        <1.0, 0.0, 1.0>
そして3色全開の白が         <1.0, 1.0, 1.0>
暗闇の黒は              <0.0, 0.0, 0.0>
というわけですね。

気づけば何てことないですし、
気づいている人には何を今更、という話でしょうが、
僕自身、これらの色を覚えられずに手こずりましたので、
敢えてここにメモとして残しておくことにします。
ご参考まで。w

4 Responses to “スクリプトの話〜番外編・色の名前”

さかぷん さんのコメント...

こんにちは^^
色をスクリプトで扱う時にはarzさんのページにあるWebカラーをLSLベクトルに変換する関数を仕様するとめっちゃ便利ですよー
16進数を2進数に基数変換してくれるという関数。
関数なので使いどころは自分次第ですがカラーチェンジャーとかに使わせてもらってます
http://arznitely.com/?p=32

Hiroshi さんのコメント...

さかぶんさん、お久しぶりです。
コメントありがとうございます。
そうですか、やっぱりそういう関数を用意して下さる方が
いらっしゃるのですね。
僕はいつもRGBを255で割って出してました。w

noa さんのコメント...

前に作ってた時差の時計も色が変えれるようにしてもらってて
あれ、本当に役立っていますw
ひろしさんって勉強家だねぇ^^;;
感心します。

Hiroshi さんのコメント...

のあさん、コメントありがとうございます。
あの世界時計のHUDは、作った僕自身
便利だなぁって思ってます。w
邪アニならないように作ったので、
ごく自然に画面に表示されているので、
HUDを装着してるんだ、ってこと
忘れるくらいです。w
これからもどうぞよろしくお願いします。

Leave a Reply