見出し画像

【Unity】ProBuilderで遺跡をブロックアウトする(中空トンネル・T字路・広間をメニュー操作だけで作る)


はじめに

主旨

Unity入門書は読み終えたけれど、その先の技術書がない!
そんな方のための「初級から中級への架け橋」を目指す連載記事です。
3Dアクションゲームを開発して行きます🎮

  1. ✅ [公開済み] 第1弾:『【Unity】人型モデルを動かす(Blend Tree・CharacterController・Input Systemで作るTPS移動の基礎)』

  2. ✅ [公開済み] 第2弾:『【Unity】バージョンアップ完全ガイド(移行手順・エラー対応・容量節約まで)』

  3. 🆕 【今回の記事】 第3弾:『【Unity】ProBuilderで遺跡をブロックアウトする(中空トンネル・T字路・広間をメニュー操作だけで作る)』

  4. 📅 [執筆予定] 第4弾:『光と霧 — 暗所ライティング・ランタン・コルーチン・フォグ・ポスプロ・プローブ・環境音』

  5. 📅 [執筆予定] 第5弾:『一人称と『調べる』 — 自作Input ActionsとRaycastインタラクション』

  6. 📅 [執筆予定] 第6弾:『文字は世界の一部 — TMP日本語化・多言語対応・記帳』

  7. 📅 [執筆予定] 第7弾:『データで仕掛けを量産する — ScriptableObjectカタログと抽選機(心臓部) 』

  8. 📅 [執筆予定] 第8弾:『迷いの回廊 — ループ・テレポート・導き』

  9. 📅 [執筆予定] 第9弾:『番人ゴーレム — 巡回AIと、隠れて逃げるアクション』

  10. 📅 [執筆予定] 第10弾:『ゲームの骨格 — シーン・セーブ・音』

  11. 📅 [執筆予定] 第11弾:『演出と結末 — コルーチン演出・推理ボード・マルチエンディング』

  12. 📅 [執筆予定] 第12弾:『仕上げと公開 — 調整・ビルド・itch.io公開』

なお、筆者は入門書を読み終えたばかりの初心者です。
自身の備忘録も兼ね、調べながら書いておりますため、何卒、あたたかい目で見守っていただければと思います🐣

みなさんこんにちは。連載「初級から中級への架け橋」シリーズ、今回で第3弾です。

本連載では「古代遺跡内の3Dダンジョンゲーム」を作りますので、その骨組み部品を組み上げます🏛️

『ProBuilder』という公式ツールを使って、中を歩ける通路、枝分かれするT字路、そして探索のゴールになる広間。この3つの部品を作り、Prefabにして使い回せるようにするまでが今回のゴールです。

👩‍💻 こんな方に向けた内容です
・第2弾までを読んで、TPS移動までは作れた方
・Unity上だけで手軽にステージの骨組みを組んでみたい方
・ProBuilder 6.x系(6.1.2含む)で刷新された操作方法を知りたい方

🛠️ 動作検証環境
・macOS Tahoe 26.5.1(ショートカットはCmd表記、Windowsの方はCtrlに読み替えてください)
・Unity 6.5(6000.5.5f1)+ URP(Universal Render Pipeline)
・URPパッケージ:17.5.0(Unity 6.5にバンドルされている版)
・VRoid Studio製アバター(VRM0.x、UniVRM v0.131.2、Package Manager経由)
・Starter Assets - ThirdPerson | URP 1.1.7(アニメーションのみ流用)
・Cinemachine 3.1.7
・ProBuilder 6.1.2(本記事にて導入します)
※ Unityエディタは日本語化して使用(メニュー名は日本語表記)


本記事の構成

本記事の構成
  1. ProBuilderの導入と、URP用サンプルをめぐる注意点

  2. 図形を作る2つの方法と、通路(4×3×10)の作成

  3. ツールコンテキストとTool Settings 〜 編集モードのボタンはどこにあるのか 〜

  4. 面の押し出しと、ProBuilder Actionsオーバーレイ

  5. 法線を反転して通路を中空のトンネルにする

  6. T字の分岐点と、宝物庫となる広間

  7. 床の高さを揃えて、3つの区画をPrefab化する

