バーチャル3Dクリエイター神部まゆみです(*^_^*)
この記事はUnityでダンジョンの作り方を模索したメモです。
動作確認した最新のバージョンはblender4.2と4.5、Unity6000.0.46です。
やりたいこと:Unityでダンジョン(洞窟)を作る
会話システムを作ったりコントローラーで動かせるようにしたりできたから、今度はダンジョンを作ってみたいですね…。
ダンジョンと言っても色々あるけども、シンプルな洞窟がいいかな?
ものしりChatGPT氏に聞いてみる
とりあえず彼に聞けば良いアイデアをくれるに違いない。




unityでTPSゲームを作っていますが、ダンジョンを作りたいです。
Terrainのようにダンジョンを簡単に作れるツールのような機能はデフォルトであるのでしょうか?


UnityにはTerrainのようにダンジョンを簡単に作成できるデフォルトのツールはありません。
しかし、以下の方法で効率的にダンジョンを作成できます。
1. ProBuilder(Unity公式ツール)
- Unity公式のモデリングツールで、ダンジョンの壁や床を簡単に作成可能。
- Unityの「Package Manager」からインストール可能。
- メリット: 直感的な操作でダンジョンの形状を作れる。
2. Dungeon Architect(アセットストア)
- Unity Asset Storeで販売されている自動生成系ツール。
- メリット: ランダム生成機能があるため、ローグライクなダンジョンに向いている。
3. Gridベースのタイルマップ
- 2D Tilemapのように、グリッドベースの3Dダンジョンを作る方法。
- メリット: プログラムでダンジョンを動的に生成できる。
4. Blenderなどで作成しUnityにインポート
- 外部3Dモデリングツールでダンジョンを作成し、Unityに取り込む方法。
- メリット: 複雑な形状のダンジョンを作れる。
もし「どのタイプのダンジョンが作りたいか」(手作業で作るのか、自動生成かなど)が決まっていれば、それに合った方法を詳しく説明できます!
ProBuilderって名前は聞いたことあったけど使ったことなかったなあ。
blenderでもいけるんだ。
ローポリで作るならblenderがいいかな…?
あんまりハイポリだと重くなってめんどくさいため、ローポリで作りたいですね。




低スペックでも動くようにローポリモデルを使っているのですが、プロビルダーとやらは軽いのでしょうか?
正直なところそんなにハイポリでスゴイ見た目のものは全く求めていないので、重そうならblenderで適当に作ろうかと思います


ProBuilder自体はそこまで重いツールではありませんが、作り方次第でパフォーマンスに影響が出ます。
例えば、細かく分割されたメッシュや不要なバックフェイス(見えない部分のポリゴン)を増やすと処理負荷が高くなることがあります。
もしローポリで軽量なダンジョンを作りたいなら、以下の点を考慮するといいでしょう:
ProBuilderでシンプルな形状(長方形の壁や床)を作る → その後、ProBuilderオブジェクトを「メッシュ最適化」して結合することで負荷を軽減。
最初からBlenderでローポリのダンジョンを作る → テクスチャをシンプルにして軽量化。
正直、ローポリでシンプルなダンジョンならBlenderで作った方が軽量にできる可能性が高いです。ProBuilderは手軽ですが、最適化しないと余計なポリゴンが増えることもあるので、「とりあえず作るのはProBuilder、最終的にBlenderで調整」みたいな使い方もアリですね。
blenderでモジュールごとに作ってUnityで組めばいいかな?
これならRPGツクールのマップ作製感覚で作れそうな気がする。
洞窟ならゴツゴツしている感じだから継ぎ目が多少不自然でも岩とか配置すれば大丈夫だろう…。




後々のメンテナンスのしやすさを考えたら、天井は後でくっつけたり、1~2m四方位の細かいモジュールごとに作って、RPGツクールのマップチップのようにunityで繋げていくのが良いかな、と思っています。何か良いアイデアはありますか


