ゲームエンジン向けのスケルトンのエクスポート
ファイル ▸ エクスポート ▸ スケルトン(JSON)… は、ボーンのリグとそのアニメーションを、画像にレンダリングするのではなく、ゲームエンジンが再生できるデータとして書き出します。
スプライトシートは、すべてのフレームを画像として保存します。スケルトンのエクスポートは代わりにリグを保存します。ボーン、そこに掛けた画像、そしてボーンが時間とともにどう動くかです。キャラクターはエンジンが自分で描くので、アニメーションは小さいまま、どんな大きさやフレームレートでもなめらかに再生されます。
エクスポートする
- ファイル ▸ エクスポート ▸ スケルトン(JSON)… を選びます。
- フォルダーを選びます。エクスポートは複数のファイルを書くので、ファイル名ではなくフォルダーを尋ねます。
- ファイルはすぐに書かれます。選ぶ設定はありません。
フォルダーには skeleton.json、ボーンに付けた画像をまとめたアトラス画像 skeleton.png、そしてメッシュごとに、メッシュレイヤーの名前が付いた PNG が一枚ずつ入ります。ファイル名に使えない文字は置き換えられ、二つのメッシュが同じ名前なら、二つ目のファイルには番号が付きます。名前は決まっているので、同じプロジェクトをもう一度エクスポートすると同じファイルが置き換わります。
ファイルの中身
構成は Spine のものを手本にしています。ボーン、スロット、アタッチメント、アニメーションです。Spine のファイルではなく、Spine の公式ランタイムでは読めませんが、形はなじみのあるものなので、エンジン向けの読み込み処理は一度書けば済みます。
| 部分 | 中身 |
|---|---|
| ボーン | すべてのボーンレイヤーのすべてのボーンと、親に対するバインドポーズ。IK の目標になる固定のボーンは除かれます。その効果は、それが動かすボーンにすでに入っているからです |
| メッシュのアタッチメント | 各メッシュレイヤー。バインドポーズの頂点、三角形、各頂点に対する各ボーンのウェイトを持ちます |
| リージョンのアタッチメント | レイヤーをリンクでボーンに固く付いていくレイヤー。ボーンからの決まったずれと一緒にアトラスに置かれます |
| アニメーション | タイムラインのグループマーカーごとに一つのアニメーションで、名前はマーカーの名前です。グループマーカーがなければ、開始点から終了点までの default という一つのアニメーションになります |
エンジンがなければ再現しなければならないものは、すべてただの数値に焼き込まれます。IK、ボーンのダイナミクス、操作用のボーン、アクションは、どれもふつうの回転、移動、スケールのキーになります。アクションがボーンのウェイトでは表せない形でメッシュを変えるときは、そのアニメーションは代わりにメッシュの頂点の位置をフレームごとに保存するので、エンジンはアクションの仕組みを知らなくて済みます。
まだ含まれないもの
- 自分のキーフレームで動き、ボーンにリンクしていないレイヤー。そういうものはスプライトシートか PNG の連番でエクスポートしてください。
- ボーンに加えて、自分の位置、回転、スケールも持つメッシュ。
- 生きた拘束としての IK、変形、パス、物理の拘束、イベント、衣装を替えるためのスキン。
- ボーンレイヤーの中での自動の追従。エクスポートされるのは、バインドしたか塗ったウェイトと、レイヤーをリンクでつないだレイヤーだけです。フレキシブルや領域のバインドだけでリグに付いていくレイヤーは、エクスポートでは動きません。