Skip to content

Latest commit

 

History

History
49 lines (31 loc) · 4.27 KB

File metadata and controls

49 lines (31 loc) · 4.27 KB

🎞️ AnimationPlayer との連携 (シネマティクスとステートマシン)

Godot 標準の AnimationPlayer と組み合わせることで、SSPlayer のアニメーション再生を Godot の強力なタイムライン機能やステートマシン機能と連携させることができます。

これにより、攻撃判定(Hitbox)の同期、効果音(SE)の再生タイミング、カメラの揺らし、カットシーンの作成などが、ノーコードで視覚的に行えるようになります。


1. アニメーションライブラリの生成

SSPlayer を AnimationPlayer で制御するためには、まず対象の .ssab に含まれるすべてのアニメーション(walk, attack など)を Godot が読み込める AnimationLibrary_anims.res)に変換する必要があります。

  1. Godot エディタ上で、ファイルシステムから .ssab ファイルを選択します。
  2. インスペクタの下部にある 「Gen AnimLib (AnimationPlayer用ライブラリを生成)」 ボタンをクリックします。
  3. 成功すると、同じフォルダに [元のファイル名]_anims.res というファイルが生成されます。

Note

生成された _anims.res の中には、元の SpriteStudio アニメーションと同じ名前の「Value Track(値トラック)」が自動生成されています。このトラックは対象ノードの current_animation(アニメーション名)と frame_no(再生ヘッド)を制御します。


2. AnimationPlayer のセットアップ

生成されたライブラリを実際にシーンへ適用する手順です。

  1. ノードの準備シーン上に SpriteStudioPlayer2D ノードを配置し、対象の .ssabSsab にセットしておきます。
  2. AnimationPlayer の追加シーン内に AnimationPlayer ノードを追加します。
  3. ターゲットの指定(重要!) 追加した AnimationPlayer ノードを選択し、インスペクタ内の Root Node を、手順1の SpriteStudioPlayer2D ノード に設定します。 ※自動生成されたアニメーションは「対象ノード自身の current_animationframe_no を制御する」ようになっているため、Root Node を対象ノードに向ける必要があります。
  4. ライブラリの読み込みエディタ下部の「アニメーション (Animation)」パネルを開き、「アニメーション」メニュー > 「アニメーションを管理... (Manage Animations)」 をクリックします。出てきたウィンドウのフォルダアイコン(ライブラリをロード)を押し、生成された _anims.res を読み込みます。

これで AnimationPlayer のドロップダウンに、SpriteStudio で作成したアニメーション一覧が表示されるようになります!


3. 応用例

AnimationPlayer と連携できるようになると、以下のような高度な制御が可能になります。

A. イベントや効果音との同期(Call Method Track / Audio Track)

AnimationPlayer のタイムライン上で「トラックを追加」し、Call Method TrackAudio Playback Track を追加します。「剣を振り下ろしたフレーム」に合わせて効果音を鳴らしたり、GDScript の enable_hitbox() 関数を呼び出したりするタイミングを、目で見ながら完璧に合わせることができます。

B. ステートマシン(AnimationTree)の利用

シーンに AnimationTree ノードを追加し、Anim Player に上記の AnimationPlayer を割り当てます。 Tree RootAnimationNodeStateMachine を設定することで、Idle(待機)→ Walk(歩き)→ Attack(攻撃)といった状態遷移を、コードではなくノード同士を矢印で繋ぐUI(ステートマシン)で構築できるようになります。

C. カットシーン・シネマティクス

カメラ (Camera2D) の位置を動かすトラックや、背景の色を変えるトラックなどを追加することで、キャラクターの動きと完全に連動したイベントシーン(カットシーン)をひとつのタイムライン上で作成できます。