
こちらは Godot 4 でウィザードリィのようなダンジョンRPG制作するための記事になります。今回は床と壁だけのダンジョンを作成します。実際に動かして試すこともできます。ぜひ最後までご確認ください。
Godot Engine 関連の基本的な用語については、以下の別記事をご確認ください。
3D空間の土台作成

まず 3D Scene をクリックします。

すると、ツリーに Node3D という名前のノードが1つ作成されます。これがこのシーンのルートノードになります。分かりやすいように、名前を Main に変更しておきましょう。名前変更はノードをダブルクリックするか F2 を押します。

シーンの名前を変更したら シーンを保存しておきましょう。ここでは main.tscn という名前にします。ctrl + s でもよいですし、メニューバーにある Scene から Save Scene でも可能です。
MeshLibrary の作成

Godot 4にはブロックを配置するように3D迷宮を組み立てられる GridMap という便利な機能があることはご存じでしょうか? GridMap で使うパーツ集のことを Godot では MeshLibrary と呼びます。ここからは、この MeshLibrary を作成していきましょう。
エディタの一番上にある「+」タブをクリックして新しいシーンを作り、Other Node から Node3D を選択し、名前を DungeonParts にします。
本来はBlenderなどの3Dソフトで作るのが一般的ですが、今回はGodotのエディタ内だけで完結する簡易的な3D形状を使って土台を作ります。
床パーツの作成

DungeonParts ノードを右クリックし、Add Child Node を選択してください。

MeshInstance3D というノードを追加し、名前を Floor に変更します。これが3Dモデルを表示するノードです。

画面右側の Inspector にある Mesh プロパティの empty をクリックし BoxMesh を選択します。

生成された立方体をクリックして詳細を開き、Size を X: 2.0 m, Y: 0.1m, Z: 2.0m に設定します。これは、ダンジョンRPGの1マスを縦横2メートル、厚み0.1メートルとする設定です。
壁パーツの作成

床パーツと同じように DungeonParts にもう一つ MeshInstance3D を追加し、名前を Wall にしてください。Mesh プロパティで BoxMesh を選択します。立方体をクリックし Size を X: 2.0 m, Y: 2.0m, Z: 2.0m に設定します。これは、ダンジョンの1マスの端に立つ高さ2メートルの壁です。
MeshLibrary としてエクスポート

メニューバーにある Scene の Export As … から MeshLibrary… を選択します。

ファイル名を dungeon_assets.tres にして保存します。これで簡単なパーツができました。
GridMap を使って迷宮を描く

Main シーンにパーツを配置していきます。Main シーンを開き、Main ノードを右クリックして Add Child Node を選択します。別ウィンドウが開くので GridMap を追加してください。

GridMap の Inspector にある Mesh Library 横の empty から Load を選択してください。Load を選択するとファイル読み込み画面に遷移するので dungeon_assets.tres を読み込んでください。

GridMap の Inspector にある Cell 欄の Size が X:2.0, Y:2.0, Z:2.0 となっていることを確認してください。これで上記のように作成した床パーツと壁パーツを使って、ダンジョンを作成することができます。
すべてのパーツを (2, 2, 2) のセル中心に完全に吸着させます。床パーツもマスの中心に配置され、少し浮いたようになってしまいますが、それで正常です。カメラの高さで調整します。
パーツは後の工程でダンジョンRPGっぽいものに差し替えます。扉パーツや階段パーツについても同様に、あとで対応することになります。
コメント