無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 で、AnimatableBody2D ノードなどを使って「動く地形」を作成する例を紹介します。
パート2では、アニメーションによって position プロパティを変化させて、「動く地形」トップノードを左右に動かすためのキーの設定と、アニメーションの時間設定、ループ設定を紹介します。
※ GodotEngine 4.3 を使用しています。.NET 版ではありません。
※紹介するスクリプトは自己責任でお使いください。
前回の記事
前回のパート1では、動く地形を作るノード群を追加して、ポリゴンの地形を作成して、アニメーションで変化させる position プロパティトラックを追加しました。
アニメーション時間の設定
前回作成した AnimationPlayer ノードの move アニメーションの時間を設定します。
時間の設定は、 AnimationPlayer ノードをシーンドックで選択して、下パネル「アニメーション」の右上の時計アイコンの「アニメーションの長さ(秒)」の隣のテキストボックスに秒数を指定します。
例では 6 秒のアニメーションにするため 6 と入力しました。
そうすると、アニメーションの時間の経過を表す0(空白)~5までの枠が灰色の背景色に変化しました。
アニメーションの最初と折り返しと最後にキーを挿入
キーを挿入すると、挿入した時間位置に、そのときのトラックの情報が記録されます。
例では「動く地形」トップノードの位置を表す MovingTerrain.position プロパティの値が記録されます。
「動く地形」は最初、左側にあって、右側に移動してから折り返して、最初の位置に戻ることを繰り返します。
追加したい時間位置にあわせるには、下図の左上のテキストボックスで指定するか、秒数のかかれた枠内をマウスドラッグして縦線を移動させます。
時間位置を合わせた後は、追加したいトラックと交差している部分で右クリックして表示されるメニュー「キーを挿入」を選択します。
これで、上図の場合は0秒地点の position プロパティトラックにキーを挿入できました。
これにより、「動く地形」の0秒地点での位置は、上図のシーンの紫色のポリゴンが表示される場所に決まりました。
※厳密には、紫色の四角形の位置ではなく、その上位の MovingTerrain ノードの位置なので、(0, 0) を記録します。
同様に、アニメーションの最後のフレームの6秒地点にも、「動く地形」トップノードは最初と同じ位置で、キーを挿入します。
次に中間の3秒地点を選択して、ここは折り返し地点の位置を記録させます。
「動く地形」トップノードを右側に動かしてから、3秒地点でキーを挿入します。
これで、「0秒:左側、3秒:右側、6秒:左側」に「動く地形」トップノードが存在するように位置が変化して、左右に移動します。
※今回は、既定のイージングなので一定速度で移動しますが、キーを選択してインスペクターで速度の変化の仕方を変えられます。
ループの設定
アニメーションを繰り返す場合は、AnimationPlayer ノードをシーンドックで選択して、下パネル「アニメーション」の右上の「アニメーションループ」を有効にします。
キーの時間位置の調整
キーの時間位置を修正したい場合は、キーの♦をマウスドラッグしてもよいですが、キーを選択してからインスペクタードックの Time プロパティで直接、時間を入力すると簡単です。
※速度の変化の仕方も Easing プロパティから変えられます。
下パネル「アニメーション」の左上の再生ボタンを押すと、「動く地形」が左右に移動を繰り返すアニメーションが再生されました。
今回はここまで
今回は、無料・軽快な 2D / 3D 用のゲームエンジン Godot Engine 4 で、AnimatableBody2D ノードなどを使って「動く地形」を作成する例のパート2として、アニメーションによって 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
コメント