3Dエディター
本チュートリアルでは、以下のGodotで3D制作を始める方法について解説します。
- 3Dエディタ内での移動方法
- 3Dオブジェクトの作成と操作方法
- カメラやライティングなど、Godotの基本的な3Dノードの使い方
準備はOK?
注意点として、3D開発は2D制作と比べて格段に複雑になる場合があります。ノードの操作やスクリプト記述、ロジック/データ管理など、多くの基本原則は同じですが、3Dではその他にも考慮すべき要素が数多くあります。そのため、最初の数プロジェクトは2Dで進めることをオススメし、ゲーム開発プロセスをしっかり理解した上で3Dに移行すると良いでしょう。このチュートリアルでは、公式Godotチュートリアルにあるような初心者向けGodot 2Dプロジェクトを既に作ったことがあることを前提としています。
3D制作を始めるための基本ガイド
Godotの大きな強みの一つは、2Dゲームと3Dゲームの両方を開発できる点です。これまで2Dプロジェクトで習得した知識(ノード、シーン、シグナルなど)の多くは3D環境でも同様に適用できますが、同時に全く新しいレベルの複雑さと機能も追加されています。まず初めに、3Dエディターウィンドウで利用できる新機能をご紹介します。
3D空間での方向把握
Godotで新しいプロジェクトを初めて開くと、3Dプロジェクトビューが表示されます。
まず最初に注目すべきは、中心に配置された3本の色分け軸です。
これらはx軸(赤色)、y軸(緑色)、z軸(青色)を表しています。これらが交わる点を 原点 と呼び、座標値は(0, 0, 0)です。なお、この配色は他のインスペクタ画面でも一貫したルールで適用されていることに気づくでしょう。
異なる3Dアプリケーションでは、座標軸の向きに関してそれぞれ独自の規約を採用しています。 GodotではY軸上方方式を採用しているため、座標軸を見た場合、x軸が左右方向を指すとき、y軸は上下方向を、z軸は前後方向を示します。 他の多くの人気3DソフトウェアではZ軸上方方式が使われています。アプリケーション間を行き来する際には、この違いを把握しておくことが重要です。
3D空間での移動操作は、マウスとキーボードを使用して行います。以下に、ビューカメラの基本コントロールについて説明します。
- マウスホイール上下:拡大/縮小表示・縮小表示切り替え
- 中ボタン+ドラッグ操作_:現在のターゲットを中心にカメラを周回移動
- Shift + 中ボタン+ドラッグ操作:カメラ視点を平行移動
- 右クリック+ドラッグ操作:その場でカメラ向きを回転
さらに、もし人気のある3Dゲームに慣れているなら、 フリールックモード が適しているかもしれません。これは Shift+F キーで切り替えできます。このモードでは以下の操作ができます。
- WASDキーを使ってシーン内を自由に移動しながら視点を変更
- マウスを使ってカメラの狙いを調整
また、左上隅の [透視投影] をクリックすることで特定の向きにカメラ視点を変更できます。
3Dオブジェクトの追加方法
では、最初の3Dノードを追加してください。2DノードがすべてNode2Dを継承しているのと同様に、
positionやrotationなどのプロパティを提供しているように、3DノードはNode3Dを継承しており、同じプロパティの3Dバージョンを提供しています。シーンに1つ追加すると、原点位置に以下のオブジェクトが表示されるでしょう。
このオブジェクトはノードではありません。3D ギズモ と呼ばれるものです。ギズモとは、空間内でオブジェクトを移動・回転させるためのツールです。3つのリングで回転操作を行い、3本の矢印でオブジェクトを各軸方向に平行移動させます。なお、リングと矢印はそれぞれ対応する軸の色に合わせて配色されています。
数分間かけて操作に慣れ、機能の使い方に慣れてください。もし迷ってしまったら、「元に戻す」機能を使ってみてください。
グローバル空間とローカル空間の比較
デフォルトでは、ギズモ制御はグローバル座標空間で動作します。オブジェクトを回転させると、ギズモの矢印は引き続き軸方向に並びます。ただし、ローカル空間を使用 ボタンをクリックすると、ギズモはボディの動きをローカル座標空間に切り替えます。
オブジェクトを回転させると、そのギズモの矢印は オブジェクト の座標軸に沿って表示されます。ワールド座標系とローカル座標系を切り替えながら操作することで、より正確に狙った位置に配置できるようになります。
トランスフォーム
ノードのインスペクターを確認してください。「トランスフォーム」セクションには、位置、回転、スケールに関するプロパティが表示されます。ギズモを使ってオブジェクトを移動させながら、これらの値が変化していく様子を観察してください。2Dと同様、これらのプロパティはノードの親要素に対する相対値として扱われます。
これらのプロパティが組み合わさることで、ノードの transform (座標変換)が定義されます。コード内でノードの空間的特性を変更する際には、transformプロパティを操作します。このプロパティはGodotが提供するTransform3Dオブジェクトです。これにはoriginとbasis2つの主要な属性があります。originはオブジェクトの位置ベクトルを示し、basisにはオブジェクトのローカル座標軸を定義する3つのベクトルが含まれます。これは ローカル空間 モード時にギズモに表示される3本の座標軸矢印に相当します。
このセクションの後半で、これらのプロパティの使い方を説明します。
メッシュ
Node2Dと同様に、Node3Dにも独自のサイズや外観はありません。2D空間では、Sprite2Dを使用してノードにテクスチャを追加するのが一般的です。一方3D環境では、代わりに
メッシュ を追加する必要があります。
メッシュとは、形状を数学的に表現したものです。これは一連の点(頂点)で構成されており、これらの頂点は線分(辺)で接続されます。複数の辺がつながることで(最低3つ以上)、最終的な立体面である ポリゴン が形成されます。
たとえば、キューブは8つの頂点、12本の辺、6つの面で構成されています。
メッシュの追加方法
通常、メッシュはBlenderなどの3Dモデリングソフトウェアを使用して作成します。 自分で作成できない場合には、ダウンロード可能な3Dモデルのコレクションも多数利用できます。 ただし、多くの場合必要なのは単なるキューブや球といった基本的な形状だけです。このような場合、Godotでは プリミティブ と呼ばれるシンプルなメッシュを作成する機能を提供しています。
MeshInstance3Dノードを Node3Dの子として追加し、インスペクターでその メッシュ プロパティをクリックします。
ここで利用可能なプリミティブのリストを確認できます。これらは便利な機能を集約した、一般的な有用形状のコレクションです。新規から「BoxMesh」を選択すると、 画面上にシンプルなキューブが表示されるはずです。
カメラ設定
シーンをキューブオブジェクトと一緒に動かしてみてください。何か見えましたか? 3Dの場合、ゲームビューポートではCamera3Dを追加しない限り何も見えません。ルートノードに1つ追加し、カメラのギズモを使ってキューブを指すように位置を調整してください。
カメラ上部にある淡い紫色のピラミッド状構造は「フラスタム」と呼ばれ、 これはカメラが捉えた視野を視覚的に表現したものです。画面左下に表示される小さな三角形の矢印に注目してください。これはカメラの「上方向」を表しています。カメラを動かしながら左上のプレビューボタンを押してみると、実際にカメラが捉えている映像を確認できます。シーンを動かしてみて、すべてが正常に動作していることを確認してください。
まとめ
本チュートリアルでは、Godotの3Dエディターの使い方、以下のノードを追加する方法を学びました:Node3D、MeshInstance3D、および Camera3D、さらにギズモを使ってオブジェクトを配置する方法についてです。また、多くの新しい専門用語も学びました。圧倒されてしまわないよう、ご安心ください。
次のセクションでは、3Dアセットをインポートして3Dシーンを構築する方法と、Godotのより高度な3Dノードの使い方を解説します。