10-1. アニメーション再生の基本

アニメーション再生の基本

Robloxにおけるアニメーションの再生と管理は、ゲーム内でのキャラクターやオブジェクトの動きを制御する上で重要です。以下ではアニメーション再生のための基本的な要素を解説します。

アニメーション再生のために必要な要素

アニメーションを再生するためには、いくつかの重要な要素が必要です。
  1. リギングされたModel: Motor6DやBoneを使用して適切に接続されたリギングされたModelが必要です。これにより、アニメーションに応じたModelの各パーツの動きが可能になります。
  1. HumanoidまたはAnimationController: リギングされたモデルの子として、HumanoidまたはAnimationControllerが必要です。これらは、Animatorを内包し、アニメーションの再生と管理を行います。
  1. アニメーションデータ: 再生するアニメーションは、Robloxのアセットとして登録されている必要があります。これらのアニメーションデータがアニメーションの基礎となります。
アニメーションデータの作成と登録については次項で詳しく解説します。

アニメーションのロードと再生

アニメーションデータはRobloxのクラウドに保存されており、ゲーム中にこれらを使用するためには明示的なロードが必要です。このアプローチは、必要なリソースのみを取得し、ゲームのパフォーマンスを最適化するために設計されています。アニメーションの再生には、以下のステップが含まれます:
  1. Animatorの取得: HumanoidまたはAnimationControllerからAnimatorインスタンスを取得します。
  1. アニメーションのロード: Animatorを介してメソッドを使用し、アニメーションデータをロードします。このステップでAnimationTrackが作成されます。
  1. アニメーションの再生: AnimationTrackのメソッドを使用してアニメーションを再生します。

コード例

この例では、アニメーションデータをロードし、AnimationTrackを通じて再生しています。明示的なロードプロセスにより、必要なアニメーションデータのみが取得され、ゲームの効率が向上します。

アニメーションの管理と制御

AnimationTrackインスタンスのインターフェースにより、以下のようにアニメーションの管理と制御が可能です。
こういったインターフェースを通じて、アニメーションの一時停止、停止、再生速度の変更などが行えます。

サーバー再生とクライアント再生

サーバーで再生されたアニメーションは全クライアントに反映されますが、クライアントで再生されたアニメーションはそのクライアント上でのみ見ることができます。アニメーションは物理制御のNetworkOwnershipの影響などを受けず、通常の同期ルールに基づくことを把握しておきましょう。

アニメーションの事前ロード

上述した通り、アニメーションリソースは明示的にロードしない限り利用できなくなっており、それによりリソースの効率化が図られています。ただし、これはすなわち、アニメーションの再生の際に、アセットロードの遅延コストを考慮する必要があるともいえます。そのため、レスポンスのよいアニメーション再生のためには、アニメーションリソースの事前ロードをしておくなどの管理の工夫が必要となります。
事前ロードするには、を事前に呼んでおく、を使うといったことで対応できます。

参照すべき情報