見出し画像

【Unity】島を作る #1

地形作るの苦手すぎ問題

Unityには「Terrain」とかいう地形を作るためのすごい機能がある。過去に何度か触って木とか草を生やして遊んだりしたのだけど、そいつで本格的に地形の類を作った経験が殆どない。しかし、3Dゲームを作る上では避けて通れないと思うので、そろそろTerrainと仲良くなっておきたい。

学習するにあたって何かしらのお題が無いとアレなので、テキトーな島でも作る事にした。しかし、大きな島にチャレンジすると絶対に挫折するので、現実世界で歩いて簡単に1周できるレベル・・・それこそ1平方km未満ぐらいの小さい島がふさわしいだろう。

画像10

その規模感で思いつくのは、鎌倉の江ノ島だとか、熱海の初島だとかそのあたりだろうか。ここはあえて、遠くから眺めた事は数あれど、行った事が一度も無い初島をモデルにしたい。行きてぇー!

やっぱり挫折

最初はGoogleMapを参考に地形を作ろうとしたのだけれど、容易に挫折。小さい島とはいえ広大すぎて、どこから手をつければいいかわかんねんだわ。何らかの外部データをインポートして、そいつをベースに作るとかできないもんだろうか?

どうやら、Terrainにはそれっぽい仕組みがあるらしい。こちらの記事を全力で参考にさせて頂きながら試してみる事にした。

無理やりHeightMapを作る

HeightMap(ハイトマップ)は、地形の高さを白黒のグラデーションで表したものだ。白くなればなるほど高く、黒くなればなるほど低い。まずはそれを用意する必要がある。

画像1

高さを表す図、といえば標高図。「地理院地図」とかいう国交省絡みのサイトで、標高に応じて好きな色を付けられるという神機能があったので、そいつで白黒に色分けしてみる。

初島はそもそも、そんなに標高が高くないようだ。Wikipediaの情報によると、最高でも33m程度だ。果たして、うまく起伏が表現できるだろうか?

画像2

GIMPに持ってきて、周囲を黒色に塗ったところ。とりあえずはこれをRaw画像でエクスポートすればいいらしい。あと、513x513にリサイズしとく。

画像4

保存タイプはPlanarを選択。Raw画像に詳しくないので、なぜそうするかは知らん。

HeightMapを適用する

画像5

Unity側(2019.4時点)でTerrainを設置しておく。Terrainのサイズが1000で1平方kmって誰かが言ってた気がするのだけど(うろ覚え)、Wikipediaによると島の面積はだいたい0.4平方キロなのでXZには400程度を設定しておいた。

Terrainの歯車マークから「Texture Resolution」の「Input Raw...」を押して先程の画像を選ぶと、インポート設定のダイアログが出てくる。Resolutionは513、ByteOrderはMacにしておく(これも原理は知らん)。

よし、これで行けるはずだ!






画像3

上陸できるかこんな島----!!!

FFとかだと、飛空艇手に入れてからしか入れないタイプの島じゃん。これはあんまりなので、もうちょっとマイルドにしてやらないといけない。

画像6

きっと白成分を黒に近づければいい感じになるはずだ。GIMP側でひたすらフィルタをぶちこみ、これでもかってほど明るさを下げまくる。

画像7

結果、こうなった。これもうわかんねぇな。

画像8

しかし努力の甲斐あってか、それっぽい地形になったように思える。まあ、このままだと不自然だから所々凸凹をつける必要はあると思うけれど。

雑にテクスチャペイント

画像9

ひとまず2つのテクスチャを設定して3分ぐらいで雑に塗った。地形の塗り方というか、そのあたりはYoutubeとかで勉強しとかないとだなぁ。

この記事が気に入ったらサポートをしてみませんか?