ゲームエリアの設定¶
この最初のパートでは、ゲームエリアを設定します。さっそく、スタートアセットをインポートして、ゲームシーンを設定しましょう。
このチュートリアルで使用する 3D モデルとサウンドを含む Godot プロジェクトを用意し、インデックスページにリンクしています。まだの方は`Squash the Creeps assets <https://github.com/GDQuest/godot-3d-dodge-the-creeps/releases/tag/1.0.0>`からアーカイブをダウンロードしてください。
ダウンロードしたら、.zip アーカイブをコンピュータで解凍します。Godotプロジェクト・マネージャーを開き、Importボタンをクリックします。
インポートポップアップで、作成したばかりのディレクトリsquash_the_creeps_start/
へのフルパスを入力します。右側の 参照(Browse)ボタンをクリックしてファイル ブラウザを開き、フォルダに含まれるproject.godot
ファイルに移動することも可能です。
インポートして編集(Install & Edit)をクリックすると、エディタのプロジェクトが開きます。
スタート プロジェクトには、アイコンと 2 つのフォルダーart/
とfonts/
があります。そこには、ゲーム内で使用するアートアセットと音楽があります。
player.glb
とmob.glb
という二つの3Dモデルとこれらのモデルに属するいくつかの素材、そして音楽トラックです。
プレイ可能エリアの設定¶
プレーンなNodeをルートとして、メイン シーンを作成します。シーン(Scene)ドックで、左上の "+" で表される 子ノードを追加(Add Node)ボタンをクリックして、 Nodeをダブルクリックします。このノードに "Main"という名前を付けます。また、ノードをシーンに追加するには、 Ctrl + a (macOSでは Cmd + a) を押すことも可能です。
シーンをMain.tscn
として保存します。 Ctrl + s (macOS では Cmd + s) を押してしてください。
まず、キャラクターの落下を防ぐための床を追加します。床、壁、天井のような静的な衝突物(コライダー"collider")を作成するには、StaticBodyノードを使用することができます。これらは、衝突領域を定義するために CollisionShape子ノードを必要とします。Mainノードを選択し、StaticBodyノード、CollisionShapeを追加してください。そしてStaticBodyの名前をGroundに変更します。
CollisionShapeの横に警告サインが表示されているのは、その形状を定義していないためです。このアイコンをクリックすると、詳細情報を提供するポップアップが表示されます。
シェイプを作成するには、CollisionShapeを選択して、インスペクター(Inspector)に移動し、Shapeプロパティの隣にある[空]([empty])フィールドをクリックします。新規Box Shapeを作成します。
ボックスの形状は、平らな地面や壁に最適です。その厚さによって、動きの速い物体でも確実にブロックできます。
ボックスのワイヤフレームが、ビューポートに3つのオレンジ色の点で表示されます。これらをクリック&ドラッグして、形状の大きさをインタラクティブに編集できます。また、インスペクタでサイズを正確に設定することもできます。BoxShapeをクリックし、リソースを展開します。その Extents で X 軸に 30
、Y軸に1
、Z軸に30
を指定します。
注釈
3Dでは、移動とサイズの単位はメートルです。ボックスの合計サイズは、その範囲の 2 倍です。地面の平面は60
メートル掛ける60
メートルで、高さは2
メートルです。地面の平面はX軸とZ軸で定義され、Y軸は高さを表します。
衝突形状は目に見えません。それに付随する視覚的な床を追加する必要があります。Groundノードを選択し、MeshInstanceをその子として追加してください。
インスペクター(Inspector)で、Meshの隣のフィールドをクリックし、CubeMeshリソースで可視キューブを作成します。
もう一度言いますが、デフォルトでは小さすぎます。キューブ アイコンをクリックしてリソースを展開し、Sizeを 60
、2
、60
にします。キューブ リソースは extents ではなく size で動作するため、これらの値を使用して、コリジョン形状に一致させる必要があります。
ビューポートにグリッドを覆う広い灰色の壁と、青と赤の軸が表示されるはずです。
床のグリッドを見ることができるように、地面を下に移動させます。Groundノードを選択し、 Ctrl キーを押しながらグリッド スナップをオンにして (macOS では Cmd) 、Y 軸をクリックして下にドラッグしてください。移動ギズモにある緑色の矢印がそれです。
注釈
上の画像のように 3D オブジェクト マニピュレーターが表示されない場合は、ビューの上のツールバーで 選択モード(Select Mode) がアクティブになっていることを確認してください。
地面を1
メートル下に移動させます。ビューポートの左下隅にあるラベルは、ノードをどれだけ平行移動させたかを示しています。
注釈
Groundノードを下に動かすと、両方の子ノードも一緒に移動します。MeshInstanceまたは CollisionShapeではなくGroundノードを移動していることを確認してください。
指向性ライト(directional light)を追加して、シーンがグレー一色にならないようにしましょう。Mainノードを選択し、DirectionalLightをその子として追加してください。これを移動と回転させる必要があります。マニピュレーターの緑の矢印をクリック&ドラッグして上に移動し、赤い円弧をクリック&ドラッグしてX軸を中心に回転させ、地面が照らされるようにします。
インスペクター(Inspector)で、Shadow -> Enabledにチェックを入れて、オンにします。
ここまでで、プロジェクトは次のようになっているはずです。
これが出発点になります。次のパートでは、プレイヤーのシーンとベースの動きを作ります。