こんにちは, saku です。
Unity による路面電車 運転シミュレータの開発レポート。
今回は、函館市の街の雰囲気を出すために、車道と歩道の設置アルゴリズムと素材(テクスチャ)を見直しましたので、そのご報告です。
歩道の切り下げ・終端を実装しました
切り下げ・終端はこの画像のようなものです。
※終端は saku が勝手に名付けました。
これまで、歩道は切り下げと終端を実装してなかったので、苦し紛れに「表示しない」処置を取っていました笑
今回、街の雰囲気を出すために、新たに歩道の切り下げと終端を作りました。
結果はこんな感じ。良さげ!
実は、歩道と、歩道の切り下げ部分は Unity のエディタ拡張でメッシュを生成しています。
歩道をエディタ拡張でメッシュを生成している理由は、線路オブジェクトに沿って平行に配置したいからです。
この考え方は歩道だけでなく、複線や、道路なども同様です。(BVE の線路定義と同じですね)
とくに路線長が長くなってくると、ひとつひとつオブジェクトをモデリングして、配置するのはとても大変です。
そこで、エディタ拡張によって、BVE のように「複線」として道路・歩道を配置する手法を取りました。
こうすることで、基準の線路さえ定義できれば、エディタ上で道路や歩道を半自動的に生成できます。
一方で、終端部分は Blender でモデリングしたオブジェクトを配置しています。
配置は、線路オブジェクトに依存して相対位置を指定する手法を取っていますが、メッシュデータは Blender で作ります。
Blender で作った終端モデルの頂点が、Unity 内で生成した歩道メッシュの頂点とがズレてしまわないように、予め歩道メッシュを obj 形式でエクスポートしました。
エクスポートした obj データを Blender にインポートして、それをベースに終端モデルを整形しました。
こちらのページを参考にしました:
https://wiki.unity3d.com/index.php/ObjExporter
道路の種類を増やしました
これまでは単純なアスファルトの線路・道路だけ実装していました。
しかし、実際の函館市の道路を見てみると、こうしたアスファルト道床だけでなく、コンクリート素材のものもあります。
また、函館市の西部地区・末広町〜十字街付近は、夜景を際立たせるためか、車道が白っぽい色のアスファルト (コンクリート?) で舗装されています。
これらを再現するため、以前撮影した写真から、地道にテクスチャを作成しました。
実際にテクスチャを作って、Unity に配置した結果はこちら↓
ちょっとぼやけてますが、なかなか良い感じ。
テクスチャを作っていて思ったのですが、自分の写真撮影テクが残念すぎる!(笑)
テクスチャ化を意識せず、曲線区間の線路を撮影しちゃっている。
まぁ、プロの方は曲線区間であってもきれいにテクスチャ化できるのだろうけど、自分にはそこまでの技量がなく、テクスチャ化にかなりの時間を要しました。
次回からはもっとテクスチャ化を意識して、直前区間で写真撮影します。
コメント