はじめに
キャラクターが歩いたり、ジャンプしたり、UIがスッと現れたり消えたり。こうした動きを実装するのがAnimationPlayerです。
Godot 4では、キーフレームアニメーション(時間軸に沿ってプロパティを変化させる)を簡単に作成・再生できます。
この記事では以下を学べます:
- AnimationPlayerの基本的な使い方
- アニメーションの再生・停止制御
- 複数のアニメーションを管理する
- カットシーンやUIアニメーションへの応用

AnimationPlayerとは?
AnimationPlayerは、キーフレームアニメーションを再生・管理するノードです。
時間軸に沿ってノードのプロパティ(位置・回転・色・スケールなど)を変化させ、スムーズなアニメーションを実現します。
継承ツリー:
AnimationPlayer
↑
AnimationMixer
↑
Node
↑
Object
AnimationPlayerはAnimationリソース(.anim形式)を複数保持でき、スクリプトからplay()メソッドで再生できます。
このノードを使うべき場面
使う場面:
- キャラクターのスプライトアニメーション(walk、jump、idle)
- ゲームUIの演出(ボタン点灯、ウィンドウのスライドイン)
- カットシーンやストーリー演出
- ドア開閉、トラップ発動などの時間経過アニメ
- エフェクトの表示・消失
使わない場面:
- シンプルな移動だけ → スクリプトのPrが十分
- 複雑なステートマシン管理 → AnimationTreeを使う
主なプロパティと機能
| プロパティ/メソッド | 型・戻り値 | 説明 |
|---|---|---|
current_animation |
String | 現在再生中(または最後に再生した)アニメーション名 |
speed_scale |
float | 再生速度(1.0が通常速、0.5で半速、2.0で2倍速) |
autoplay |
String | ノード初期化時に自動再生するアニメーション名 |
play(name) |
void | 指定のアニメーションを再生開始 |
stop() |
void | 再生を停止(ポーズ状態) |
is_playing() |
bool | 現在アニメーション再生中かどうかを判定 |
get_animation_list() |
PackedStringArray | 保持しているすべてのアニメーション名を配列で取得 |
animation_finished |
Signal | アニメーション再生終了時に発火するシグナル |
コード例1:基本的なアニメーション制御
extends Sprite2D
@onready var animation_player = $AnimationPlayer
func _ready():
# autoplayで自動再生する場合は不要
# animation_player.play("idle")
pass
func _process(_delta):
# 入力に応じてアニメーション切り替え
if Input.is_action_pressed("ui_right"):
if animation_player.current_animation != "walk":
animation_player.play("walk")
elif Input.is_action_pressed("ui_accept"):
animation_player.play("jump")
else:
if animation_player.current_animation != "idle":
animation_player.play("idle")
コード例2:アニメーション終了を検知して次の処理
extends Control
@onready var animation_player = $AnimationPlayer
func _ready():
# animation_finished シグナルに接続
animation_player.animation_finished.connect(_on_animation_finished)
func play_cutscene():
animation_player.play("opening_scene")
func _on_animation_finished(anim_name: StringName) -> void:
if anim_name == "opening_scene":
print("オープニングアニメーション完了")
# 次のシーンに遷移するなど
get_tree().change_scene_to_file("res://scenes/main.tscn")

もっと使いこなす:カスタマイズできるパラメータ
| パラメータ | 設定値の例 | 用途 |
|---|---|---|
speed_scale |
0.5, 1.0, 2.0 |
スローモーション(0.5)や高速実行(2.0)を実装 |
autoplay |
"idle" など |
ノード初期化時に自動再生するアニメーション |
| Easing(イージング) | ease()関数で制御 |
キーフレーム間の補間方法を制御(linear, ease_in, ease_out など) |
| Blend Shapes | 複数のアニメーション同時再生 | 異なるアニメーションを重ね合わせて再生(上半身と下半身を独立制御など) |
animation_finishedシグナル |
接続して関数実行 | アニメーション終了後に自動的に次の処理を実行 |
まとめ
一言要約:AnimationPlayerは、キーフレームアニメーションを簡単に作成・再生できるノードで、ゲーム内の各種演出に欠かせません。
ポイント:
- アニメーションエディタでタイムラインにキーフレームを挿入する
play()とis_playing()で再生制御、speed_scaleで速度調整animation_finishedシグナルで、アニメーション終了後の処理を定義
次回予告:次はAnimationTreeを解説します。複数のアニメーションの状態遷移を効率的に管理する方法が分かります。
シリーズ:Godot 4 ノード解説
- 001-040: 基本ノード(準備中)
- 041:StaticBody2D
- 042:TileMapLayer
- 043:AnimationPlayer
- 044:AnimationTree
- 045:AudioStreamPlayer
- 046:AudioStreamPlayer2D
- 047:GPUParticles2D
- 048:CPUParticles2D
- 049:Line2D
- 050:CanvasLayer
この記事はGodot 4.xをもとに執筆しています。


コメント