上記、7つの章の構成となってます。


ProBuilderの導入と、URP用サンプルをめぐる注意点

ProBuilderとは

Unityの画面内で、直接3Dモデルを作ったり、形をいじったりできる無料の公式ツールです。

ProBuilderの主な役割

本格的な3Dアセット(Asset Storeの綺麗なモデル等)を導入する前に、まずはProBuilderのシンプルなブロックで仮の地形を組み、ゲームとして遊べるかをテストします。この工程をグレーボクシングと呼びます。

この「本格的なアセット導入前の『プロトタイプ構築』(グレーボクシング)」をするための機能群がProBuilderとなります。


ProBuilderをインストールする

まずは遺跡の「骨組み」を作ります。3Dモデリングソフトを使わなくても、Unityの中だけで箱や壁をサッと組めるのがProBuilderです。

  1. (上部メニュー)「ウィンドウ」→「Package Management」→「パッケージマネージャー」。

  2. 左上のドロップダウンから「Unity レジストリ」を選び、検索欄に「ProBuilder」と入力し、出てきたProBuilderを選んで「インストール」押下。

なお、Unity 6.5(6000.5)向けにリリースされているProBuilderのバージョンは6.1.2です。


【要注意】「URP用サンプルのインポート」は、もう必要ありません

ProBuilderのインストール記事を検索すると、ほぼ必ずこう書かれています。

URPプロジェクトの場合は、パッケージマネージャーのSamplesから「Universal Render Pipeline Support」をインポートしてください。インポートしないとオブジェクトがピンク(マゼンタ)になります。

しかし、ProBuilder 6.1.2の「サンプル」タブを開いたところ「Editor Examples」と「Runtime Examples」の2つしかなく、ProBuilderのURP用サンプルは存在しません。

⚠️ ややこしいことに、Unity公式マニュアルの「Installing ProBuilder」ページには、今も「URPまたはHDRPを使っている場合は、対応するURP/HDRP用シェーダーもインポートする必要があります」という旧手順が残っています。

ProBuilder 6系で、Built-in用・URP用・HDRP用に分かれていたシェーダーが1本に統合されており、パイプラインごとに別のサンプルを配る必要がなくなったので、URP/HDRP用サンプル自体が廃止されたというわけです。

■ 自分の目で確かめる
果たして本当に大丈夫か?実際に箱を1つ作って確認してみましょう。

「ゲームオブジェクト」→「ProBuilder」→「キューブ」を選ぶと、既定サイズの立方体がシーンに生成されます。

ピンクではなく普通のグレーで表示されていれば成功です。
念のため中身も見てみましょう。キューブを選択してインスペクターを下にスクロールすると、Mesh Rendererのマテリアル欄に ProBuilderDefault が入っています。

📝 これをクリックすると、実体はプロジェクトウィンドウの「Packages > ProBuilder > Content > Resources > Materials」にあり、パッケージ本体に最初から同梱されているのが分かります。


図形を作る2つの方法と、通路(4×3×10)の作成

図形を作る2つの方法

現在のProBuilderで図形を作る経路は2つあり、用途が違います。

■ 方法1:既定サイズで即座に作る

「ゲームオブジェクト」→「ProBuilder」→「キューブ」

さきほど確認用に使った経路ですね。1辺1メートルの立方体がすぐ生成されます。あとからインスペクターで正確な寸法を打ち込めるので「幅4メートル、高さ3メートルの通路」のように数値が決まっている場合は、こちらが早いです。

■ 方法2:シーンビューでドラッグして描く

「ツール」→「ProBuilder」→「Editors」→「Create Shape」

シーンビューに「Shape Settings」というオーバーレイが表示されます(「キューブ」を選ぶとNew Cube)。ここでサイズを指定しながら、シーンビュー上で直接ドラッグして図形を描けます。「だいたいこのへんに、このくらいの大きさで」と感覚的に配置したいときに便利です。

📝 ツールを終了するには
Create Shapeツールを起動すると、上のオーバーレイが出たまま「図形を描くモード」に入ります。作らずにやめたいときは、ESCやWキー(移動ツール)などを押して通常のツールに戻ってください。オーバーレイも一緒に消えます。


