無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 で、AnimatableBody2D ノードなどを使って動く地形を作成する例を紹介します。
パート1では、動く地形に用いる AnimatableBody2D, Polygon2D, CollisionPolygon2D, AnimationPlayer ノードをステージのシーンに追加して、ポリゴンの地形を作成して、アニメーションで変化させる position プロパティトラックを追加します。
※ GodotEngine 4.3 を使用しています。.NET 版ではありません。
※紹介するスクリプトは自己責任でお使いください。
前回の記事
前回は、StaticBody2D、CollisionPolygon2D、Polygon2D ノード群で、下からジャンプしてのることができるすり抜け床を作成します。
ステージのシーンに動く地形のトップノードを追加
前回以下のようなステージを StaticBody2D, Polygon2D, CollisionPolygon2D ノード群で作成しました。
そのステージのシーンに、空中を左右に移動する四角形の「動く地形」を追加します。
「動く地形」は、以下のノード構成です。
- AnimatableBody2D : アニメーションする剛体(自身は衝突しても影響を受けない)
- CollisionPolygon2D : ポリゴンの当たり判定領域
- Polygon2D : ポリゴンの表示
- AnimationPlayer : 位置の変換のアニメーション
ステージのシーンのルートノードを右クリックして表示されるメニュー「子ノードを追加」を選択します。
最初に、「動く地形」ノード群のトップノードの AnimatbleBody2D を追加します。
※検索ボックスを用いると探しやすいです。
ノードの名前は MovingTerrain に変更します。
※ノードの名前を変えるには、ノードを右クリックして表示されるメニュー「名前の変更」を選択します。
次に、先ほど紹介した構成の通りに、MovingTerrain ノードの下に子ノードを追加します。
MovingTerrain ノードの下に、CollisionPolygon2D, Polygon2D, AnimationPlayer 子ノードを追加しました。
Polygon2D ノードの表示するポリゴンを設定
作成した子ノードのひとつ、 Polygon2D ノードをシーンドックで選択して、 2D ワークスペースで、クリックするとポリゴンの頂点を追加でき、最後に始点をクリックするとポリゴン図形が完成します。
※ 2D ワークスペースはウィンドウ上部で 2D を選択してください。
一定間隔で頂点を追加したい場合は、ツールバーのグリッドスナップを有効にすると簡単です。
ポリゴンの作図や、グリッドスナップについては、以下の記事を参照してください。
「動く地形」をわかりやすくするために色を変更します。
表示するポリゴンの色は、 Polygon2D ノードをシーンドックで選択して、インスペクタードックの Color プロパティで色を選択すると変えられます。
以上で「動く地形」の見た目が完成しました。
「動く地形」ノードが移動するアニメーションを設定
次に「動く地形」ノード全体の位置をアニメーションさせて移動させるために、左右に移動するアニメーション要素を追加して、位置を変更するためのトラックをそのアニメーション要素に追加します。
アニメーションの要素を追加するには、 AnimationPlayer ノードをノードシーンで選択してから、下パネル「アニメーション」の上部の「アニメーション」メニューから「新規」を選択します。
左右に移動させるアニメーション要素の名前は move にしました。
AnimationPlayer ノードに、アニメーション要素 move を追加したら、そのアニメーション要素でアニメーションさせる対象を追加します。
アニメーションさせる対象は、トラック単位で追加します。
下パネル「アニメーション」の左上の「トラックを追加」メニューから、今回はノードの位置を表す Node2D.position プロパティを、プロパティトラックを用いて追加します。
「アニメーションするノードを選択」ダイアログが表示されたら、「動く地形」のトップノードの MovingTerrain ノードを選択して OK ボタンを押します。
引き続き、 MovingTerrain ノードのどのプロパティをアニメーションさせるかを選択します。
今回は左右に移動するために、位置を表す position プロパティを選択して「開く」ボタンを押します。
※検索ボックスを使うと探しやすいです。
「トラックを追加」の下側に、選択した MovingTerrain.position プロパティが、アニメーションで変化させるトラックとして追加されました。
※表示されない場合は、下パネル「アニメーション」の下側のフィルターアイコンが有効になっていないか確認してください。
今回はここまで
今回は、無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 で、AnimatableBody2D ノードなどを使って「動く地形」を作成する例のパート1として、「動く地形」に用いる AnimatableBody2D, Polygon2D, CollisionPolygon2D, AnimationPlayer ノードをステージのシーンに追加して、ポリゴンの地形を作成して、アニメーションで変化させるノードの position プロパティトラックを追加しました。
参照サイト Thank You!
- Godot Engine – Free and open source 2D and 3D game engine
- Godot 4 Moving Platforms – YouTube
- AnimatableBody2D — Godot Engine (4.x)の日本語のドキュメント
- Polygon2D — Godot Engine (4.x)の日本語のドキュメント
- CollisionPolygon2D — Godot Engine (4.x)の日本語のドキュメント
- AnimationPlayer — Godot Engine (4.x)の日本語のドキュメント
- Using CharacterBody2D/3D — Godot Engine (4.x)の日本語のドキュメント
- CharacterBody2D — Godot Engine (4.x)の日本語のドキュメント
- Sprite2D — Godot Engine (4.x)の日本語のドキュメント
- CollisionShape2D — Godot Engine (4.x)の日本語のドキュメント
記事一覧 → Compota-Soft-Press
コメント