光の道と逆さ富士で、ダブルダイヤモンド富士を

🎬 この記事の映像:ダブルダイヤモンド富士
👈 前編:ナイアガラの滝に、キラキラと水煙を
前編では、Google Earth Studio(以下GES)の映像に、自作ツール ge_overlay で水面のキラキラと滝の水煙を足しました。
後編はその続きです。挑戦したのは3つ。
- 海 を水として扱えるようにする
- 夕日・朝日が水面に落とす 光の道
- 湖に映る 逆さ富士
この3つがそろうと、山頂に太陽が重なるダイヤモンド富士と、それが湖に映るもう1つのダイヤモンド富士——ダブルダイヤモンド富士 が作れます。
1. 海は、地図に「面」で入っていない
湖や川は、地図データ(OpenStreetMap)に形として登録されています。ところが 海は入っていません。あるのは海岸線という「線」だけです。
線から面を作る必要があります。助けになったのは、地図の海岸線にある「進む向きの左が陸、右が海」という決まりです。
- 海岸線を、向きを保ったままつなぐ
- 画面の範囲の枠で切る
- 枠に沿ってぐるっと回り、次の海岸線につないで閉じる
- 枠の中で閉じている海岸線は、島として穴をあける
これで、神奈川の秋谷・立石の海が水として扱えるようになりました。

🎬 検証用の映像:立石公園・秋谷(海と夕日/約15秒)
2. 太陽の位置は、日時から計算する
光の道を描くには、太陽がどこにあるか が分かっていないといけません。
GESの映像には、太陽の向きを示すデータがありません。ただ、GESのプロジェクトファイルには 撮影の日時が入っています。日時と場所が分かれば、太陽の方角と高さは計算で出せます。
これで、コマごとに正しい太陽の位置が分かるようになりました。夕日の色も、太陽の高さに合わせて変えています。低いときは夕焼け色、高いときは白い光です。
3. 光の道
夕日が海に落とす、縦に伸びる光の帯です。
最初は「太陽の方向のキラキラを増やす」くらいに考えていましたが、それだと丸いぼやっとした塊になります。実際の光の道は、縦に長く、手前ほど広がる 形をしています。
これには理由があります。水面には大小の波があって、それぞれ少しずつ傾いています。太陽の光が自分の目に届くのは、ちょうどいい角度に傾いた波 に当たったときだけです。
- 太陽の真下の方向は、少し傾いた波で光が返ってくる → 明るい
- そこから外れるほど、大きく傾いた波が必要になる → 数が少ないので暗い
この考え方で、画面の各場所が「どのくらい光るか」を計算しています。すると、実際と同じ縦長の光の道が自然にできあがりました。
波の荒さは1つの数字で決めます。小さくすると細く長い光の柱、大きくすると広い光の帯 になります。凪の湖から荒れた海まで、この1つで振れます。
太陽が富士山に隠れたら、光の道も消す
計算で描く方法には、1つ困ったことがありました。計算は太陽の位置しか知らないので、太陽が富士山の向こうに沈んでも、光の道を描き続けてしまう のです。ダイヤモンド富士では、まさにその瞬間が見どころなのに。
手がかりにしたのは、GESの映像に写っている太陽そのもの です。
画像の明るさは0〜255の数字で表され、太陽の部分は255で頭打ちになって真っ白に飛んでいます。でも本物の太陽は、白い雲や雪よりはるかに明るい。画像の上では、その差が消えてしまっているのです。そのまま水面に映すと、反射で暗くなって、ただの灰色の丸になってしまいます。
そこで、255付近で頭打ちになっている所だけ明るさを増幅し、水面の反射率も割り増し しています。太陽が見えている間は、水面にまぶしい太陽が映ります。山に隠れれば、頭打ちの所そのものがなくなるので、割り増しも自然に止まります。太陽が山頂に沈んでいくのに合わせて、水面の光もすっと消えていきます。
光の道の形はあくまで計算で描き、画像から借りるのは「太陽がどれだけ明るいか」だけ。次に書く失敗を経て、たどり着いた使い分けです。
画像から光を拾おうとして、失敗した
実は、この「計算で描く」方法に辿り着く前に、一度まるごと作って捨てています。
最初は、GESの映像で白く飛んでいる太陽の部分を拾って、それを下へ引き伸ばす 方法を試しました。ところが、GESの太陽はもともと丸い光として描かれているので、いくら伸ばしても実際の光の道の形になりません。光もちらちら瞬いて止まりませんでした。
調整のつまみがどんどん増え、どれを動かすと何が変わるのか分からなくなったところで、全部取り消して作り直しました。
教訓は、つまみが増えはじめたら、やり方そのものが間違っている合図 だということです。
4. 逆さ富士
ここが一番面白いところでした。
水面に映る景色は、「水面で跳ね返った視線の先に見えるもの」です。富士山のように遠くにあるものなら、跳ね返った視線の先は、同じ画面の中にもう写っています。
つまり、新しく何かを描く必要はありません。画面の中の富士山を、水面の位置に上下ひっくり返して持ってくればいいのです。
- 画面の各場所で、跳ね返った視線が画面のどこに当たるかを計算する
- その場所の色を持ってくる
- 岸の近くは薄くして、境目がくっきりしないようにする

🎬 検証用の映像:河口湖・逆さ富士(約15秒)
物理に従ったら、速くなった
最初は「カメラが水平に近いときだけ映り込みを計算しないと、時間がかかりすぎる」と心配していました。
ところがこれは、水面の性質そのもの でした。水面の映り込みは、真上から見るとほとんど見えず、斜めに見るほど強くなり、水平に近いと鏡のようになります。この性質どおりに濃さを決めれば、見下ろすカットでは映り込みが自然に消えます。
物理に正直に作ったら、余計な処理も勝手に省けた、という珍しいケースでした。
さざ波
映り込みをそのまま乗せると、鏡のようで不自然です。細い帯ごとに少しずつ横にずらし、時間で流すと、水面らしくなります。
ここでも一度やり直しています。最初は「水面が何メートル揺れるか」で計算していたのですが、空撮では水面が数百メートル先にあるので、揺れが画面上で ほぼゼロ になってしまいました。今は「波の傾きの角度」で決めているので、遠くの水面もちゃんと揺れます。
海の映り込みと、灰色の太陽
最初、海で映り込みを入れると、GESの画面に描かれている太陽まで水面に映って、灰色の太陽が二重に出てしまいました。しばらくは、海では映り込みを使わずにいたほどです。
これを解決したのが、光の道の節で書いた「頭打ちの太陽の明るさを割り増す」工夫です。映った太陽がまぶしく光るようになったので、今は海でも映り込みを使っています。
5. 手前の陸が、水の上に乗ってしまう
最後に残った難所です。
地図の水の形は「上から見た範囲」なので、手前の半島や木が水を隠している ことを知りません。そのままだと、手前の陸の上にキラキラや映り込みが乗ってしまいます。
これは地図では解けないので、画像を見て判断することにしました。水らしい色と、陸らしいざらつきで見分けて、陸と判断した所を外します。
夕方は水と陸の明るさが近く、見分けにくくなります。そこで、水と陸の見本の画像を自分で切り出して渡せる ようにしました。見本は、手前・遠く・前半・後半から取っておくのがコツです。
ここはまだ完全ではなく、調整を続けています。
6. ダブルダイヤモンド富士
これで材料がそろいました。
- 日時から計算した太陽が、富士山の山頂に重なる
- その光が、湖面に光の道として落ちる
- 富士山と太陽が、湖に逆さに映る
秋谷・立石の海の夕日に加えて、左:山中湖(ママの森見晴台の夕景)、中央:富士本栖湖リゾートと右:田貫湖(朝日のダブルダイヤモンド富士)でも確認しています。



7. 目指しているところ
ここまで「GESの映像をきれいにする話」をしてきましたが、本当の目的は別にあります。
シミュレーションで作った映像を、実際のドローンでそのまま撮ること です。
Drone_PreFlightは、1つの飛行計画から2つのファイルを書き出します。
- GES用のファイル → 光と水を足して、仕上がりに近い映像にする
- ドローンの送信機(DJI RC2)用のファイル → 現地で、そのまま自動で飛ばす
どちらも同じ経路・同じカメラの向き・同じ日時から作っているので、シミュレーションで良かった画は、現地で同じように飛ばせば撮れる はずです。
水と光に手を入れてきたのは、そのためです。水が死んだままの映像では、
この日時・この場所から、ダブルダイヤモンド富士は見えるか
が判断できません。現地に着いてから気づくのでは遅いわけです。
残っている作業
- 手前の陸の見分けを、もっと確実にする
- 処理を速くする。今は3000コマで1時間ほどかかり、構図を何度も試すには遅い
- 実際に飛ばして、シミュレーションと実写を並べて比べる
最後の1つが通れば、「撮れるかどうかを、行く前に映像で確かめられる」ができあがります。そこが本当のゴールです。

コメントを残す