水中カラーシミュレーター
水を通ったあと、ルアーの色がどれだけ残るかを計算します。実測された海水の吸収・散乱係数を使い、水深と距離と水の濁りを変えて確かめられます。魚にどう見えるかを再現するものではありません。
レッドヘッドの赤は、水の中でも赤いのでしょうか。答えは、たいてい赤くありません。
水深と、ルアーまでの距離と、水の濁り方を決めてください。その条件で光がどれだけ残るかを計算します。
これは「魚にどう見えるか」ではありません。 目に届く光がどう変わるかを計算しているだけです。理由は下記に書きました。計算の中身は水中で色が消える仕組みで解説しています。
色の名前は水の外の側にだけ出しています。水中側では背景を水の色に置き換えているためです。
水面からルアーへ届き、そこから目に戻るまでの合計です。
水深と距離を足した値になります。
外すと、実際に届く光の量そのままで暗くなります。色の変化だけを見たいときは入れてください。
ルアーが回って反射面が光る動きです。下記のとおり、光る色は塗装の色ではありません。
使えるのは PNG / JPEG / WebP / GIF です。iPhoneのHEICは開けないことがあるので、その場合はJPEGに変換してください。横幅が560pxを超える画像は縮小して読み込みます。
写真ではルアーと背景を区別できないため、背景も物体として扱います(見本では背景を水の色に置き換えています)。おすすめは、無地の中間の灰色を背景にした写真です。理由は下記に書きました。
選んだ写真は、あなたのブラウザの中だけで処理されます。サーバーへの送信も保存もしません。
波長ごとに、どれだけ残るか
| 色 | 減衰係数 c(λ) (1/m) | 経路を通ったあとに残る割合 |
|---|
ルアーと背景の見分けやすさ
| ルアーの色 | 明るさ(背景の水を100とした値) | 背景と比べて | コントラスト | 見え方 |
|---|
コントラストは、背景に対して明るさがどれだけ違うかの割合です。式は |ルアーの明るさ − 背景の明るさ| ÷ 背景の明るさ。背景で割っているので、全体が暗い場面と明るい場面を同じ物差しで比べられます。0.00なら背景と同じ明るさで輪郭が消え、1.00なら背景との差が背景そのものと同じ大きさです。明るいか暗いかは問いません。ルアーごとに1色だけを使っていて、背中と腹の塗り分けは計算に入れていません。数値が小さいほど背景に紛れます。背景は、上で選んだ見る向きに応じて計算した水の明るさです。「見え方」の欄は、コントラストが0.05未満を「ほぼ見えない」、0.15未満を「見つけにくい」として区切ったものです。この境目に根拠はありません。目安として置いた値です。フラッシングを入れているときは、光っていない瞬間の値です。
何を計算しているか
吸収と散乱を足した減衰係数を、経路の長さにあてはめています。 光が水の中を進むと、進んだ距離に応じて指数関数的に減っていきます。これをBeer-Lambert則といいます。
経路は2つに分かれます。水面からルアーまでと、ルアーから見る人の目までです。この2つを足した長さが、光が水を通る合計の距離になります。だから水深が浅くても、遠くのルアーを見れば同じだけ色は落ちます。
もう一つ、水そのものが光って見える効果も入れています。散乱された光が横から目に入ってくるぶんで、遠くのものが白っぽく霞んでいく原因です。
より詳しい説明は水中で色が消える仕組みに書きました。
光源を選べます
常夜灯の下では、色の見え方が変わります。 水の性質は同じでも、そもそも当たっている光に含まれていない波長は、返しようがないからです。
用意したのは5つです。CIEが定めている標準光源のスペクトルを使っています。
| 選択肢 | 何に相当するか | CIEの記号 |
|---|---|---|
| 昼光 | 太陽光。基準にしています | D65 |
| ナトリウム灯 | オレンジ色の常夜灯 | HP1 |
| ナトリウム灯 演色改善型 | 白っぽいナトリウム灯 | HP2 |
| LED 電球色 | 2733K | LED-B1 |
| LED 昼白色 | 4103K | LED-B3 |
昼光以外を選ぶと、6色が互いにどれだけ違って見えるかを、同じ条件の昼光を100とした数字で出します。
沿岸の1m先で計算すると、ナトリウム灯で61、演色改善型とLED電球色で78、LED昼白色で105でした。ナトリウム灯の下では、色の違いが4割ほど失われます。
水銀灯は入れていません。 CIEの標準光源に含まれていないためです。水俣条約で製造と輸出入が禁止され、置き換えが進んでいるので、現行の常夜灯としては優先度が低いと判断しました。
画面で表せない色が出ることがあります。 ナトリウム灯のように狭い波長に偏った光では、計算結果が画面の色の範囲から外れます。そのぶんは彩度を落として範囲に収めています。実物はもう少し鮮やかな色のはずです。
見る向きで背景が変わります
ルアーが背景から浮くかどうかは、背後に何があるかで決まります。魚がどの向きから見るかで、背景はまったく違うものになります。
| 見る向き | 背景になるもの | 明るさ |
|---|---|---|
| 見上げる | その水深に届いている光 | いちばん明るい |
| 横から見る | 水そのもの。無限に続く水からの散乱光 | 中間 |
| 見下ろす | 光を返すものがない深み | いちばん暗い |
この3つは、新しい仮定なしで計算できます。 すでに使っている吸収係数と散乱係数から出ます。
結果が分かりやすいのは見上げる向きです。背景が最も明るいので、どのカラーも背景より暗くなります。影絵です。 沿岸の1m先で計算すると、パールホワイトでもコントラストは0.08しかありません。見上げられている状況では、色を選んでも差が出にくいということになります。
逆に見下ろす向きでは、背景が暗いので明るい色ほど目立ちます。同じ条件で、パールが0.88、チャートが0.69。ブラックだけが0.01で、ほとんど背景に溶けます。
ただし、これは背景の明るさだけの話です。 実際にどの向きから見られているかは、水深とルアーの層と魚の位置で変わります。そこは私には決められません。
写真を使うときの背景
写真を読み込むと、背景も物体として扱われます。 どこがルアーでどこが背景かを判定できないためです。見本の画像では背景を水の色に置き換えていますが、写真ではそれができません。
そのうえで、おすすめは無地の中間の灰色です。 画面のsRGB値で128前後、つまりカメラのグレーカードと同じ明るさです。
理由は3つあります。
白は上限に張り付きます。 明るい背景は計算のあと画面の表示できる範囲を超えやすく、色の変化が読み取れなくなります。
黒は何も返しません。 暗い背景は水の色がほとんど乗らないので、変化が見えません。
灰色は波長を選びません。 どの波長も同じ割合で返すので、背景の色の変化が、そのまま水の色そのものになります。 水がどう色を付けているかを読むのに、いちばん向いています。
ルアーの写り方そのものは、背景に左右されません。 計算は画素ごとに独立しているので、背景を変えてもルアーの色は変わりません。背景の選び方は、読み取りやすさの問題です。
フラッシングについて
フラッシングを入れると、反射面が周期的に光ります。 0.62秒で1回転する想定です。
ここで一つ、計算していて気づいたことがあります。光る部分の色は、塗装の色ではありません。
理由は反射のしかたの違いです。塗装の色は、白い光が当たって特定の波長だけ吸収され、残りが返ってくることで見えます。一方、金属面やホログラムの反射は、届いた光をほぼそのまま返します。 波長を選びません。
つまりフラッシングの色は、そこまで届いた光の色そのものになります。濁った水では緑しか残っていないので、銀色のルアーが光っても、緑に光ります。 水の種類を切り替えて、光る瞬間の色を見比べてみてください。
何を足して描いているか
光る瞬間に足しているのは、反射率1の白い面を置いたときの明るさです。
塗装の色を通さないので、波長を選びません。実際、鏡面反射として足している量は「白い面の明るさ − 水そのものの明るさ」とぴったり一致します。つまり「白を足している」のと同じ計算です。
だから光る瞬間は、必ず明るくなる方向に動きます。 背景が暗い状況では目立ち、背景が明るい状況では背景に近づきます。
この足し込みは、ルアーの領域だけに適用しています。 見本の画像ではルアーの位置が分かっているためです。写真を読み込んだ場合は判定できないので、画面全体に適用します。
画面上の明るさはそろえています。 本来の明るさのまま描くと、澄んだ水では全部の成分が画面の上限を超えて真っ白に飛び、色が見えなくなります。そこで、どの条件でも色が分かる範囲に収めました。
本来の明るさの差は、上の欄に数字で出しています。 同じ水深・距離の澄んだ外洋を100としたときの値です。濁るほど小さくなります。
そのうえで、明るさの倍率そのものには根拠がありません。 実際のルアーの反射面が拡散反射の何倍で光るのかを測った資料を、私は見つけられませんでした。色と、条件による明るさの比のほうを見てください。
光る場所も限定的です。 見本の画像ではルアーの領域が分かっているのでそこだけを光らせますが、写真を読み込んだ場合は、どこが反射面かを判定できないので画面全体を光らせます。写真で試すときは、そこを差し引いて見てください。
係数について
水の種類は、Jerlov分類という区分を使っています。 1951年にスウェーデンの海洋学者Jerlovが、世界の海を透明度で分類したものです。外洋が5種類、沿岸が5種類あります。
このアプリで使っている吸収係数と散乱係数は、Williamson and Hollins (2022)によるものです。世界の海洋光学データベース(WOOD)から実測値を集め、1,350万件の測定を53組の値に集約したもので、そこから300〜800nmの全波長にわたる表が作られています。
この論文で値が得られたのは、10種類のうち6種類です。 いちばん澄んだI型とIA型、いちばん濁った7C型と9C型は、データが足りずに除かれています。このアプリで選べるのがIBから5Cまでなのは、そのためです。
濁ると、順番が入れ替わります
「赤が最初に消えて、青がいちばん深くまで届く」という話をよく聞きます。これは澄んだ外洋についてのみ成り立ちます。
実測の係数で、青(450nm)・緑(550nm)・赤(650nm)の減衰係数を並べるとこうなります。
| 水の種類(Jerlov分類) | 青の減衰係数 (1/m) | 緑の減衰係数 (1/m) | 赤の減衰係数 (1/m) | 残りやすい順 |
|---|---|---|---|---|
| 澄んだ外洋 (IB) | 0.176 | 0.188 | 0.449 | 青 → 緑 → 赤 |
| 外洋 (II) | 0.257 | 0.249 | 0.502 | 緑 → 青 → 赤 |
| 濁った外洋 (III) | 0.421 | 0.375 | 0.622 | 緑 → 青 → 赤 |
| 澄んだ沿岸 (1C) | 0.603 | 0.526 | 0.764 | 緑 → 青 → 赤 |
| 沿岸 (3C) | 0.886 | 0.772 | 0.991 | 緑 → 青 → 赤 |
| 濁った沿岸 (5C) | 1.583 | 1.349 | 1.532 | 緑 → 赤 → 青 |
いちばん澄んだIB型を除くと、すべて緑がいちばん残ります。
そして濁った沿岸(5C)では、青が最下位になります。赤より先に消えます。 汽水の河口や濁った港湾を思い浮かべてください。そこでは「青は遠くまで届く」が成り立ちません。
できないこと
魚にどう見えるかは計算していません。 手を抜いたのではなく、変換式に入れる数値がそろわないためです。
スズキの網膜を測ったデータはあります。 Tamura and Niwa (1967)が、スズキを含む10種の網膜からS電位という反応を記録しています。スズキで記録された33件の内訳は、明るさに応じる型が28件で85%、色に応じる型が5件で15%でした。明るさに応じる型は525〜548 nmで最大になり、色に応じる型は長波長側で正になるものが1種類だけでした。著者らはこの色に応じる型があることを、スズキが色を見分けられる根拠としています。
網膜全体の感度としてなら、525〜548 nmと読めます。 この分野には、L応答の極大がいちばん多かった帯を、その魚の分光感度のピークとみなす慣行があります。中野ら (2006)がサクラマスで、松田ら (2009)がカレイ3種で、この方法を明記して使っています。スズキは33件のうち28件がL2型でしたから、同じ読み方をすれば525〜548 nmになります。
それでも錐体のλmaxは出ません。 S電位は水平細胞から記録される電位で、複数の錐体からの入力を足し合わせたものです。上の525〜548 nmは、網膜全体の感度の山が1つ出ただけで、色を分けるための情報ではありません。色に応じる型が見つかったことは錐体が2種類以上あることを意味しますが、それぞれが何nmで最大になるかは、この方法では出てきません。同じ方法を使った2000年代の研究も、報告しているのはサクラマス522 nm、カレイ3種で544 nm・518 nm・518 nmという1点ずつで、λmaxの組ではありません。
測り方も報告も粗いです。 使われた干渉フィルタは404 nmから726 nmまでの12枚で、「525〜548 nm」は、この2枚のどちらかで最大になったという意味です。2000年代の研究も同じように離散的なフィルタで測っていますが、いちばん多かった1波長まで報告しています。サクラマスの522 nm、カレイ3種の544 nm・518 nm・518 nmがそれです。1967年の論文は、帯までしか出していません。記録数も、サクラマス415細胞・カレイ3種543/549/252細胞に対して、スズキは33件です。使った尾数は書かれていません。論文にあるのは体長約30 cmという記載だけで、実験は冬に、8〜15℃で、摘出した網膜を使って行われています。
写真に紫外線は写っていません。 魚が紫外線を見るとしても、その情報は元の画像に最初から存在しないので、どんな計算でも作れません。
チャンネルを画面の3色に割り当てる方法も決められません。 魚の色覚は種によって違い、メジナは紫外線まで見える4色型、スケトウダラは1色型と幅があります。仮にスズキの錐体の数とλmaxが分かったとしても、それを赤・緑・青のどこに置くかの決め方は恣意的になります。
このあたりは魚は色をどう見ているのかと自然界にない色に、なぜ魚は食ってくるのかにも書きました。
そのほか確かめられていないこと
写真から本当の反射スペクトルは復元できません。 画面のRGBは3つの数値ですが、同じRGBになる分光反射率は無数にあります。写真で同じ色に写る2つのルアーが、水中では違う色になることがあります。 このアプリは「そのRGBと矛盾しない、ありうるスペクトルの一つ」を仮に置いて計算しています。
河川と河口の水は、この分類に入っていません。 Jerlov分類は外洋と沿岸のものです。汽水域の濁りがどの型に近いかは、透明度板で測るしかありません。濁った沿岸(5C)を選ぶのが、いまのところいちばん近い当てはめだと考えています。 透明度板の深さと水型の対応表は、水中で色が消える仕組みに載せました。
元データは1947年から48年の観測に始まります。 論文の著者自身が指摘しているとおり、75年前に定義された分類なので、海の性質がその後変わっている可能性があります。
実測値が集まった場所には偏りがあります。 同じ論文によれば、吸収と散乱のデータが得られた204地点のうち185地点が、赤道より北の緯度20度から45度の範囲に集中しています。
水面での反射と屈折は入れていません。 太陽の高さによる違いも計算していません。
影と、光の向きは入れていません。 このアプリは、光が上から一様に降ってくるものとして計算しています。実際には浅いところほど太陽の方向がはっきりしていて、深くなるほど一様に近づきます。ルアーの背中と腹で当たる光の量が違うことも、扱えていません。 平らな画像として計算しているので、立体の形が分からないためです。
光源を変えても、明るさは昼のままです。 常夜灯の下は昼より何桁も暗いはずですが、その差は計算していません。光の色だけを差し替えています。
夜だからといって、見る向きが変わるわけではありません。 光は夜も上から来るので、見上げれば背景は明るく、見下ろせば暗いという関係は昼と同じです。全体が暗くなるだけです。
魚が夜に色を見ているかは分かりません。 色を見る錐体細胞は明るいところで働く細胞です。常夜灯の下がそれに足りる明るさなのか、明暗しか見えていないのかを示す資料は、シーバスについて見つけられませんでした。光源を切り替えて出てくる色は、その明るさで色が見えている場合の話です。
明暗部は計算していません。 常夜灯は一点から照らすので、明るいところと暗いところの境目ができます。これを出すにはランプの高さ・出力・配光・水面での反射が要ります。どれも手元にないので、光が一様に降る前提のままです。
続けて読むなら
- 水中で色が消える仕組み— このアプリの計算の中身。係数の出どころと、濁ると青が最下位になる理由
- 自然界にない色に、なぜ魚は食ってくるのか— 自然界にない色に反応が出る理由を、動物行動学の側から調べたもの
- 色が消える距離で、魚は何を頼りに餌を見つけているのか— このアプリで色がほとんど残らない距離になったとき、魚は何を使っているのか
- 魚は色をどう見ているのか— 「魚から見た色」を実装しなかった理由の詳細。実測データのある魚種の一覧
- 派手な魚は、なぜ捕食されないのか— こちらは色ではなく模様が距離で消える話です。同じ構造でした
使ったもの
- Measured IOPs of Jerlov water types(Williamson and Hollins, Applied Optics 61, 9951-9961, 2022)— 吸収係数と散乱係数の表。Crown copyright (2022), Dstl、Open Government Licence v3.0のもとで利用
- Chlorophyll-based model underpinned by measured inherent optical properties of Jerlov water types(Hollins and Williamson, Applied Optics 62, 6218-6233, 2023)— 上記の続報。水の成分と光学特性の関係
- 光源のスペクトルはCIEの標準光源(D65、HP1、HP2、LED-B1、LED-B3)。数値はcolour-science(BSD-3-Clause)に収録されているものを、400〜700nmで10nm帯域ごとに平均して使っています
- 等色関数はWyman, Sloan and Shirley (2013)の解析近似、画面の色への変換はsRGBの標準式を使っています