通路を作る

では遺跡の通路を作ります。

「ゲームオブジェクト」→「ProBuilder」→「キューブ」

方法1の方で作ります(※ 先ほど作成したものが残っていれば流用可)

  1. 名前を「Corridor_Straight」にする。

  2. 「Pro Builder Shape」のサイズに『X:4 / Y:3 / Z:10』と入力。幅4メートル / 高さ3メートル / 長さ10メートルの、通路にちょうどいい細長い箱にします。

  3. ツールコンテキストを『ProBuilder』に切り替える(メッシュを編集する前に必要)。

📝シーンビュー左側のツールオーバーレイ、その一番上にある四角いアイコン+▾のボタンをクリックします。


ツールコンテキストとTool Settings 〜 編集モードのボタンはどこにあるのか 〜

編集モードを切り替える

ProBuilderに切り替わったかどうかは、見た目で確認できます。ドロップダウンのチェックマークが「ProBuilder」に移り、オーバーレイ最上部のアイコンもProBuilderのもの(オレンジ色の格子)に変わっていれば成功です。

さて、ここからが本題です。頂点や面を選択するための編集モードボタンは、いま操作した左の縦バー(Tools オーバーレイ)ではなく、「Tool Settings」という別のオーバーレイになります。


Tool Settingsオーバーレイを表示する

シーンビューに表示するオーバーレイは「Overlay Menu」で切り替えます。

シーンビュー右上の「⋮」をクリックし、「Overlays」→「Overlay Menu」を選びます。開いた一覧の中の「Tool Settings」にチェックを入れると、シーンビューの上端に横長のバーが現れます。「中心▾」「ローカル▾」といった見慣れた項目の右に、ProBuilder用のボタンが並んでいるはずです。

📝 「Tool Settings」にチェックを入れても、ProBuilder用のボタンが出ない場合、オブジェクトを選択してGキーを押してください。ツールコンテキストがゲームオブジェクトに戻っているのが原因で、Gキーを押すとProBuilderの編集モードに入り直せます。

Tool Settingsに並ぶボタンは、大きく2種類に分かれます。

  1. 左の3つは編集モード(頂点・辺・面のどれを選択するか)の切り替え。

  2. 右の2つは選択に関する設定です。こちらは押しても見た目が変わりませんが、正常です。マウスを乗せるとツールチップで説明が出ます。

・Hidden Element Selection(隠れた要素の選択)
他の面に隠れていたり、裏を向いていたりする面も選択対象に含めるかどうか。既定はオン
・Drag Selection Mode(ドラッグ選択モード)
矩形ドラッグで囲ったとき、「完全に囲まれた要素だけ」を選ぶか、「少しでも触れた要素」まで選ぶか。既定はIntersect(触れたら選択)


面の押し出しと、ProBuilder Actionsオーバーレイ

面を押し出して空間を広げる

ProBuilderの真骨頂が「面の押し出し」です。準備が整ったので、実際にやってみましょう。

  1. ツールコンテキストがProBuilderになっていることを確認する

  2. Tool Settingsオーバーレイで面モードにする(左から3番目のボタン)

  3. 押し出したい面をクリックして選択する

  4. ⌘E(WindowsはCtrl+E)を押す

シーンビューの右下に「Extrude Faces」という設定オーバーレイが現れます。

・Extrude By:押し出す方向の決め方。既定は「Face Normal」(面の向いている方向)
・Distance:押し出す距離。既定は0.5
・Live Preview:オンにすると、値を変えた瞬間に結果がシーンビューに反映されます

数値を入れて「Confirm」を押せば確定です。Distance に 2 と入れてみれば、2メートル伸びるはずです。

確認できたら ⌘Z(WindowsはCtrl+Z)で元に戻しておいてください。この通路は10メートルちょうどにしたいので、長さは変えずにおきます。

💡 押し出しは、面を選んだまま移動ツールで引っぱる方法もあります。こちらは数値を打たずに感覚で伸ばせるので、ブロックアウト段階では重宝します。


ProBuilder Actions(アクション)オーバーレイを表示する

ここから先のモデリングは、キーボードショートカットを一切使わず、メニューとオーバーレイのボタンだけで進めます。

📝 ProBuilderのショートカットにはUnity標準の機能とキーが競合しているものがあるためです。競合を解消しようとすると、今度は別の機能が使えなくなったりするので、かえって面倒なので、本記事では ProBuilder Actionsを使用します。

シーンビュー右上の「⋮」をクリックし、「Overlays」→「Overlay Menu」を選びます。「オーバーレイを有効にする」にチェックを入れます。

また、下ツールバーのボタンよりProBuilder Actionsの表示 / 非表示の切り替えができます。


法線を反転して通路を中空のトンネルにする

通路をくり抜いて中空にする

「内部を歩ける遺跡」を作りたいので、Corridor_Straight を中空のトンネルにする必要があります。

■ 法線をすべて内向きにする

面モードにし、いずれかの面をダブルクリックします。これでそのメッシュの全面が選択されます

「Flip Face Normals」押下。これは『面の表と裏をひっくり返す』機能です(もう一度押せば元に戻ります)。

📝 3Dの面には表と裏があり、Unityは表側しか描画しません(裏を向いた面は透明に見える)。この「どちらが表か」の情報が法線です。Flip Face Normals は、選択した面の表裏を反転させます。

何故、このようなことをするかというと、面は1枚の紙のようなもので、片面しか描画されないからです。

もし、両端を取ってトンネル状にした場合は、以下のようになります。

法線が外向き1

法線が外向き(初期状態)の場合、外から壁が見える。中に入ると壁が消えて外が丸見え

法線が外向き2

トンネルの外、外面しか壁が見えない。

法線が内向き

法線が内向き(今の状態)であれば、中から壁が見える。外からは透けて中が見える。

遺跡の内部を歩くのが目的なので、内向きが正解です。外から見て透けるのは、その代償ということになりますが、今回「遺跡の内部」のシーンなので問題ありません。

■ 両端の面を削除して通路を開通させる
このままだと前後もふさがった密室なので、両端を開けます(両端を取ってトンネル状にします)。

面モードのまま

手前の端面をクリック → 「Delete Faces」(選択した面を削除)

向こう側の面も削除しましょう。
一度、片方を消せば筒抜けになるので、反対側も選びやすくなります。

または、シーンビューの視点を回して、反対の端が見える位置にしても良いでしょう。

手前と向こうの2つの面を削除し、トンネル状にした状態。
先ほど「Flip Face Normals」で『面の表と裏をひっくり返す』しているので、外面は透明となり、内面は描画されます。

繰り返しになりますが「面は1枚の紙のようなもので、片面しか描画されない」からです。

面をダブルクリックして、面全体選択したら、このようみ見えます。

ゲーム開始「▶」で確認。先ほどの説明通り、トンネル状となり、内部の面の描画もされてます(内部の壁が透明ではない)

📝 外側から歩くと壁を貫通する
Unity公式マニュアルに「コリジョンメッシュの面は片面(one-sided)である。つまり、一方向からは通り抜けられ、反対方向からはぶつかる」と明記されています。法線を内向きにしたので、内側からはきちんと壁として機能し、外側からは素通りになります。今回は内部を歩くので問題ありません。


T字の分岐点と、宝物庫となる広間

分岐点を作る(T字路)

通路が枝分かれするT字の分岐点を作ります。断面は通路と同じ内寸に揃えます。

「ゲームオブジェクト」→「ProBuilder」→「キューブ」で新しいキューブを作り、名前を Junction_Tにします。Pro Builder Shape のサイズを X:4 / Y:3 / Z:4 にします。

通路と同じ手順で中空化します(面モードでダブルクリック → Flip Face Normals)。前・左・右の3面を、視点を回しながら1面ずつ選んで Delete Faces。奥の1面は壁として残します

ゲーム開始「▶」で確認。
『T字の分岐点』の部品なので、前・左・右の3面がないはずです。

