2014年3月26日水曜日

Cocos2dxでSpineでのボーンアニメーションが上手くいかない解決方法

Spine 1.8.18 で出力した png/json/atlas を使い、 Cocos2d-x 2.2.2 でボーンアニメーションしようとした時に、CCEGLView::sharedOpenGLView()->setDesignResolutionSize を使うとテクスチャアトラスがそのまま表示されてしまいます。

最新のSpineにCocos2dxに入っているSpine Runtimeが対応出来ていない可能性があるので、今回はSpine Runtimeを入れ替えてみます。


Spine Runtimeの入れ替え

公式がGit Hub上でRuntimeを公開しているので、まずは以下のURL先からDLします。
https://github.com/EsotericSoftware/spine-runtimes

次にローカルのCocos2d-xフレームワーク内の以下ディレクトリへ移動します(ここでは2.2.2のディレクトリへ移動しています)。
・cocos2d-x-2.2.2/extensions/spine

フォルダ内のファイルを全て別の場所へ退避させ、先ほどDLしてきたRuntimeの以下ディレクトリにあるファイルを全てコピーしてきます。
・spine-c/include/spine
・spine-c/src/spine
・spine-cocos2dx/src/spine


iOSの対応方法

Xcodeを起動して、以下ディレクトリのファイルを最新の状態に参照し直します。
・extensions/spine

次に「Linked Frameworks and Libraries」に SpriteKit.framework を追加します。

Androidの対応方法

IDEにもよりますが、Xcodeでやった事と同じく以下ディレクトリのファイルを最新状態に参照し直します。
・extensions/spine

次に以下のmakeファイルに、今回の変更分を反映させます。ビルドソース(LOCAL_SRC_FILES)に既存spineへのパスが書かれてあるので、そこを変更していけばOKです。
・extensions/Android.mk

それでも現象が解決しない場合

問題を切り分けるため、先ほどDLしてきたRuntimeの以下ディレクトリに入っているサンプルの png/json/atlas を使用してみてください。もし表示される場合、Spineツールで作成した内容に問題があります。
・spine-cocos2dx/example/Resources

Spineツール側の作成に問題がありそうな場合、boneの設定見直せば解決するかもしれません。

余談

ボーンアニメーションのさせ方は、先ほどDLしたRuntimeのサンプルコードを参照するのが手っ取り早いです。
・spine-cocos2dx/example

0 件のコメント:

コメントを投稿