表示テーマ
AnimationPlayer Component
AnimationClipをGroupとStateへ登録し、プロパティAnimationを再生します。
設定する手順
- Clipを作成してGroupに登録し、初期Groupと再生開始を設定します。
- SceneViewまたはGameViewで結果を確認します。
- 編集中のSceneまたはPrefabを保存します。
項目の説明
| 項目 | C#名 | 型 | 操作 | 定義時の初期値 | 意味 |
|---|---|---|---|---|---|
| 有効 | enabled | bool | 読取・変更 | true | このComponentの処理を有効にします。GameObject全体のアクティブ状態とは別です。 |
| 全体速度 | speed | float | 読取・変更 | 1.0f | 全GroupのAnimation時刻に掛ける再生倍率です。 |
| CurrentGroup | CurrentGroup | string | 読取専用 | 追加時の設定を参照 | 現在再生中のGroup名です。 |
| IsPlayingValue | IsPlayingValue | bool | 読取専用 | false | 再生中かを取得します。 |
| Finished | Finished | bool | 読取専用 | false | 再生完了状態を取得します。 |
| PlayRequest | PlayRequest | string | 読取・変更 | 追加時の設定を参照 | 次の更新で再生するGroup名を要求します。 |
| PlayFade | PlayFade | float | 読取・変更 | 0.0f | 再生切替時のフェード秒数です。 |
| RepeatCount | RepeatCount | int | 読取専用 | 0 | 現在の繰り返し回数です。 |
| StopRequest | StopRequest | bool | 読取・変更 | false | 停止を要求します。 |
| DirectClipRequest | DirectClipRequest | AnimationClip? | 読取・変更 | {} | Groupを経由せず再生するClip参照です。 |
| NormalizedFade | NormalizedFade | bool | 読取・変更 | false | フェード時間を正規化した値として扱うかを指定します。 |
| NormalizedOffset | NormalizedOffset | bool | 読取・変更 | true | 開始位置を0〜1の正規化時間として扱うかを指定します。 |
| PlaybackTimeRequest | PlaybackTimeRequest | float | 読取・変更 | -std::numeric_limits<float>::infinity() | 再生またはSeekに使う時刻です。 |
| SeekRequest | SeekRequest | bool | 読取・変更 | false | 指定時刻への移動を要求します。 |
| NormalizedTimeValue | NormalizedTimeValue | float | 読取専用 | 0.0f | 現在のClip内時刻を0〜1で表した値です。 |
| ClipDuration | ClipDuration | float | 読取専用 | 0.0f | 現在のClipの長さです。単位は秒です。 |
| Looping | Looping | bool | 読取専用 | false | 現在の再生がループするかを取得します。 |
| 開始グループ | DefaultGroup | string | 読取・変更 | 追加時の設定を参照 | 再生開始時に選ばれるGroup名です。 |
| 開始時に再生 | PlayOnStart | bool | 読取・変更 | true | Play開始時に自動再生します。 |
Inspectorの設定と使い方
「Editor / C#」は両方から変更できる設定、「Editorのみ」は公開C# APIのない編集操作です。「Editor表示のみ」は計算結果や統計などの確認欄です。「C#のみ」は、このInspectorに編集欄のない操作です。
| 設定・操作 | 編集場所 | C#の入口 | 意味・使い方 |
|---|---|---|---|
| 有効・開始時再生・全体速度・開始グループ | Editor / C# | enabled / PlayOnStart / speed / DefaultGroup | C#の操作型はAnimatorです。保存したグループを名前で再生し、全体速度を個々のStateの速度へ掛けます。 |
| グループ・State・Clip・weight・優先度 | Editor / C# | GetGroups / SetGroups | StateごとのClip、再生速度、weight、優先度、Additive、向き相対、開始遅延を設定します。設定を取得して編集した後はSetGroupsで反映します。 |
| ループ形式・回数・インターバル・繋ぎ補間 | Editor / C# | GetGroups / SetGroups | 一度だけ・ループ・往復などの再生形式をStateに設定します。ループの繋ぎ補間は終端から次の開始までの補間で、回数や待機時間とは別です。 |
| 編集中に再生 | Editorのみ | — | Play前にClipの見た目を確認する設定です。現在のAnimatorの公開C# APIに対応するPreview用プロパティはありません。 |
| Play・PlayClip・CrossFade・Seek・Stop | C#のみ | Play / PlayClip / CrossFade / CrossFadeInFixedTime / Seek / Stop | State名での再生、Clipの直接再生、遷移、再生位置指定、停止に使います。CrossFadeの遷移量は正規化値、CrossFadeInFixedTimeは秒指定なので引数を取り違えないでください。 |
初期値はEngineのComponent定義時の値で、C++表記を含みます。C#へ貼り付ける実行例ではありません。既存Sceneの保存値や既定Assetがある場合はそちらが優先されます。数値の編集範囲はInspectorで制限される場合があります。
C#から使う
操作型はAnimatorです。 GameObjectから取得する基本操作はGameObjectの操作を参照してください。以下には基本プロパティだけでなく、公開関数・追加の設定API・継承した共通操作も掲載します。
実用例:操作に応じて作成済みのStateを再生する
AnimationPlayerへグループとStateを用意し、stateNameを存在するState名へ合わせます。C#ではAnimatorを取得します。
cs
using NEMEngine;
public sealed class ActionAnimation : MonoBehaviour {
[SerializeField] private string stateName = "Attack";
private Animator? animator;
void Start() {
// AnimationPlayerのC#操作型を取得
animator = GetComponent<Animator>();
}
void Update() {
// 入力に応じて、Editorで設定したStateを再生
if (animator != null && Input.GetKeyDown(KeyCode.E)) animator.Play(stateName);
}
}設定用・関連するC#型
Animator
継承する共通操作:Component
継承する共通操作:Object
使用時の注意
C#側の型名はAnimatorです。同じ値を同時に書くClipの競合に注意します。
Play中の変更は実行用Worldへ反映します。Scene編集のUndoと実行中の値の変更は別です。保存方法は編集と実行時変更を参照してください。