💡 断面を通路と同じ4×3で揃えておくのが肝心です。ここが揃っていないと、連結したときに段差や隙間ができて、あとから直すのが面倒になります。

⚠️ 通路と分岐をぴったり突き合わせると、面が同じ位置で重なってちらつき(Zファイティング)が起きることがあります。接続する部分は「両側の端面をどちらも削除して、開口だけにする」ときれいになります。位置合わせはインスペクターのTransformに数値を入れると正確です。


広間を作る(宝物庫)

探索のゴールになる広間を作ります。天井が高く、広い部屋です。

「ゲームオブジェクト」→「ProBuilder」→「キューブ」で新しいキューブを作り、名前を TreasureHallにします。Pro Builder Shape のサイズを X:12 / Y:5 / Z:12 にします。

  1. 同じ手順で中空化します(面モードでダブルクリック → Flip Face Normals)。

  2. 入口にしたい壁1面を選択して Delete Faces。

  3. ゲーム開始「▶」で確認。入り口の1面がないはずです。

この広間は、第7章のリフレクションプローブの見せ場であり、探索のゴール地点でもあります。連載の後半(第7弾・第9弾)では、宝箱のギミックを置いたり、番人が見回る舞台にもなります。

📝 削除するのは壁1枚まるごと(幅12m × 高さ5m)です。
法線反転方式では壁1枚がひとつの面なので、部分的に開けることはできません。広間で振り返ると入口から外が見えてしまいますが、ブロックアウトでは正常な状態です。次章で環境光を落とし、第5章でフォグをかければ目立たなくなります。

💡 本記事では、初学者向けにあえてこのようにしてます。
クリック1回で済むので、面を分割するような難しい操作を覚えずに先へ進めます。入口が広いぶん、動作確認で何度も出入りするときに引っかかりませんし、シーンビューから中の様子も見やすいままです。

💡 狭い出入口だけを開けたい場合(応用編)
壁1面はひとつの面なので、そのままでは「幅4mの通路分だけ開ける」ことができません。開けたい場合は、ProBuilder Actions の Cut Tool を使って壁面に開口の輪郭を描き、「Complete」で面を確定してから、中央の面を Delete Faces します。あるいは「ジオメトリ」→「Insert Edge Loop」で壁を縦に分割してから中央を消す方法もあります。最初は「1面まるごと開口」で十分なので、慣れてきたら挑戦してみてください。


床の高さを揃えて、3つの区画をPrefab化する

床の高さを揃える

3つの区画(通路、T字、広場)ができました。並べる前に、床の高さを揃えておきましょう。ここが揃っていないと、連結したときに段差ができてしまいます。

やることは単純で、インスペクターの「位置」のYに「高さの半分」を入れるだけです。

なぜ半分なのかというと、ProBuilderのキューブは中心を基準に作られるためです。高さ3の通路なら、中心から床までがちょうど1.5。位置Yを1.5にすれば、床が Y=0 の高さに来ます。第1弾で作った Ground と同じ高さなので、遺跡の外から中へ、段差なく歩いて入れるようになります。

通路
T字
広場

💡 XとZは今は気にしなくて大丈夫です。本記事の段階で揃えるのはYだけです。


区画Prefabにしてモジュール化する

いま作った「通路」「分岐点」「広間」を、それぞれ Prefab(プレハブ=使い回せる部品) にしておきます。

作り方は簡単で、Assets の下に Prefabs フォルダを作り、ヒエラルキーから Corridor_Straight・Junction_T・TreasureHallをそこへドラッグ&ドロップするだけです。

こうしておくと、あとから「通路をもう1本足したい」「分岐を増やしたい」というときに、Prefabをドラッグして並べるだけで済みます。レゴブロックを組むような感覚ですね。第7弾で迷路の構造を作り込むときにも、この「区画Prefab」がそのまま効いてきます。

なお、今後の作業で「ProBuilder Actions」オーバーレイが邪魔な時は、下ツールバーのボタンにて表示/非表示の切り替えができます。

いいなと思ったら応援しよう!

辛島信芳 ここまで読んでくれてありがとうございます!記事は基本的に無料で出していくので、気が向いたら応援してもらえると嬉しいです☕