2014年10月24日金曜日

“地理院地図3D”のSTLデータをUE4へ

現実の地形をUnreal Engine 4 へ取り込みたいと、まだチュートリアルもやっっとらんのに、そんなことを思いついちゃいまして、とりあえずやってみました。UE4どころかBlenderもよく分かってないので、正解かどうかも不明です。おかしかったら、あざ笑って指摘してくだされば結構です。

まず地形のデータを用意します。
国土地理院(日本国内の測量、地図作成してるとこらしい)が、太っ腹なことに地形データを公開してくださっています。フォーマットは3種類。STL、 WEBGL、VRML。利用規約には、商用利用化とあります!話が旨すぎると疑いたくなります。ホンマかいな

これらの地形データをどうやってUE4へ持っていくか悩みましたが、とりあえずBlenderはSTLがインポート可能です。インポートしたデータをFBXのStaticMeshでインポートするのが簡単な気がしたのですが、地形として使用するとメモリをかなり消費するようなことがマニュアルに書いてあった(ここ)。UE4のランドスケープツールを使用するには、「Heightmap」というデータで取り込む必要がある。これは高さを階調で表す画像データで、RAW、又はPNGフォーマットの16bit、グレースケールデータ。
ここまでで、BlenderでHeightmapを出力すれば良いことになるのですが、私の浅い知識で到達した答えは、「Zバッファで書き出す」という事です(もっと簡単、正確な方法あれば誰か教えてください)

「3次元でみる」から入って地形データを出力したい場所を
探します。



「3Dデータをダウンロードする」をクリックしてしばらく待つ。

STLファイルをダウンロード。他のデータには、
地図画像もくっついてくるので、あると
どこ地形かが分かり易いのでついでにダウンロードすることを
お勧め。

BlenderにSTLをインポートします。
Xを90度回転。カメラを真上に配置。
地形がすべて収まるようにカメラを移動します。

1、ノードエディタにする。2、コンポジットモードにする。
3、4、Z-bufferをレンダリングできるようににノード配置します。
 MapValueノードの値は試行錯誤の結果です。
意味は良く分かってません。

地形データが正方形なので、レンダリング設定もそのように。
サイズは、UE4に取り込んだ後のことも考えたサイズにする
(と良いと思いますが、そこまでは勉強できてません)。
F12レンダリング、F3で画像を保存で、
PNG,16bit,グレースケールにします。
 

後はUE4のランドスープツールで「Import from File」から、書き出したPNGを取り込んで、インポートで完成です。なにやら周辺がおかしかったりするのですが、とりあえず形にはなったので、ここまでは満足。修正方法が分かったらアップします。

0 件のコメント:

コメントを投稿