# Spineとは？

Spineは主にゲーム用2Dアニメーションに特化したアニメーションツールです。エディターを使ってアニメーションを作成したり、Spineランタイムを使ってゲーム内でアニメーションを利用したりするための、効率的で合理的なワークフローを提供します。

## 利点

Spineのアニメーションは画像をボーンにアタッチし、ボーンをアニメーションさせることで作成されます。このプロセスは「スケルタル」または「カットアウト」アニメーションと呼ばれ、従来のフレームごとのアニメーションに比べ、多数の利点があります：

* **小容量** 従来のアニメーションは各フレームごとに画像を必要としましたが、Spineアニメーションは非常に小容量なボーンデータだけを保存します。これにより多彩でユニークなアニメーションをゲームに搭載することができます。

* **アート要件** Spineのアニメーションは少数のアートアセットしか必要としないため、コストと時間をゲーム制作に集中させることができます。

*　**スムーズ**　Spineのアニメーションは補間を使用しているため、フレームレートに応じて常に滑らかなアニメーションを実現できます。また、品質を落とすことなくスローモーションで再生することができます。

*　**アタッチメント**　ボーンにアタッチされている画像を切り替えて、異なるアイテムやエフェクトを持つキャラクターに着せ替えることができます。アニメーションを異なる外見のキャラクターに再利用することができ、膨大な時間を節約できます。

*　**ミキシング**　アニメーションをブレンドすることができます。例えば、キャラクターが「撃つ」アニメーションを再生しながら、「歩く」「走る」「泳ぐ」アニメーションも再生することができます。また、あるアニメーションから別のアニメーションへの切り替えもスムーズにクロスフェードさせることができます。

*　**プロシージャルアニメーション**　ボーンはコードによって操作することができ、マウスの位置に向かって射撃したり、近くにいる敵を見るようにしたり、坂道を駆け上がる時に前のめりになるなどを可能にします。

# 機能#
Spineには、魅力的なアニメーションを作りながらも生産性を高められる機能がたくさんあります。後述する多くのエディタ機能に加え、Spineランタイムの[ライブデモ](/spine-demos)では、アニメーションをレイヤー化してブレンドしたりして、あらゆる種類のダイナミックな動作を実現する方法を紹介しています。

<div class="units-row-end columns">
<div class="unit-50">
!!
**ド―プシート**

ド―プシートはアニメーションの中核です。アニメーションを構成する全てのタイムラインの詳細を示し、アニメーションのタイミングの微調整を可能にします。

![Dopesheet](/img/features-dopesheet.png)

**グラフエディター**

グラフはキー間の補間のベジエカーブを定義し、よりリアルな動きを可能にします。

![Graph Editor](/img/features-graph.png)

**プレビュー**

ランタイムでの動作を確認しながらアニメーションの編集を行うことができます。これは、アニメーション間のトランジションやクロスフェード、さらには複数のアニメーションを同時に適用する(例えば、「走りながら撃つ」「泳ぎながら撃つ」など)際に重要です。

![Preview](/img/features-previewview.png)

**インバースキネマティクス**

インバースキネマティクス（IK）を使用してアニメーションを行うためのコンストレイント(制約)を定義することができます。また、ポーズツールではマルチボーンIKを使用してスケルトンのポーズを素早く作成することができます。

![IK Posing](/img/features-posing.png)

**パス**

合成ベジエ・スプラインを使ってパスを定義し、それに沿ってボーンを制約することができます。パスは複雑な動きを容易にし、多数のボーンを直感的にコントロールできるようにすることで高度なリギングを可能にします。

![Paths](/img/features-paths.jpg)

**スキン**

スキンはアタッチメントのセットを切り替えることができます。アタッチメントをグループ化することで、アタッチメントを変更するアニメーションを他のキャラクターに再利用できます。

![Skins](/img/features-skins.png)

**境界ボックス**

境界ボックスはボーンにアタッチできるポリゴンです。このポリゴンは画像と同様にボーンの動きにより操作され、ヒット検出や物理学統合に使用できます。

![Bounds](/img/features-bounds.png)


</div>
<div class="unit-50">
!!
**メッシュ**

メッシュは矩形を描画する代わりに、イメージ内部にポリゴンを指定します。ポリゴン外部ではピクセルが描画されないためフィルレート(fill rate)を改善することができます。これはモバイルゲームでは特に重要な点です。また、メッシュはFFDやスキニングも可能にします。

![Meshes](/img/features-meshes.png)

**フリーフォームデフォメーション**

フリーフォームデフォメーション（FED）を利用するとメッシュの各頂点を動かして画像を変形させることができます。FFDは矩形イメージには不可能な方法でメッシュの伸張、押し潰し、折り曲げ、跳ね返りを可能にします。

![Free-Form Deformation](/img/features-ffd.png)

**ウェイト**

ウエイト（「スキニング」とも呼ばれます）はメッシュ内の個々の頂点を色々なボーンに結び付けます。ボーンが動くと頂点も一緒に動き、メッシュが自動的に変形されます。これにより、ボーンを配置するだけで、画像が曲がって動くキャラクターを簡単に作ることができます。

![Weights](/img/features-skinning.png)

**エクスポート形式**

SpineはSpineランタイムとの使用に最適な独自のJSONとバイナリ形式でアニメーションデータをエクスポートします。また、アニメーションGIFや、PNGおよびJPEGイメージシークエンス、AVIおよびQuickTime形式のビデオもエクスポートできます。

![Export formats](/img/features-export.png)

**インポート**

SpineはJSONまたはバイナリ形式を使用してデータをインポートすることができるため、他のツールからSpineへのデータインポートが可能です。また、他のプロジェクトファイルからスケルトンとアニメーションもインポートすることもできます。

![importing](/img/features-import.png)

**テクスチャパッカー**

Spineはテクスチャアトラスやスプライトシートにイメージをパックすることができ、ゲーム内でのより効率的なレンダリングを実現します。Spineのテクスチャパッカーは空白除去、回転、自動スケーリングなど多数の機能を提供します。

![Texture Packer](/img/features-texturepacker.png)

</div>
</div>

!!
# ランタイム #

素晴らしいアニメーションをデザインするのは作業の一部でしかありません&mdash; これらのアニメーションはゲームの中でレンダリングする必要があります。Spineランタイムは、Spineランタイムは、ゲームツールキットがアニメーションをロードし、Spine上と同じようにゲーム内でレンダリングできるようにするためのライブラリです。

Spineランタイムは19ゲームのツールキットと7つのプログラミング言語に公式にサポートしています。また40以上のサードパーティ製ランタイムもご利用いただけます。詳しくは[Spine ランタイム](/spine-runtimes) をご覧ください。

# 開発　

Spineでは活発な開発が行われています。毎週、複数の新リリースを発表することも頻繁にあります。当社の進捗の詳細は[変更履歴](/spine-changelog/archive)でご確認いただけます。当社のロードマップ計画の詳細にご興味がある方は、[Spine Roadmap](/spine-roadmap)をご覧ください。各タスクにコメントしたり、タスクが完了したときにメールを受け取るように登録することができます。

当社は定期的に新機能を実装するだけではなく、ソフトウェア全体を改善し、改良し続けています。改善にはユーザーの皆様によるフィードバックがきっかけになることも多々あります。どの機能がうまく動く、または動かないかなどをぜひ伺いたいので、[Spineフォーラム](/forum)にてお気軽にご意見をお聞かせください。