スケルトンデータのインポート
April 18th, 2023
このチュートリアルでは、Spineプロジェクトが手元に無いためにエクスポートされたファイルを使ってスケルトンをインポートしたい場合のインポート手順を説明します。
テクスチャアトラスページのアンパック
手元にテクスチャアトラスとしてパックされる前の個別に分かれた画像がある場合、この手順はスキップできます。持っているのがパック済みの画像だけの場合は、まずはそれをアンパックしてSpineエディターで使用できるようにする必要があります。アンパックは、SpineのUI上で行うかコマンドラインで行うかのどちらかで実行できます。どちらで行うにしても、最新のSpineを使用してアンパックすることが推奨されます。
そのアトラスが乗算済みアルファ画像としてパックされている場合は、アンパック時にアルファを元に戻す必要があります。比較的新しいバージョンのSpineでパックされたアトラスの場合は、アトラスファイルにそのアトラス画像が乗算済みアルファでパックされたかどうかの情報が記録されています。この行がある場合は、テクスチャ・アンパッカーはこの情報を利用します。
古いバージョンのSpineでパックされたアトラスの場合、そのアトラス画像が乗算済みアルファでパックされたかどうかを自分で確認してアンパック時に指定する必要があります。画像のアルファ値が乗算されている場合は画像の半透明な部分が暗くなっています。以下が乗算済みアルファ画像とそうではない画像(ストレートアルファ画像)の比較です:
UI経由でアンパックする場合
SpineのUI経由でアンパックを行うには:
- まずアトラスファイルとアトラス画像を同じフォルダ内に配置してください。
- Spineエディターを開いて、メインメニューから
Texture Unpacker
(テクスチャ・アンパッカー)を選択してください。
Texture Unpacker
(テクスチャ・アンパッカー)ウィンドウで以下を設定してください:Atlas
(アトラス)ファイルのパスを入力してください。Unity用にエクスポートされたファイルの場合は拡張子が.atlas.txt
になっているかもしれませんが、そのままでも読み込めます。- アンパックされた画像を保存したいフォルダのパスを
Output folder
(出力フォルダ)に入力してください。 - アトラスが乗算済みアルファでパックされたものであれば
Unpremultiply alpha
(日本語UIでは「乗算済みアルファ」)をチェックしてください。アトラスファイルの中に "pma:true" という行があるならこのチェックボックスの代わりにそちらが使用されます。
- 最後に、
Unpack
(アンパック)をクリックしてください。すると、アトラスに記載されたテクスチャ領域ごとに個別の画像ファイルが作成されます。
CLI経由でアンパックする場合
コマンドラインインターフェース (CLI)経由でアンパックを行うには、以下のパラメーターを指定してください:
また、以下のように各パラメーターの省略形を使用することもできます:
--update
または-u
を使用すれば特定のバージョンでアンパックを実行することができます。例えば、上の例に-u 4.1.20
を追加すると、Spine 4.1.20を起動してアンパックを実行します。また、-u latest
を使えば(betaバージョンを除いた)最新のSpineでアンパックを実行できます。
スケルトンデータのインポート
スケルトンデータをインポートするには、必ずそのデータがエクスポートされたのと同じバージョンのSpineを使用してください。これは特にバイナリデータの場合に重要な条件ですが、JSONデータでも同様です。
次に、アトラスファイルの中にアトラスのスケールについての行があるかどうかを確認してください。この情報は後でインポートを行う際に必要になります。もし見つからない場合、それはそのスケルトンのアトラスのスケール値が1のまま(元々の画像サイズのまま)でパックされたか、そのアトラスが古いバージョンのSpineでパックされたかのどちらかを意味します。
スケルトンデータをインポートするには:
- メインメニューを開いて
Import Data
(データインポート)を選択してください。
Import Data
(データインポート)ウィンドウで以下を設定してください:File
(ファイル)にインポートしたいJSONまたはバイナリファイルのパスを入力してください。- テクスチャアトラスがスケールされたものである場合は、
Scale
(スケール)の値を設定して、アンパックされた画像のサイズとスケルトンのサイズが一致するようにしてください。 - インポートするスケルトンにつけたい名前を入力してください。
Import
(インポート)をクリックするとスケルトンが表示されますが、正しいイメージの代わりにMISSING
と書かれたボックスが表示されるかと思います。これはイメージパスがまだ設定されていないために起こります。次のステップで修正しますので、まずは一度Spineプロジェクトを保存してください。
これでスケルトンが正しく表示されるようになります:
トラブルシューティング
正しい画像パスを設定したのに画像が抜けてしまっているのはなぜですか?
もしそのスケルトンがSpine Professionalで作成されたもので、しかしそのスケルトンデータをインポートしようとしたのSpine Essentialである場合、メッシュアタッチメントやコンストレイントなど、Spine Professionalの機能が使用されている部分をインポートすることができません。Spine Professionalの機能を使用している部分を含んでいるスケルトンをインポートするには、Spine Professionalを利用してください。
画像の透明な部分の周囲に黒い境界線があるのはなぜですか?
これはアトラス画像が乗算済みアルファ画像であるにも関わらず、アトラスをアンパックする際にUnpremultiply alpha
(乗算済みアルファ)をチェックしなかった場合に起こります。Unpremultiply alpha
にチェックを入れて再アンパックしてください 。
画像の透明な部分の周囲に白い境界線があるのはなぜですか?
これはアトラス画像が乗算済みアルファ画像ではないにも関わらず、アトラスをアンパックする際にUnpremultiply alpha
(乗算済みアルファ)をチェックしていた場合に起こります。Unpremultiply alpha
のチェックを外して再アンパックしてください 。
一部のパーツが正しいサイズよりも小さいor大きいのですがなぜですか?
これはアトラスがパックされた時のスケール値が1よりも大きかった、または小さかった場合に起きます。そのアトラスがパックされた時と同じスケール値を指定してスケルトンを再インポートしてください。正しいスケール値が分からない場合は、0.5や0.25など一般的な値を試してみてください。
インポートしたスケルトンのアニメーションが正しくないのはなぜですか?
正しくインポートを行うには、必ずそのデータがエクスポートされた際に使われていたのと同じバージョンのSpineを使用してください。そのデータがエクスポートされたSpineバージョンの情報は、以下のようにデータを任意のテキストエディターで開くと最初の方に記述されているのを確認できます:
バイナリ形式でエクスポートされたファイルの場合、バージョン番号を確認するのには hex editor を使用すると良いかもしれません。
お持ちのデータが古いバージョンのSpineからエクスポートされたものの場合は、まずはそのバージョンを起動してデータをインポートし、Spineプロジェクトファイルを保存してください。それから保存したプロジェクトファイルを新しいバージョンのSpineで開いて使用してください。
ボーンのアイコンがデフォルトアイコンに変更されてしまっているのはなぜですか?
ボーンアイコンはSpine内でのみ必要な情報なので、エクスポートされたスケルトンデータには含まれません。そのため、インポートしたスケルトンのボーンアイコンは全てデフォルトのものが使用されます。
ボーンのカラーがリセットされていたり、メッシュ頂点間のエッジがなくなっているのはなぜですか?
Nonessential data
(非必須データ)にチェックを入れずにスケルトンをエクスポートすると、実行時には通常必要ない情報がエクスポート対象から除外されます。インポートされたスケルトンはそれでも動きますが、必須ではない情報が失われます。将来そのデータをインポートする可能性がある場合は、エクスポートの際にNonessential data
にチェックを入れるのを忘れないようにしてください。
エクスポートファイルからスケルトンをインポートする手順について何かお困りでしたら、どうぞご遠慮なくSpineフォーラムにてご質問ください!