Godot Engine 関連の記事第2回目になります。
今回は簡単なプロジェクトの作成方法について、自分なりに調べた内容をまとめてみます。
最初にプロジェクトの作成を行います。
ダイアログが表示されるので、プロジェクト名、プロジェクトパスを入力します。
※プロジェクトパスは予め作成しておく必要があります。
レンダラーは、Open GL ES 3.0, 2.0 のどちらでも構いませんが、今回はデフォルト値のまま、3.0を選択した状態にしておきます。
ここまでの内容を入力し、作成して編集をクリックします。
次にシーンと言われるものを作成していきます。
シーンには大きく分けて2Dシーンと3Dシーンがありますが、今回は3Dシーンを作成していきます。
これで、新しいシーンが作成されるます。
次に、作成したシーンにノードというものを追加していきます。
初期状態では、Spatial(空間)ノードがルートノードとして設定されています。
以降の作業は、Spatialノードに子ノードを追加していくことになります。
ノードの新規作成画面が表示されます。 Godotで使用されるノードの種類は非常に多いので、検索を行い追加したいノードを探します。 bodyのキーワードで検索を行い、出てきた結果より、StaticBodyを選択します。
今回追加した StaticBody ですが、これは PhysicsBody(物理ボディ)と呼ばれる種類のノードで、物体の性質を表すためのノードになります。
PhysicsBodyには、以下4種類のノードがあります。
名称 | 説明 |
---|---|
RigidBody | 物理の影響を自動で受ける物体に使用する。 重力や衝突などの影響を受けて動く。 |
KinematicBody | 物理の影響を自動で受けない物体に使用する。 プログラムを用いて物理の挙動や物理を無視した挙動を行うことは可能。 |
StaticBody | 動かない物体(例えば地面や壁など)を作成する際に使用する。 |
PhysicalBorn | すいません、勉強不足でこれについてはよくわかりません。 |
今回は、床の部分になるのでStaticBodyを採用しています。
次にStaticBodyの子ノードとしてコリジョンノードを作成します。
コリジョンノードとは、物体の形状を表すためのノードになります。当たり判定エリアと言えば分かりやすいでしょうか。
CollisionShape が追加されたら、次にシェイプの形状を設定します。
画面右のプロパティ設定より、Shapeをクリックし、出てきた一覧より新規 BoxShapeをクリックします。
ここまでで、Body(物体の性質)、Collision(物体の形状) を追加してきましたが、最後に物体の見た目である VisualInstanceノードを追加します。
多くの場合、物体の見た目に関しては Godot単体で作り込むことは難しいので、Blenderなどの3Dモデリングソフトで作成されたオブジェクトを読み込むことになるのですが、今回は簡単な立方体で全てを表現していきます。
CSGBoxの Material(質感)を設定します。
Material には様々な設定項目があるのですが、今回は物体の色のみを変更します。
プロパティのMaterialをクリックして、出てきた一覧から新規 SpatialMaterialを選択します。
先程述べた通り、今回は物体の色を変更しますので、プロパティの項目からAlbedo→Colorの項目をクリックすると、色選択ダイアログが表示されるので、好みの色を設定します。
(画面では緑色を選択してみました)
作成した物体を床らしく平たく大きく変更します。
CollisionShape を選択肢、プロパティのTransform→Scaleを変更します。
※Transformプロパティは、StaticBody や CSGShape にもありますが、必ず CollisionShape の Transform を変更するようにしてください。
これで床らしい形状になったかと思います。
ここまでで、床オブジェクトの作成が完了しました。
次に、床以外の物体と、実行画面を表示するために必要なカメラを追加していきます。
床以外の物体を追加していきます。
基本的な作成方法は床と同じになるので、詳細は省略していきます。
上から落ちる立方体を追加します。
床との違いは、Body に、StaticBody ではなく、RigitBody を使用しています。
(重力で上から落ちるようにしたいため)
物体についている緑の矢印をドラッグするか、
RigitBody のプロパティで、Transform→TranslationのY座標を変更し、物体が上の方に持っていきます。
先程作成した立方体が落下したときに滑り落ちるための台も設置します。
こちらは床と同じく StaticBody で作成します。
CollisionShape のプロパティからTransform→Rotation Degreesを変更し、傾きをつけます。
また、Body のプロパティで、Transform→TranslationのY座標を変更し、物体が床にめり込むように調整しています。
最後にカメラを追加します。 カメラが無いと実行したときに何も表示されないので、カメラは必ず1つは追加しておく必要があります。
カメラの Transform プロパティを変更し、良い位置・良い角度に移動します。
編集画面の左上にあるプレビューチェックボックスをチェックすると、編集画面がカメラの視点になるので、どのように見えるかチェックしながら調整していくのが良いです。
ここまでで、今回やりたいことはほぼ出来ましたので、実際に動かしてみます。
これは特にやる必要はないのですが、各ノードの名称がデフォルトのままになっているので、何がどのオブジェクトなのか、わかりづらくなっています。
なので、Body ノードの名称をわかりやすく変更します。
対象のノードをクリックすることで、名前を変更することが出来ます。
日本語名称だと何かとトラブルの元にになるので、嫌う方もいるかと思いますが、今回は分かりやすさ重視で日本語名称に変更しています。
いよいよ実行になります。
新しい Window が開き、プロジェクトが実行されます。
上の方に配置した RigidBody の立方体が落下して、滑り台を滑り落ちていくのが分かると思います。
たったそれだけのプロジェクトですが、今回は最初なんで多めに見てください💦
以上、簡単なプロジェクトの作成方法について紹介しました。
今回は最初という事もあり非常に簡単なものでありましたが、Godot でのプロジェクト作成のイメージが何となく掴めてもらえたら幸いです。
次回以降は今回作成したプロジェクトをベースに少しずつカスタマイズする方向で進めていく予定です。
今回作成したサンプルはGitHubに登録してあります。
https://github.com/karasu-jp-com/godot_test001