その考え方はとても合理的ですね!特に小さなモジュール(1~2m四方)を作ってUnity上で組み合わせるのは、RPGツクール的なタイルマップ方式になり、後々のメンテナンスや調整が楽になります。
おすすめの方法
■モジュール方式(タイルベース)
壁、床、天井、柱、コーナー、ドア枠 などを別々のモジュールとして作成。
Unityのグリッドスナップ機能(Vキーで頂点スナップ)を使って配置。
例えば、壁や床は「2m×2m」、トンネルのカーブ部分は「4m×4m」など、一貫した単位で作ると扱いやすい。
■天井は後付け
最初は天井をつけずに作業し、後でまとめて配置する。
Unity上でプレイヤー視点のカメラを設置して確認しやすくする。
L字型やT字型の通路用の天井も用意しておくと、バリエーションを増やせる。
■プレハブ化 & ランダム生成も可能
作ったモジュールをプレハブ化し、再利用しやすくする。
必要ならスクリプトでランダム配置(ランダムダンジョン生成)する仕組みを作ると、毎回違うダンジョンを作るのが楽になる。
■最初に「テンプレートマップ」を作って確認
Unityで適当にモジュールを並べて「このくらいの大きさで作れば良さそう」という基準を決めてから、Blenderで細かく作ると手戻りが減る。
Blenderのカメラ操作が面倒なら、一時的に天井なしの状態で作業し、最後に天井を配置するのがやっぱり楽だと思いますね。
それか、Blenderの透過シェーダー(ワイヤーフレーム表示)を活用して内側を見やすくするのもアリです。
この方法なら、拡張もしやすいし、後から微調整もしやすくなると思います!
岩のテクスチャを無料でダウンロードできるサイト
ついでにChatGPT氏に聞いてみました。
1️⃣ Poly Haven(https://polyhaven.com/)
- 特徴: 100%無料、著作権フリー(CC0ライセンス)
- 品質: 4K~8Kの高解像度PBRテクスチャあり
- おすすめポイント: 商用利用OK、シームレスなテクスチャが多い
2️⃣ AmbientCG(https://ambientcg.com/)
- 特徴: PBRテクスチャ多数(岩、地面、金属、布など)
- 品質: 2K~8K対応、シームレステクスチャあり
- おすすめポイント: 「Seamless」フィルターを使うと、Unityでタイル配置しやすいテクスチャが見つかる
3️⃣ CGBookcase(https://www.cgbookcase.com/)
- 特徴: 物理ベースレンダリング(PBR)対応の無料テクスチャ
- 品質: 4Kテクスチャ、ディスプレイスメントマップあり
- おすすめポイント: ノーマルマップや高さマップも揃っている
4️⃣ Textures.com(https://www.textures.com/)
- 特徴: 無料ユーザーは1日15枚までダウンロード可能
- 品質: 1K~8K、PBR対応(有料プランで高解像度が使える)
- おすすめポイント: スキャンテクスチャが豊富でリアルな質感が出せる
5️⃣ 3Dtextures.me(https://3dtextures.me/)
- 特徴: シームレスPBRテクスチャが大量にある
- 品質: 2K~4Kの無料テクスチャ
- おすすめポイント: 「Rock」カテゴリが充実
🔹 Unityにインポートする際のヒント
- シームレスなテクスチャを選ぶと、タイル状に並べても継ぎ目が目立たない
- 「Albedo(色)」+「Normal(凹凸)」+「Roughness(光沢)」を組み合わせるとリアルな質感が出る
- UnityのStandard Shader(HDRP/Lit, URP/Lit)にPBRマテリアルとして設定可能
🎯 どのサイトがおすすめ?
- 高品質で無料・商用OK → 「Poly Haven」or「AmbientCG」
- シームレステクスチャが欲しい → 「3Dtextures.me」or「AmbientCG」
- リアルなスキャンテクスチャ → 「Textures.com」
→ まずは「Poly Haven」か「AmbientCG」で探してみるのがオススメ!
欲しい質感の岩テクスチャがなかったら、他のサイトもチェックすると良いですよ。
色々なサイトがありますね。
PolyHeavenは以前使ったことがあるからここを調べてみようかな。
blenderで適当に洞窟っぽい形を作ってみる
これどうするかな…屋根は別にしようかと思ったけど、少し広めに作ればカメラも入りやすいと思うので、簡単にトンネル状のメッシュだけ作ろうと思います。
近い形状のトーラスを配置してみる。
これの下半分を削除する。穴が開くので一応周辺の頂点を選択してFキーで面を埋めておく。
あとは適当に引き延ばしておしまい。
ものすごく簡単な作りだけども、まぁ岩とか配置すればそれっぽくなるだろ…w
こんな適当でもマテリアル設定でそれっぽくなった
んーPBRテクスチャ凄いな…。


ちなみにこのテクスチャです。




交差点用やT字路用も作ってみる
まぁ穴を開けておけば直線のトンネルを繋げていけると思う。
ズレがあれば岩を配置して帳尻を合わせればいけるだろう…。
あとは適当にくっつけて調整すればいいか…。


まぁ同じような感じで交差点も作ってみた。細かい部分は岩を配置して誤魔化そう…w


ついでに岩も作ってみる
ChatGPT氏によると、ICO球を使って面をランダム選択すると適当なゴツゴツ感が作れるようです。


ICO球を追加、サブディビジョンサーフェスを追加する。
おお、なんか岩っぽくなったぞΣ(゚Д゚)これを何パターンが作って適当に配置、プレハブ化してマップチップのように使えばいいか…。
サブディビジョンサーフェスを適用してUnityに持っていく
サブディビジョンサーフェスを適用しておきます。


デシメートしたほうがいいかと思ったけど、十分ローポリなのでこれでいいかな。このままUnityに持っていきます。


おお!サクッと作った割に想像以上に岩っぽい。もうこれで十分だろ…。


トンネルいらなかったかもな…岩だけ配置して形整えるのもアリかもしれない。
つづく
案外簡単に作れて良かった。
まぁ配布されてるテクスチャの品質が高いから、適当に作ってもなんだかそれっぽくなってしまうというのがあるw
個人製作のフリーゲームくらいなら十分なんじゃないかな?
次はダンジョンのシーンを作って、シーン遷移させる感じでやっていこうかな。
もう少しいじってみます(*^_^*)
追記:続きを書きました。