TRAMCITY 開発レポート 地形データ( World Composer) を使って勾配を表現

開発レポートの投稿、ご無沙汰しておりました。
最近の変更点・改良点を紹介します。

リアルな勾配表現をしたい

これまで TRAMCITY で再現していた区間は、函館どつく前〜十字街 間の比較的平坦な区間でした。
しかし、これから実装しようとしている谷地頭ー青柳町間は、58.3‰の急勾配がある特徴的な区間です

かつてこの区間では、電車が下り勾配でスリップし、そのまま止まりきれずに谷地頭停留所の車止めと待合室に衝突する事故が起きました。
現在は、谷地頭停留所に強固な車止め設備が設置された他、下り勾配の途中で電車が一旦停止する措置が取られています。

こうした背景のある区間をしっかり再現したい、そのためにはどうすれば良いか色々と試してきました。

青柳町停留所から谷地頭方面を望む
谷地頭電停から青柳町電停方面を望む

実際の地形データをもとに勾配を再現する

やはり再現するからには実際のデータを使いたいと考えて、いろいろ探し回った結果、Unity Asset Store で公開されていた "World Composer" を使ってみることにしました。

約5,000円ほどするのですが、ずっと悩んでいても仕方ないので「物は試し」です。

World Composer は Bing の地形データ・航空写真をもとに、Unity で使える地形データ (Terrain) を生成してくれます。
使い方はシンプルで、下の画像のように、航空写真・地図から範囲を選択して Terrain を生成します。

World Composer はパラメータ調整が大変...

とにかくパラメータ調整が大変でした。
Terrain を生成するために、縦横の分解能、高さの分解能、航空写真のズーム率など、色々調整しなければなりません。

良かれと思って、解像度を上げていくと、逆にレゴブロックやマインクラフトのようにカクカクした地形になってしまったり、変なところで波打つような地形になってしまったりと、なかなかクセが強いです。
(なぜか Terrain と航空写真のテクスチャがズレることもしばしば・・・)

正直なところ、パラメータ同士のバランスをどう取るのが正解か掴みきれていません^^;
いまのところ、下の図のようなパラメータで使っています。

なんとか雰囲気は出せそう

試行錯誤しながら生成した地形がこちら。
うん、なんとか函館山の雰囲気は出ていますかね。

緑の島(手前) と函館山

一見、建物も見えていますが、実際に拡大してみると航空写真を貼っただけなので、シミュレータでは使い物になりません。

本当は地形データの分解能をもう少し上げたかった。
山の中腹に水平に設置されている道路があるのですが、それが潰れてナナメに傾いた道路になっちゃってます。
山の麓の道路も例外ではなく、直線なのにカントが付いた道路になっちゃってます。(笑)

ナナメになってしまった部分は、Unity 標準機能で高度調整できるので、一旦、無視しておきます。

建物の 3Dオブジェクトは無く、拡大には耐えられない画質

青柳町停留所からの下り坂の写真と比較してみる

地形の雰囲気は出ていますね。
今後、TRAMCITY ではこの Terrain に沿って線路と道路を敷設していきます。

カメラの設定にもよりますが、もう少し遠景(山) のダイナミックさが欲しいですね。
現地に行ってみると、函館山が目の前にドーンと居座っていて、迫力があります。

このあたりは試行錯誤して、またレポートします!
以上、地形・線形改良のレポートでした。

スポンサーリンク

Twitterでフォローしよう