ランタイムアーキテクチャ

SpineランタイムはSpineからエクスポートされたスケルトンデータをロードおよびレンダリングするために、ユーザーのアプリケーションに統合されるソフトウェアコンポーネントです。ランタイムは非常に柔軟性が高く、テクスチャをロードするタイミングや方法、ボーン操作やプロシージャルアニメーション、アニメーションのミキシングやレイヤリングなど様々なカスタマイズすることができます。

ランタイムのページにて、様々なプログラミング言語やゲームツールキットに利用可能なランタイムの一覧を載せています。

ライセンス

Spineランタイムの使用許諾は、Spineライセンスによって与えられます。Spineライセンスをお持ちの方は、Spineランタイムを任意の数のアプリケーションに使用することができます。詳細についてはSpine Editor License Agreementをご覧ください。

ソースコード

Spineランタイムの全てのソースコードはGitHubで公開されています。ソースコードへのアクセスは、アプリケーションの根幹を成すこのようなコンポーネントにとって不可欠であり、特定のニーズに合わせたカスタマイズや最適化を可能にします。

ソースコードは、Gitを使用するか、GitHubの緑色のボタンをクリックして「Download ZIP」を選択することでダウンロードできます。

このドキュメントのコード例では、いかなる言語のランタイムにも簡単にトランスレートできる疑似コードを使用しています。各ランタイムに関する資料にはGitHubの各ランタイム固有のページ(README.mdファイル)をご覧ください。

バージョン

SpineランタイムはSpineからエクスポートされたデータをロードします。Spineランタイムがデータを正常にロードできるように、正しいバージョンのSpineを使用するように注意する必要があります。あなたのエディターバージョンを固定化し、ランタイムバージョンと同期させることを推奨します。また、SpineおよびSpineランタイムは常に改善されていますので、ランタイムとエディターのバージョンの両方を定期的に更新することをお勧めします。

デフォルトブランチは、ベータ版を除く最新のSpineで動作します。各ランタイムのREADME.mdファイルに対応するバージョンが記載されています。

旧バージョンのSpineランタイムはReleasesページにあります。

ベータ版は定義上、全ての対応ランタイムをサポートしません。しかしながら、ランタイムの中には他より先に実用が開始されるものもあります。最新のランタイムが必要な場合、3.6-betaなどベータバージョンの名前を持つブランチをご覧ください。興味のあるランタイムが更新されている場合、次の非ベータ版(正式版)がリリースされるまでの最新コードはそのブランチで見つけられます。ただし、ベータブランチでは新しい開発が進行中のため、製品が完成していないことにご注意ください。

クラス図

このクラス図はランタイムの様々な部分がどのように組み合わされているかを説明しています。クリックするとフル解像度で表示できます。

APIリファレンスには、オブジェクトの種類ごとにプロパティやメソッドの詳細情報が記載されています。

データオブジェクト

スケルトンデータは通常、高いレベルで「Setup Pose Data」オブジェクトにロードされ、テクスチャアトラスと組み合わされます。これらのデータオブジェクトは、スケルトンの「Instance Data」オブジェクトの作成に使用されます。これはステートフル(処理状態を把握するオブジェクト)なので、これらは画面上のそれぞれのスケルトンに対応します。データオブジェクトはステートレス(処理状態を把握しないオブジェクト)なので、スケルトンのインスタンス数に関わらず共有することができます。

インスタンスデータに対応するデータオブジェクトのクラス名は、「Data」で終わります。対応するインスタンスデータを持たないデータオブジェクトにはAttachment、Skin、Animationのようなサフィックス(接尾語)を持ちません。

データオブジェクトを多数のスケルトンインスタンスで共有することは、データを一度ロードするだけで済むため効率的です。しかしながら、データオブジェクトが変更されると変更は全てのスケルトンインスタンスに影響を及ぼします。単一インスタンスだけデータオブジェクトを変更するには、そのオブジェクトをコピーして、そのインスタンスだけにオリジナルを置き換える必要があります。

インスタンスオブジェクト

それぞれのインスタンスオブジェクトはデータオブジェクトと同じクラス名を持ちますが、「Data」というサフィックス(接尾語)を持ちません。例えばSkeletonDataはデータオブジェクトですが、Skeletonはインスタンスオブジェクトです。

インスタンスオブジェクトはデータオブジェクトと同じプロパティを多数共有します。データオブジェクトのプロパティはセットアップポーズを表し、通常は変更されません。インスタンスオブジェクトの同じプロパティは、そのインスタンスがアニメーションする際の現在のポーズを表しています。

全てのインスタンスオブジェクトはデータオブジェクトに対する参照を保持します。これはインスタンスオブジェクトをセットアップポーズにリセットするために使用されます。また、オブジェクトの名前のように、データオブジェクトにのみ存在してインスタンスオブジェクトには存在しないプロパティもあります。

次: スケルトンデータのロード