Last active
August 29, 2015 14:07
-
-
Save takashi1975/c6af49c744c39445b454 to your computer and use it in GitHub Desktop.
Cocos2d-x v3.2 で Spine を動かす
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
作成したプロジェクトに含まれる Spine 用のクラスでは実行時にエラーが発生 | |
ググると、Spineのランタイムを置き換えが必要な様子 | |
■準備 | |
~~ 1-1. ~~~ | |
本家のサイトが提供する git からプルもしくはダウンロード | |
https://github.com/EsotericSoftware/spine-runtimes | |
~~ 1-2. ~~~ | |
ランタイムの中から必要なのは以下の箇所のファイル (2014/10/05現在最新時) | |
spine-c | |
+- include ... .hファイル | |
+- src | |
+- spine ... .cファイル | |
spine-cocos2dx | |
+- 3 | |
+- src | |
+- spine ... .cpp/.h ファイル | |
~~ 1-3. ~~~ | |
まずは自分のプロジェクトから {my_project}/cocos2d/cocos/editor-support/spine フォルダをリネーム (うまくいったら削除) | |
~~ 1-4. ~~~ | |
{my_project}/cocos2d/cocos/editor-support/spine フォルダを作ってそこに上記のソースファイルを全部コピー | |
■iOS編 | |
~~ 2-1. ~~~ | |
XCode でプロジェクトを開き、自分のプロジェクトの中にある cocos2d_libs.xcodeproj を開いて editor-support/spine をいったん削除 | |
~~ 2-2. ~~~ | |
editor-support の上で右クリックし、[Add File to cocos2d_libs.xcodeproj ...] を選択 | |
用意しておいた spineフォルダを選択し、ダイアログ下部にある [Add to targes] のリストから 以下をチェック | |
・cocos2dx Mac | |
・cocos2dx iOS | |
(targetにチェックが漏れているとコンパイルが通らない。後でチェックできるけど、追加した全ファイルで操作する必要があるのでめんどくさい) | |
~~ 2-3. ~~~ | |
Resources に Spine のサンプルデータをコピー(gobulins)し、HelloWorld に以下のサンプルコードを記述 | |
Size visibleSize = Director::getInstance()->getVisibleSize(); | |
Vec2 origin = Director::getInstance()->getVisibleOrigin(); | |
auto center = Point(visibleSize) * 0.5f; | |
{ | |
SkeletonAnimation * skeleton = SkeletonAnimation::createWithFile("goblins-ffd.json", "goblins-ffd.atlas", 0.6f); | |
skeleton->setPosition(center); | |
skeleton->setSkin("goblin"); | |
this->addChild(skeleton); | |
} | |
~~ 2-4. ~~~ | |
iOS実機転送 (エラーがなければ画面にゴブリンが現れる) | |
■Android編 | |
~~ 3-1. ~~~ | |
spineフォルダに Android.mk ファイルが必要なので、以前の spineフォルダから Android.mk ファイルをコピーし、LOCAL_SRC_FILES部分を編集 | |
変更の大部分が cpp -> c になるのと、構成ファイルが異なるので以下のような記述が楽 | |
C_FILES := $(shell find $(LOCAL_PATH) -name *.c) | |
CPP_FILES := $(shell find $(LOCAL_PATH) -name *.cpp) | |
LOCAL_SRC_FILES := $( C_FILES:$(LOCAL_PATH)/%=%) | |
LOCAL_SRC_FILES += $(CPP_FILES:$(LOCAL_PATH)/%=%) | |
~~ 3-2. ~~~ | |
proj.android にある Android.mk を編集 | |
(以下の行がコメントになっているので先頭の # を消す) | |
LOCAL_WHOLE_STATIC_LIBRARIES += spine_static | |
$(call import-module,editor-support/spine) | |
~~ 3-3. ~~~ | |
./build_native.py を実行して libcocos2dcpp.so を作成 | |
~~ 3-4. ~~~ | |
Eclipse でプロジェクトを開き、Android実機へ転送して確認 | |
■ 参考 | |
詳しくは以下のサイトがとても参考になりました ^^; | |
http://blog.shamebird.com/cocos2d-x-3-2-spine-dong-kanai/ | |
http://qiita.com/akerusoft/items/63f23d1387275af2f894 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
######################################################### | |
# Spine/Android.mk | |
######################################################### | |
#-------------------------------------------------------- | |
LOCAL_PATH := $(call my-dir) | |
include $(CLEAR_VARS) | |
#-------------------------------------------------------- | |
LOCAL_MODULE := spine_static | |
LOCAL_MODULE_FILENAME := libspine | |
#-------------------------------------------------------- | |
#コンパイル対象 (フォルダ以下の全てのソースファイルをコンパイル対象) | |
C_FILES := $(shell find $(LOCAL_PATH) -name *.c) | |
CPP_FILES := $(shell find $(LOCAL_PATH) -name *.cpp) | |
LOCAL_SRC_FILES := $( C_FILES:$(LOCAL_PATH)/%=%) | |
LOCAL_SRC_FILES += $(CPP_FILES:$(LOCAL_PATH)/%=%) | |
#-------------------------------------------------------- | |
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/.. | |
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../.. \ | |
$(LOCAL_PATH)/.. | |
#-------------------------------------------------------- | |
LOCAL_WHOLE_STATIC_LIBRARIES := cocos2dx_static | |
#-------------------------------------------------------- | |
include $(BUILD_STATIC_LIBRARY) | |
#-------------------------------------------------------- | |
$(call import-module,.) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment