こんにちは!今回は、Google Earth StudioとReactベースの動画合成フレームワーク「Remotion」をシステム連携させ、地理データ(OSM)から3D鉄道展望動画をほぼ完全自動で生成する「動画自動化パイプライン」の開発についてご紹介します。まずは、動画をご覧ください。
実際にこのパイプラインで自動生成した東海道線(横浜 ➔ 小田原)の前方展望動画デモをベースに、裏側の数理アルゴリズムや技術スタックについて解説します。
1. 解決したかった課題:3D空撮動画制作の手間
Google Earth Studioを使えば非常に美しい3D空撮映像を作ることができますが、鉄道のレールや道路のカーブに沿って滑らかなフライトアニメーションを手動で作ろうとすると、以下のような「気の遠くなるような手作業」が発生します。
- 数万メートルに及ぶルート上に数百個のキーフレーム(緯度・経度・高度)を手動でプロットする。
- 急カーブでカメラが線路からはみ出さない(インカットしない)ようにベジェ曲線を微調整する。
- 動画の再生速度と、画面上に合成する速度計(HUD)や座標データを1フレームずつ目視で同期させる。
- BGMやナレーションの長さに合わせて動画のタイミングを引き延ばしたり縮めたりする。
これらをすべてプログラムで解決し、「GISデータを入れるだけで、数分で完成度の高い展望動画が出力されるシステム」を構築したのが、今回のプロジェクトです。
2. 自動化パイプラインのアーキテクチャ・技術スタック
このパイプラインは、以下の技術スタックの緊密な連携によって動作しています。

① 【Python】複々線対応の「制約付きダイクストラ法」
単なる最短経路探索を行うと、カメラが隣の貨物線や対向線に「脱線」してしまいます。
そこで、特定の系統(例:東海道旅客線下り本線)のリレーションデータに含まれない線路を走行する際や、ポイント切り替えを跨ぐ際に大きな移動コスト(Way-Switch Penalty)を課すアルゴリズムを設計しました。これにより、複雑な複々線区間でも1本のレールだけを忠実に追従する軌道データを自動抽出できます。
② 【Python】標高データと高度制御
国土地理院の標高APIからローカルな地表高さを瞬時に取得し、そこからカメラの高さを一定(例:12.0m)に保ち続ける処理を自動化。坂道や谷があっても、カメラが地面に埋もれたり空高く飛び立ちすぎたりすることなく、常に安定した低空滑空が可能になりました。
③ 【Python】カーブ自動検出型キーフレーム配置(Adaptive Keyframing)
直線区間はキーフレームを間引いてファイルを軽量化し、急カーブでは「カメラの進行方向の角度変化率」を検知してキーフレームを自動的に超高密度(数メートル間隔)に配置します。これにより、Google Earth Studio側のスプライン補間によるカーブでの脱線(ショートカット)を完全に防止しています。
④ 【Remotion / React】テレメトリHUDと音声の全自動合成
レンダリングされた生映像の上に、速度計や現在位置(経緯度)、次の停車駅などを表示するHUDダッシュボードを重ねます。
動画が全体でぴったり6000フレーム(200秒)になるように時間軸を制御しつつ、各駅への進入・進出時のスムーズな加減速と停車(Stop & Go挙動)を物理シミュレーション数式で動的に計算してHUDの数値とシンクロさせています。
ナレーションはAzure TTS(Edge-TTS)APIを呼び出し、漢字の読み(例:国府津 ➔ こうづ、鴨宮 ➔ かものみや)の誤読対策を施した上で自動合成しています。
3. 圧倒的な開発効率(ベンチマーク)
手動による映像制作と、今回構築したパイプラインの処理速度を比較すると、以下のようになります。
| 工程 | 手動による制作 | 自動化パイプライン |
|---|---|---|
| 軌道の解析・生成 | 数時間(マップ上に手動プロット) | 約5秒 (Python) |
| ナレーション・字幕生成 | 約1時間(録音・タイミング合わせ) | 約12秒 (edge-tts) |
| 合成と書き出し (4K) | 数時間(After Effects等で手動配置) | 約15〜20分 (Remotion) |
| 合計時間 | 約2〜3日 | 約20分 |
手作業であれば2〜3日かかるクオリティの映像が、プログラムを実行してわずか約20分(書き出し完了まで)で完成します。
4. 今後の展望
このシステムはOpenStreetMap(OSM)とグローバルな標高データをベースに構築されているため、日本全国のあらゆる路線だけでなく、ヨーロッパや北米などの海外の鉄道路線・道路でもそのまま適用可能です。
さらに、カメラの角度を左右45度や真横に向けたカメラ perintah を複数自動生成することで、3画面を同期させた「マルチ車窓展望」などのコンテンツも完全自動で量産できます。
観光フライト動画やシミュレータ、バーチャル旅行コンテンツの量産において、この「GIS ➔ 3D Map ➔ React合成」のパイプラインは極めて強力なポテンシャルを持っています。
気になる技術的な詳細やコードについて質問があれば、コメント欄でお知らせください!



コメント