top of page

Unreal Engine上に世界地図を作る方法

Unreal Engine上に世界地図を作ろうと考えて早一年。

実はずっと作りたいものは頭の中にあったんだけど、なかなか手が動かなくて(BluePrintで実現できないことがわかっていたので)保留になってた。

→今回の範囲は100%BluePrintで大丈夫です。

待てど暮せどBluePrintでUDP受信や(ファイルシステム上の)ファイルReadができるようにならないので、あきらめて最低限C++に手を出す腹をくくり、やりたかったことを進めることにした。

で、そのアプリを作るためにはまず3Dで表示される世界地図が必要なわけです。

世界の標高データ(DEM:Digital Evelation Modelと呼ばれるらしい)を探して一晩ダウンロードをかけっぱなしにしたところ... 73GB!

この量になると、データを集約することも簡単ではない。

のでとりあえず別の方法を。

地球の情報といえばNASA。

「nasa blue marble」でググると、NASAが公開している地球の写真があり、その中に「Topology」というのがあります。

本文を見ると

”Land topography is a digital image of the three-dimensional structure of the Earth's surface.”

とあるので、これを使えばよさそうです。

このデータをGIMPで適当に縮小し、ppm(アスキー)形式でExportします。

これは、この後の作業をしやすくするためで、画像→CSVの技がある人はそれでも好いと思います。

次にUE4上でデータを取り込むための作業をします。

これは3つの手順が必要となります。

1.データ構造を定義する

2.データを準備する

3.データを取り込む

1.データ構造を定義する

Blueprints→Structureから、構造体の定義画面を立ち上げ、表に必要となるデータ形式を定義します。

2.データを準備する

先ほど画像データをExportしたppm形式をExcelなどに取り込んで、CSVのデータを生成します。

データは以下のようなファイル(ファイル名:Height.csv)になります。

データの一列目はレコード名になるので、通番などを適当に入れておきます。

No.,X,Y,Height 1,0,0,0 2,1,0,0 3,2,0,0 4,3,0,0 5,4,0,0 6,5,0,0 7,6,0,0 8,7,0,0

3.データを取り込む

ここまで来れば、あとは、UE4のコンテンツブラウザからインポートから先ほど作成したCSVファイル(ファイル名:Height.csv)を指定します。

「Choose Data Table Row Type」で、定義したStructureの名前を選択し、OKをクリックします。

さらっと終わりますが、ちゃんとDataTableが作成されて、データが取り込まれます。

で、こいつをBluePrintで試しに表示するようにしてみる。

あらよっと。

実行すると、おおぉ、いい感じ!

だけどあまりにアクター数が多すぎてちょっとリアルタイムは無理っぽい。

解像度を下げるか、もうちょっと工夫しないと厳しそうだ。

解像度を下げて再挑戦してみるけど、それでもまともに動かなかったら、こいつはお蔵入りです。

トホホ。

Featured Posts
Recent Posts
Archive
Search By Tags
Follow Us
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square
bottom of page