【初心者向け】キャラクターの歩行と停止のガイド

初めてチュートリアルを書きます。できるだけ多くの人に理解してもらえるようにしますが、言語能力が限られているためご了承ください。さて、免責事項はこの辺りにしておきましょう。

この記事をご覧になっている皆様は、すでに出来立てホヤホヤの ActionGameMaker を手にされていることと思います。

AGM で作れるゲームの種類は多岐にわたりますが、キャラクターの左右移動操作は避けられないでしょう。

AGM で作れるアニメーションの種類も多岐にわたりますが、シーケンシャルフレームアニメーションの工程は避けて通れません。

そこでこの記事では、キャラクターをゲーム内で歩いたり止まったりさせる方法を一つ一つ丁寧に解説します。

また、ある程度基礎がある方で、単にシーケンシャルフレーム移動の参考資料をお探しの場合は、【STEP4】からご覧になることをお勧めします。

【STEP1】

プロジェクトを作成します。以下略

【STEP2】

キャラクターを載せる背景として、ゲームシーンを作成します。

作成されたゲームシーンには、大量のものが一気に生成されます。左側はシーン全体で使用されるすべてのノード、右側はキャラクターを配置する場所です。【重要】ここで ctrl+S を押して保存してください。ファイル名と場所は任意です。

次に、シーンタブ①に切り替え、新しく作成したゲームシーンを読み込みます②。

これで実行してみましょう。ロゴが表示されてすぐに画面が灰色になる場合は、おめでとうございます。これまでの手順は OK です。

【step3】

メニューバーから【シーン】-【新規シーン】を選択します(なぜここも「シーン」なのかは、他の Godot チュートリアルをご覧ください)。

既存のシーンウィンドウで【ゲームオブジェクト】を見つけ、クリックします。

このような手順を繰り返します。

またしても大量のノードが生成されます。保存してください。ファイル名は「player」としました。

【step4】ここから本番です

ここでは非標準的な手法を使用します。まず、「キャラクター」以下の Sprite2D ノードを削除します。

次に、【AnimatedSprite2D】ノードを作成します。

【SpriteFrames】を新規作成します。

これで下のコントロールウィンドウに切り替わり、自動的に SpriteFrames ページが表示されるはずです。

アニメーション追加ボタンを使用して、必要な「歩く【01-STEP】」と「止まる【00-STOP】」の 2 つのアニメーションを新規作成します。

【00-STOP】を選択します。ここでは①ファイルからフレームを追加(各フレームが個別に保存されている場合)するか、②スプライトシートからフレームを追加(各フレームが 1 つのファイルに結合されている場合)するかを選択できます。効果は同じです。ここでは使用している画像を 2 つのアニメーションラベルに追加しました。

画像を挿入後の機能について:

①読み込み後自動再生:1 つのアニメーショングループにのみこの機能を設定できます。キャラクターの初期状態のアニメーションです。

②ループ再生:これは必須です。

③フレームレート④各フレームの持続時間:マクロとミクロの両面からアニメーションのテンポを調整します。

【step5】

AnimationPlayer を見てみましょう。

まず AnimationPlayer を選択し、下部でアニメーションを選択してポップアップメニューを開き、「新規作成」を選択します。

新規作成されたアニメーションで以下の操作を行います。

①ループを開く

②4 フレームのアニメーションなので、再生時間を 4 に設定しました。

③新規作成した STOP アニメーションを選択

④STOP を現在のアニメーションに設定

⑤プラスボタンをクリックし、トラックを追加(重要!)

プロパティトラックを選択します。

以前作成した AnimatedSprite2D を選択します。

animation を選択します。

以降の操作を容易にするため、タイムラインのスナップを 1 秒に変更します。

タイムラインの 0 秒点にキーフレームを挿入します。

キーフレームを選択した後、インスペクターで値を「00-STOP」に設定します。

【step6】

【step5】の動作を繰り返し、すべての「01-STEP」アニメーションも AnimationPlayer に対応付けます。

【step7】

【キャラクター】のインスペクターを開きます。

【アニメーションセット】内で【アニメーションカテゴリを追加】します。

適切に入力します。ここでアニメーション名が選択できない場合は、AnimationPlayer とキャラクター上で ctrl+S を数回実行してください。

【step8】

次に、キャラクターにビジュアルスクリプトを追加します。このボタンをクリックします。

初期状態の名前を「STOP」に変更し、「STEP」という新しい状態を作成します。

2 つの状態をそれぞれ対応するアニメーションに紐付けます。

Any State から 2 つの状態へそれぞれ接続します。

ここで一旦中断します。【step9】では入力キーの設定と Player をシーンにドラッグする方法を解説します。必要に応じて読み飛ばしてください。【step10】でここでのロジックに戻ります。

【step9】

入力マップに【移動】【上下左右】の 4 つのアクションを追加し、適切なキーを割り当てます。

player ファイルに戻り、MoveAndJumpSettings ノードを見つけます。

以下のように設定します。

【step9.5】player をシーンにドラッグ

以前の game_scene ファイルを開き、多数の ObjectRoot から図のような ObjectRoot を見つけ、【右クリック】【サブシーンとしてインスタンス化】【player.tscn】を選択します。

次に GameScene のインスペクターで、重力を 0 に設定します。

【step10】

【step8】に戻ります。先ほど 2 つの接続線を作成しました。これらを設定します。

接続線 1

接続線 2

概ね上記のようになります。誤りや不明確な点があればご指摘ください。訂正いたします。

ここまでお読みいただき、ありがとうございます。

「いいね!」 6

キャラクターが8方向移動できるように設定されているが、4方向移動に制限するにはどうすればいいですか?

状態機械の設計段階で、上下左右の4方向をそれぞれ4つの状態機械として区別できます。その後、MoveAndJump内のボタン割り当てを設定しないでください。4つの対応する状態機械内でアクションを使用してオブジェクトを「移動」させます。