今回は、2DボーンアニメやIKなどがunity上で作成・設定できるというAnima2dの記事です。
今回は初回なので、Anima2dに付いてる TRex という恐竜サンプルの足を動かすまでを目指します。

- 導入
- スプライト(またはスプライトアトラス)からSpriteMeshを作る
- SpriteMeshを設定したゲームオブジェクトを作る
- ボーン(骨)を設定する
- ボーンの位置を合わせる
- SpriteMesh EditorでBindする
- IK CCD を設定する
- アニメーションを設定する
この記事での環境
- Unity 2017.3.0f3 Personal(64bit)
- Unity Anima2D version 1.1.4 (この記事執筆時点で最新)
導入
Asset Storeから anima2dとかで検索すると出てくるのでimportしておきましょう。
Assetsフォルダの下がこんな感じになると思います。

スプライト(またはスプライトアトラス)からSpriteMeshを作る
スプライトアトラス(SpriteModeがMultiple)の場合はあらかじめ、画像の分割設定をSprite Editorでしておきましょう。
スプライト、またはスプライトアトラス(今回の例でいくとt_rex_parts)を選択した状態で、
(Hierarchyで:右クリック)Create -> Anima2D -> SpriteMesh
を選択すると、スプライト単位でSpriteMeshが作られます。

(SpriteMeshesというフォルダはわかりやすい為に適当に作っただけ)
ちなみに、unity2017系から登場した Sprite Atlas*1からはSpriteMeshを生成することは現時点ではできませんでした。なので、スプライトのMultipleを使うことになると思います。
SpriteMeshを設定したゲームオブジェクトを作る
SpriteRenderをアタッチしたゲームオブジェクトを作り、それを今作ったSpriteMeshに変換する手順でSpriteMeshをアタッチしたゲームオブジェクトを作ります。
(Hierarchyで:右クリック)Create -> 2D Object -> Sprite
でSpriteRenderコンポーネントがアタッチされたゲームオブジェクトが作成されます。
今回は、足だけしか作らないので、t_rex_legという画像をSpriteRenderコンポーネントで設定しました。

次にHierarchyにある今作ったSpriteをアタッチしたゲームオブジェクトを選択した状態で、
(Hierarchyで:右クリック)Create -> 2D Object -> SpriteMesh
を選択すると、Inspectorの表示が↓のように
SpriteRenderからSprite Mesh Instanceに勝手に変換されているのを確認してください!

ボーン(骨)を設定する
次にボーンを作成します。
(Hierarchyで:右クリック)Create -> 2D Object -> Bone
SpriteMeshコンポーネントが付いているゲームオブジェクトの子オブジェクトとして設定しました。
今回は、太もも・ふくらはぎ・あし・指?用に4つ用意しました。

このように子ゲームオブジェクトとして作成しておくと、InspectorのBone#Childも自動設定されます。

ボーンの位置を合わせる
ボーンは画像からはみ出ないように調整する必要があります。

↑で回転方向を調整したり、

↑で骨の大きさを調整したりして…

こんな感じに調整しましょう。
最後に、SpriteMeshコンポーネントにBoneを設定します。
Set Bonesに一番親のボーン(例だとUpper Leg R)をアタッチします。
するとBonesリストに一覧が表示されます。

SpriteMesh EditorでBindする
Window -> Anima2D -> SpriteMesh Editor
で SpriteMesh Editor を開きます。
このウィンドウを開いたままHierarchy上で先ほど作成したSpriteMeshがアタッチされたゲームオブジェクトを選択します。

Bindが押せるようになっているのでBindを押すと、↓のような表示に変わります。

必要に応じてWeight Toolで重量の設定もできます。

ここまで設定したら忘れずにApplyを押して保存しましょう。
IK CCD を設定する
アニメーションをしやすくする為にIKを設定します。
今回は指に対して設定したいので、
指のボーン(この例だとFingers R)を選択した状態で、
(Hierarchyで:右クリック)Create -> 2D Object -> IK CCD

こんな感じで丸が表示されます。
この状態でIKをつけたゲームオブジェクトの Transform#Position を変えると、
足が動くのがエディタ上でもすぐ確認できます!
アニメーションを設定する
上記までの手順で、IKがアタッチされたゲームオブジェクトを調整すれば なんとなくアニメーションできそうだとわかったと思います。
今回はこれをアニメーションクリップで設定していきます。
SpriteMeshをアタッチしたオブジェクトを選択した状態で、
Window -> Animation
でアニメーションウィンドウを開きます。
AddPropertyからIKがアタッチされたゲームオブジェクトのポジションを変えるアニメを作ります。

(このあたりは適当に調節してくれ)
実行すると↓のように動くようになりました。
