水中カラーシミュレーター

水を通ったあと、ルアーの色がどれだけ残るかを計算します。実測された海水の吸収・散乱係数を使い、水深と距離と水の濁りを変えて確かめられます。魚にどう見えるかを再現するものではありません。

レッドヘッドの赤は、水の中でも赤いのでしょうか。答えは、たいてい赤くありません。

水深と、ルアーまでの距離と、水の濁り方を決めてください。その条件で光がどれだけ残るかを計算します。

これは「魚にどう見えるか」ではありません。 目に届く光がどう変わるかを計算しているだけです。理由は下記に書きました。計算の中身は水中で色が消える仕組みで解説しています。

水の種類Jerlov分類
光源昼か、常夜灯か
魚が見る向き背景が変わります
水の外
水を通したあと

色の名前は水の外の側にだけ出しています。水中側では背景を水の色に置き換えているためです。

水深
ルアーまでの距離
光が水を通る長さ

水面からルアーへ届き、そこから目に戻るまでの合計です。
水深と距離を足した値になります。

外すと、実際に届く光の量そのままで暗くなります。色の変化だけを見たいときは入れてください。

ルアーが回って反射面が光る動きです。下記のとおり、光る色は塗装の色ではありません。

使えるのは 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 電球色2733KLED-B1
LED 昼白色4103KLED-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.1760.1880.449青 → 緑 → 赤
外洋 (II)0.2570.2490.502緑 → 青 → 赤
濁った外洋 (III)0.4210.3750.622緑 → 青 → 赤
澄んだ沿岸 (1C)0.6030.5260.764緑 → 青 → 赤
沿岸 (3C)0.8860.7720.991緑 → 青 → 赤
濁った沿岸 (5C)1.5831.3491.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度の範囲に集中しています。

水面での反射と屈折は入れていません。 太陽の高さによる違いも計算していません。

影と、光の向きは入れていません。 このアプリは、光が上から一様に降ってくるものとして計算しています。実際には浅いところほど太陽の方向がはっきりしていて、深くなるほど一様に近づきます。ルアーの背中と腹で当たる光の量が違うことも、扱えていません。 平らな画像として計算しているので、立体の形が分からないためです。

光源を変えても、明るさは昼のままです。 常夜灯の下は昼より何桁も暗いはずですが、その差は計算していません。光の色だけを差し替えています。

夜だからといって、見る向きが変わるわけではありません。 光は夜も上から来るので、見上げれば背景は明るく、見下ろせば暗いという関係は昼と同じです。全体が暗くなるだけです。

魚が夜に色を見ているかは分かりません。 色を見る錐体細胞は明るいところで働く細胞です。常夜灯の下がそれに足りる明るさなのか、明暗しか見えていないのかを示す資料は、シーバスについて見つけられませんでした。光源を切り替えて出てくる色は、その明るさで色が見えている場合の話です。

明暗部は計算していません。 常夜灯は一点から照らすので、明るいところと暗いところの境目ができます。これを出すにはランプの高さ・出力・配光・水面での反射が要ります。どれも手元にないので、光が一様に降る前提のままです。

続けて読むなら

使ったもの