1. HOME
  2. ブログ
  3. IT技術
  4. 【Unity】オブジェクトからTerrainの地形データを自動生成する

【Unity】オブジェクトからTerrainの地形データを自動生成する

Unity(ユニティ)でのマップ生成は大変!

ロールプレイングゲームやアクションゲームを作成する中で、最も大変な作業といっても過言ではないのが「マップ生成」です。

Unity では、マップ・地形を生成する際に「Terrain」という機能を使用します。

GUI(グラフィカル・ユーザ・インターフェース)で非常に使いやすい機能です。

しかし、直感的に使える反面、広大なマップを作ろうとすると、膨大な労力がかかってしまいます。

だからと言って、他のソフトで作成した地形を取り込んでも、Unity 上で草木や花などのアセットを敷くことは出来ません。

その対処法として、今回は、3D オブジェクトとして取り込んだデータから、Terrain の地形データを自動生成する方法を紹介したいと思います!

こちらの記事もオススメ!

UnityEditor に Terrain 生成機能を付与する!

今回は、ゲームビューを起動すると Terrain が完成するのではなく、Editor 機能として、オブジェクトから Terrain を作成できるようにします

ソースコードを入れるフォルダを用意する

新しく「Editor」という名前のフォルダを、「Assets」フォルダの直下に用意します。

ここで作成した「Editor」フォルダにスクリプトを入れないと、ビルドや書き出しの際に、エラーが出てしまう可能性があります。

※注意※
「Editor」フォルダ以外の場所でも問題ありませんが、ビルドするときは、Unity のプロジェクトの外にバックアップを取り、削除するようにしてください。

ソースコードをフォルダに配置する

先ほど用意した「Editor」フォルダに、ソースコードを配置します。

そして、右クリックから「Create」→「C#Script」を選択し、名前は「Object2Terrain」にしてみましょう。

ソースコード

ソースコードは以下の通りです。

動作を確認する

下の画像のように、Editor の機能部分に、新しく「Terrain」というボタンが出来ていれば、成功です!

Terrain ウィンドウから、「Objetct to Terrain」を選択してください。

すると、以下のようなウィンドウが表示されます。

このウィンドウが出ている状態で、Terrain のもととなるオブジェクト選択します。

オブジェクトを選択したら、「Create Terrain」を押してください。

生成した結果

すると…

できました!!

今回は、タンスと同じ形の Terrain を生成しています。

これで、草木をはやしたり、花を咲かせることが可能となりました。

Terrain を生成する上での注意点

この機能を使う上で、いくつか注意点があります。

1つのメッシュを持つオブジェクトに適用させる!

2つ以上のオブジェクトが親子構造になっていて、それぞれにメッシュがついている場合は使用できません。

親子構造であっても、アセットに よくある形の一つのメッシュが親についていて、パーツごとに子がついている場合は問題ありません。

完成した Terrain はプレハブ化できない!

完成した Terrain をプロジェクトビューにドラッグ&ドロップしても、正しくプレハブが生成されません。

これは、「.meta」ファイルに対応した「.assets」ファイルが生成されないことが原因です。

また、元となったオブジェクトのメッシュファイルは削除しないようにしてください。

使いすぎるとプロジェクトの容量が大きくなる!

何度も試行錯誤を繰り返すと、どんどんプロジェクトの容量が大きくなっていきます。

これは、毎回「Resources」フォルダに一時ファイルが生成されることが原因です。

最終的に使うもの以外は、削除してください。

頂点の数が大きすぎると Terrain が生成されない!

パソコンの性能にもよりますが、2000がボーダーラインです。

あらかじめ、blender などで分割しておきましょう。

さいごに

今回は、オブジェクトから Terrain を自動生成する方法を紹介しました。

最も大変な作業といっても過言ではない「マップ生成」。

今回紹介した方法で、少しでも負担が軽くなればと思います。

ぜひ、今回紹介した「オブジェクトから Terrain の地形データを自動生成する」方法を試してみてください!

(株)ライトコードは、WEB・アプリ・ゲーム開発に強い、「好きを仕事にするエンジニア集団」です。
Unityでの開発依頼・お見積もりはこちらまでお願いします。
また、Unityを扱えるエンジニアを積極採用中です!詳しくはこちらをご覧ください。

※現在、多数のお問合せを頂いており、返信に、多少お時間を頂く場合がございます。

こちらの記事もオススメ!

ライトコードよりお知らせ

にゃんこ師匠にゃんこ師匠
システム開発のご相談やご依頼はこちら
ミツオカミツオカ
ライトコードの採用募集はこちら
にゃんこ師匠にゃんこ師匠
社長と一杯飲みながらお話してみたい方はこちら
ミツオカミツオカ
フリーランスエンジニア様の募集はこちら
にゃんこ師匠にゃんこ師匠
その他、お問い合わせはこちら
ミツオカミツオカ
   
お気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!

一緒に働いてくれる仲間を募集しております!

ライトコードでは、仲間を募集しております!

当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。

また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!

なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。

ライトコードでは一緒に働いていただける方を募集しております!

採用情報はこちら

関連記事