ライセンスについて
Spineランタイムをアプリケーションに組み込むにはSpineライセンスが必要です。
オンデマンドローディング 拡張UPMパッケージ
オンデマンドローディングの目的
スケルトンごとに多くのスキンとアトラスページテクスチャが必要になる場合、全てのアトラステクスチャはSkeletonDataAssetによって間接的に参照されるため、スケルトンがロードされるときに全てロードされることに注意する必要があります。これは標準的なUnityのロード挙動に従っています。
メモリ使用量とアプリケーションのダウンロードサイズを最適化するために、以下のオンデマンドローディングUPMパッケージを使用して、テクスチャを実行時に動的にロードすることができます。これにより、Unity Addressablesのようなシステムと統合して、対応するスキンが割り当てられたときにのみ高解像度のアトラステクスチャをダウンロードすることが可能になります。これにより、実行時にわずかなロード遅延は発生しますが、初期ロードサイズを削減できます。
拡張UPMパッケージ
spine-unityのオンデマンドローディングは、個別のUnity Package Manager(UPM)拡張パッケージによってサポートされています。現在、2つのUPMパッケージが利用可能です:
- Addressables UPMパッケージ
com.esotericsoftware.spine.addressables
Unity Addressablesをベースにしたすぐに使える実装です。 - オンデマンドローディングUPMパッケージ
com.esotericsoftware.spine.on-demand-loading
オンデマンドローディングを実装するための汎用インフラパッケージです。
Addressables UPMパッケージ
Spine Addressablesプラグインは、Unity Addressablesシステムとの統合により、spine-unityランタイムにオンデマンドテクスチャロードのサポートを追加します。
このモジュールは、テクスチャを低解像度のプレースホルダーバージョンに自動的に置き換え、高解像度のテクスチャをオンデマンドでロードするために必要なすべてのステップをカバーします。プリビルドステップは、ビルド出力内のテクスチャを低解像度の対応するものに置き換え、ポストビルドステップは、プロジェクト内の元の高解像度テクスチャを復元します。追加のコーディングは必要ありません。
インストール方法
Spine Addressables拡張パッケージ com.esotericsoftware.spine.addressables
は、Spineオンデマンドローディング拡張パッケージ com.esotericsoftware.spine.on-demand-loading
に依存しています。Addressablesパッケージをインストールする前に、先にオンデマンドローディングパッケージをインストールしてください。
UPMパッケージのダウンロードとインストール方法についてはオプションの拡張UPMパッケージを、更新方法については拡張UPMパッケージのアップデートを参照してください。
使用方法
テクスチャが低解像度のプレースホルダーに置き換えられ、高解像度バージョンがオンデマンドで自動的にロードされるように設定するには、以下の手順が必要です。
- 元の高解像度ターゲットマテリアルテクスチャを、Addressableとして宣言します。
SpineAtlasAsset
を選択し、SpineAtlasAsset
のInspectorの見出しを右クリックして、Add Addressables Loader
を選択します。
- これにより、
AddressableTextureLoader
アセットが生成されます。
- このアセットは、設定パラメーターの提供と、低解像度のプレースホルダーテクスチャの設定を行います。プレースホルダーテクスチャは、ゲーム実行ファイルをビルドする際のビルド前のステップで自動的に割り当てられます。
- あとは通常通り、Addressablesコンテンツをビルドしてください。
すると、ゲーム実行ファイルをビルドする際、最初に低解像度のプレースホルダーテクスチャが自動的に割り当てられ、必要に応じて対応する高解像度テクスチャがロードされるようになります。
エディター用プレビュー
低解像度テクスチャはゲームのビルドプロセス中にのみ有効化される点に注意してください。プレイモードを含め、Unityエディター上では表示されません。
エディター上で低解像度のプレースホルダーを使用して動作をプレビューしたい場合は、テスト用に一時的に割り当てることができます。これを行うには、対象の AddressableTextureLoader
アセットを選択し、Testing
- Assign Placeholders
を押して、一時的に高解像度テクスチャを低解像度プレースホルダーに置き換えてください。
これにより、プレイモード中に高解像度テクスチャがオンデマンドでロードされるのを確認できます。ただしこの変更はプレビューのみを目的としており、ビルドされたゲーム実行ファイルには影響しないことに注意してください。ビルド用のプレースホルダーテクスチャを手動で割り当てる必要はありません。システムがビルド前のステップでこれを自動的に処理し、ビルド後のステップで元のテクスチャを復元します。
オンデマンドローディング UPMパッケージ
アトラステクスチャのオンデマンドローディングの中核となるインフラストラクチャは、別個の Spineオンデマンドローディング拡張パッケージ com.esotericsoftware.spine.on-demand-loading
によって提供されます。 Spine Addressablesプラグイン(com.esotericsoftware.spine.addressables
)はこの基盤の上に構築され、Unity Addressablesシステムに基づいた具体的な実装を提供します。
このパッケージのダウンロードとインストール方法についてはオプションの拡張UPMパッケージを、更新方法については拡張UPMパッケージのアップデートを参照してください。
GenericOnDemandTextureLoader
から派生して任意の抽象メソッドを実装することで、カスタムローディング実装を作成できます。AddressablesTextureLoader
クラスを参照として使用できます。GenericOnDemandTextureLoader
が合わない場合は、さらに一歩進んで OnDemandTextureLoader
から独自のクラスを派生させ、完全にカスタムな実装を提供することができます。これにより、特定のプロジェクト要件に合わせた代替のローディング戦略が可能になります。