ゾンビとUnity

ゾンビネタとUnityでのゲーム制作について綴るブログです。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Unity ゲーム製作 6 無料アセット Pixel Map Terrain

※Unity 5以上では未検証。



Pixel Map Terrain
https://www.assetstore.unity3d.com/jp/#!/content/4547

Pixel Map Terrain の使い方を説明する前に、ハイトマップについて軽くお勉強。



ハイトマップ(height map)

地形の高さをグレースケールの画像で表現する方法はよく使われ、ハイトマップ(height map)と呼ばれます。



How to edit (1) heightmaps using an Image Editor (e.g. Paint Shop Pro)
http://www.mike.kennelly.dsl.pipex.com/railroads/tga_heightmap.htm

一番低いところを黒(0,0,0)、一番高いところを白(FF,FF,FF)、中間をグレーで描画したグレースケールの画像を使って、地形の高さを表現します。
このハイトマップを元に自動的に地形を生成することで、手作業で地形を盛り上げたり削ったりする手間を軽減する…のが目的じゃないかな。
現実世界の地図からハイトマップを作れば、現実の地形をゲームで再現できるでしょうし、使い道は色々ありそうです。



無料のアセット Pixel Map Terrain

このアセットはハイトマップから大雑把な地形を自動生成してくれます。

1ピクセルで表現できる地形の面積がけっこう広いので、緻密でリアリティのある地形を作るのには不向きで、コミカルな表現に向いています。
また、あまり大きなハイトマップは使えません。
このアセットでは 64 x 64 ピクセルが限界です。

pixel map terrain 1

このアセットは Unity の Terrain 機能を使って地形を自動生成するのではなく、メモリ上にメッシュを作り、ゲームオブジェクトにコンポーネントとして追加するためのものです。
なので、このアセットで大まかに地形を作って、細かいところを Unity のエディタ上で編集しなおすという使い方はできません。

トリッキーなことをすれば、生成したメッシュを FBX ファイルなんかに出力して、Blender なんかでメッシュを編集するなんてことはできるかも知れませんが、そんなことをするくらいなら Unity の Terrain にもハイトマップを読み込む機能があるので、素直にそっちを使う方が楽でしょう。

Unity Japan 公式リファレンスマニュアル > 地形エンジン ガイド > 高さ
http://docs-jp.unity3d.com/Documentation/Components/terrain-Height.html

日本語ドキュメントでは、ハイトマップを高低マップと訳しています。

今回作ろうとしているゲームでは、緻密な地形を作る気は全くないので、このアセットは候補に上げておいても良さそうです。
ただ、ひとつ気になるのは、正方形のハイトマップしか使えない点。

例えば、こんな感じの長方形のハイトマップを作り

pixel map terrain 3

このアセットで Generate Terrain すると、こんなメッセージが

pixel map terrain 2

「えーっと、正方形じゃない画像を使おうとしたみたいだけど、今は対応してないんだ。」

と書かれてますね。
今は…ということは、将来は対応する予定なんでしょうか…?



コライダーは作ってくれない

自動生成してくれるのはメッシュだけなので、キャラクターを歩かせる前に、コライダーをつけないといけません。
Add Component → Physics → Mesh Collider でOK

pixel map terrain 5 メッシュコライダーを追加するだけ



Pixel Map Terrain の使い方

空のゲームオブジェクトを作る→Pixel Map Terrain(Script) を追加→Inspector でパラメータを設定して Generate Terrain

パラメータの説明

Heightmap
説明済みなので飛ばします。

Flatland Material
平らな地面に設定するマテリアルを指定。

Assets → Create → Material でマテリアルを新規作成できる。
そのマテリアルに好きなテクスチャを設定する。
Shader は Diffuse で良い。

Sloped Material
斜面に設定するマテリアルを指定。

Block Size
1以上の整数を指定。
1を設定しておくのが良い。
1以外を指定したときにハイトマップ画像のサイズがおかしくなる現象を確認。
バグだと思われる。

Map Size
生成する地形の大きさ。たぶん、単位はメートル。
Block Size の値によって生成後のサイズは変る。
Block Size が 1 なら、Map Size - 1 のサイズになる。

Slope Angle
斜面の角度。

Map Height
マップの高さ…というよりは、斜面の高さ。



今回作ったプロジェクト一式

pixel map terrain 6

自分で作ったテクスチャとハイトマップで地形を作ってコライダーを設定し、標準アセットを使って歩き回れるようにしたもの。

ダウンロード(510k)
スポンサーサイト

- 0 Comments

Add your comment

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。