ぎじゅつめもブログ

主にアプリ開発の技術メモを残していきます。

【cocos2d-x】Spineでスケルタルアニメーション作成 -Transform変更-

ヌルヌル動くキャラクターをcocos2d-xで動かすまでのメモです。

アニメーションはSpine (http://esotericsoftware.com) というソフトを使って用意したいと思います。有料ですが、素晴らしいソフトだと思います。

(環境:Spine 1.0, cocos2d-x 2-2-2, xcode 5.0.2)

Spineに最初から入っている spineboy.spine という
サンプルをちょっといじって、cocos2d-xで表示するところをゴールにします。


①呼吸しているアニメーションを作成(形状の変化)

1. 左上端の「SET UP」をクリックして「ANIMATE」に変更
f:id:tsuyushiga:20140216212926p:plain:w200

2. Hierarchy の Animations を選択し、New Animation ボタンをクリック
  適当に「breathe」という名前をつけておく

3. アニメーションを設定するボーンをクリック
f:id:tsuyushiga:20140216212932p:plain:w200

4. Dopesheet をクリック
  タイムラインのスタート地点をクリックする
f:id:tsuyushiga:20140216212937p:plain:w200

5. Transform の緑色のキーをクリックすると、選択したタイムラインでのキーが確定する
  最初はアニメーションが開始するときなので何も変更しない
f:id:tsuyushiga:20140216212943p:plain:w300

6. 次のアニメーション時点のタイムラインをクリック
f:id:tsuyushiga:20140216212947p:plain:w150

7. Transformの値を変更して、このタイムライン時点での形状を決定する
f:id:tsuyushiga:20140216212952p:plain:w300

キーフレーム間のアニメーションは自動的に作ってくれます。
以上では、呼吸している感じを出すために胸部のパーツを少し拡大させました。
(Scaleの値を 1.00 -> 1.08)

注意しなければならない点は、
Spine は各ボーンに親子関係があるみたいです。
今回で言えば、胴体のボーンを拡大しましたが、頭が胴体の子にあたるため、
胴体ボーンを拡大すると、それに合わせて頭まででっかくなってしまったのです。
なので、それを避けるために、頭は「ずっと変わらない」アニメーションを設定しました。
(上の画像で、head も選択しているのはそのためです。)
微妙な対応ですが、他に方法が思いつかなかったので、
良い方法がわかればまた載せます。

次回は瞬きをさせたいと思います。(イメージの切替)