ほぼ以下のサイトを参照しただけだが、Unityで国土地理院のデータを使って地形を作ってみた。
初心者で所々わからないところがあったのでしたことをメモしておく。
RIFTWORLD • 楽して地形づくり[Unityメモ壱]
実在の地形データをUnityで利用する - SSSSLIDE
したこと
図形データの作成
- 各種資料|基盤地図情報ダウンロードサービスの最下部にある表示ソフトウェアをダウンロード
- 基盤地図情報ダウンロードサービスの基盤地図情報 基本項目のファイル選択へを選ぶ。
- 地域を選んだらダウンロードの際は全てをチェックしてまとめてダウンロードする。
- DEMでは5mメッシュが選ばれているのでそのままにしておく。
- ダウンロードした表示ソフトウェアを開く
- メニューの[ファイル] → [新規プロジェクト作成] でダウンロードしたファイルを解凍した中にあるzipを全て選択する。
- メニューの[設定] → [表示設定] → [DEM表示設定] → [連続段彩] で以下のように設定
- メニューの[ファイル] → [表示画面を画像データとして保存] を選択し保存範囲を指定してbmpファイルに保存
Unityでの読み込み
- Assets>Editorフォルダを作成し、HeightmapFromTexture - Unify Community WikiにあるHeightmapFromTexture.js(Javascript)を中に配置する。
- 作成した地形データのbmpを[Import New Assets]で読み込み、[Inspector]の[Advanced]にある[Read/Write Enabled]にチェックを入れて[Apply]する。
- [hierarchy]で「Create] → [3D Object] → [Terrain]でTerrainを作成する。
- Importした地形データのbmpを選択しメニューの[Terran] → [HeightmapFromTexture]を選択する。
- 地形がTerrainに反映されるので設定でWidth、Length、Heightあたりを設定する。
水を配置してみたり、テクスチャを設定してみてとりあえずそれっぽく。
表示ソフトウェア出力後のbmpファイルの加工について
* 表示ソフトウェアから出力したbmpファイルの一部を使おうと、gimpで加工してBMP出力したらHeightmapFromTextureで読み込めなかった。
* ImageMagickの以下のようなconvertコマンドでBMP3に変換してからUnityに読み込むとHeightmapFromTextureが利用できた。
convert input.bmp BMP3:output.BMP