スプライトスワップの概要
このページでは、スプライトスワップの概要、さまざまな使用方法、および制限について説明します。スプライトスワップ とは、ランタイムにゲームオブジェクトのレンダリングされるスプライトを変更することです。これは、2D アクターや他のゲームオブジェクトを構成するスプライトをアニメーション化するときに便利な方法です。
例えば、アニメーション化されたアクターを構成する 個々のスプライトをスワップ して、同じスケルトンを共有 する複数のアクターを作成できます (PSD Importer パッケージ が必要)。また、ランタイムにスプライトをスワップして アニメーションクリップを作成 することもできます。
2D Animation パッケージウィンドウでオプションを選択することで、2D Animation パッケージの サンプルプロジェクト をインポートできます。これらのサンプルの詳細については、個々の スプライトスワップの例 のページを参照してください。
必要なアセットとコンポーネント
スプライトスワップには、以下のアセットとコンポーネントが必要です。これらは、2D Animation パッケージで提供されています。
Sprite Library アセット: Sprite Library アセットには、異なる カテゴリ と ラベル に割り当てられている、選択されているスプライトのセットが含まれます。
Sprite Library コンポーネント: Sprite Library コンポーネントは、ゲームオブジェクトが参照する Sprite Library アセットを定義します。
Sprite Resolver コンポーネント: Sprite Resolver コンポーネントは、目的のスプライトの Category 値と Label 値を参照して、Sprite Library アセットに登録されたスプライトを要求します。
技術的制約
以下は、スプライトスワップを使用する際に注意する必要がある技術的な制約です。
スケルトンアニメーションの制限
アクターをアニメーション化 し、スケルトンアニメーションでスプライトスワップを使用する場合は、スワップされた両方のスプライトのスケルトンが同一である必要があります。Skinning エディターの Copy および Paste ツール を使用して、ボーンとスケルトンのデータをスプライト間で複製すると、正しくスワップされるようになります。
アニメーターの制限
1 つの アニメーターコントローラー で、1 つの アニメーションクリップ が スプライトレンダラー の割り当て済みスプライトをアニメーション化し、別の アニメーションクリップ が Sprite Resolver のスプライトハッシュをアニメーション化するということはできません。これら 2 つのクリップが同じ アニメーターコントローラー 内にある場合、競合が発生して望ましくない再生結果が生じます。
この問題を解決するには、以下の推奨される方法を使用します。
1 つ目の方法は、アニメーションクリップ を別々の アニメーターコントローラー に分ける方法です。一方のアニメーターコントローラーには スプライトレンダラー のスプライトをアニメーション化するクリップのみを入れ、もう一方のアニメーターコントローラーには Sprite Resolver のスプライトハッシュをアニメーション化するクリップのみを入れます。これらを同じ アニメーターコントローラー には入れないようにします。
2 つ目の方法は、すべての アニメーションクリップ を同じタイプに更新する方法です。こうすると、1 つの アニメーターコントローラー にすべてを入れることができます。これには、スプライトレンダラー のスプライトをアニメーション化するすべてのクリップを、Sprite Resolver のスプライトハッシュをアニメーション化するクリップに変換します。または、その逆を行います。