SpriteStudio / SS5PlayerForCocos2d-x

OPTPiX SpriteStudio 5 で制作したアニメーションデータを Cocos2d-x v3 v2 上で再生するためのプログラムです。
MIT License
8 stars 7 forks source link

v1.3.5 SS5Playerを使用したプロジェクトがXcodeでビルドできません #62

Open takahoge opened 7 years ago

takahoge commented 7 years ago

Xcode v8.3.3, cocos2d-x v3.15.1, SpriteStudio5 を使用しています。

Xcode上でcocos2d-x プロジェクトの Classes フォルダに、CommonフォルダとSS5Player.h/cpp, SS5PlayerData.h, ssShader_frag.h を追加しました。 さらに、Resoources フォルダに、ssbpファイルと、セルマップに使用したpngファイルを追加しました。 以上の状態で、以下のコードを実行すると、ビルドエラーが出てしまいました。 _____MainScene::init()____ auto resourceManager = ss::ResourceManager::getInstance(); resourceManager->addData("AAA.ssbp");

auto player = ss::Player::create(); player->setData("AAA"); player->play("AAA/walking"); // どうやらここでエラーが出るようです player->setPosition(200, 200); this->addChild(player);


____エラーログ_____ Apple Mach-O Linker Error "vtable for ss::SsEffectRenderV2", referenced from: "ss::SsPartState::SsPartState()", referenced from: "ss::SsPartState::~SsPartState()", referenced from: Linker command failed with exit code 1(use -v to see invocation)


いったい何が原因かわかりますでしょうか。よろしくお願いいたします。

DKAlpha commented 7 years ago

Cocos2d-x Ver3.15.1とSS5PlayerVer1.3.5、VisualStudioCommunity2017の組み合わせて動作を確認しましたが、ビルドとアニメーションの再生はできましたので、Cococsのバージョンアップによる影響ではないようです。 こちらのIssueに書かれております手順は試していただけましたでしょうか? https://github.com/SpriteStudio/SS5PlayerForCocos2d-x/issues/42

とのことなのでフォルダ構成が違う事によるものではないかと推測しております。 先ほどのIssueを参考にプロジェクトのフォルダ構成を見直してみていただければと思います。

takahoge commented 7 years ago

回答ありがとうございます。

42 を確認しましたところ、以下の2つのことを疑問に思いました。

(自分はプログラミング初心者ですので、言ってることがおかしいようなことがあれば、その都度指摘していただけると幸いです。)

1つ目

42 のXcodeでのフォルダ階層を示した画像について、画像ではSSPlayer以下が、黄色のフォルダアイコンの階層になっています。しかし、これはXcode内での仮想的なグループであって、フォルダではないと思います。(実際のフォルダは青色のフォルダアイコンになると思います。)回答者様の文脈から判断すると、青色アイコンでなければおかしいと思うのですが、黄色アイコンでもよろしいのでしょうか?

なお、上で述べた黄色アイコンで、SSPlayerのファイルをXcodeに登録し、SSPlayer関係の全てのファイルないで、#include ""内の / 以前を削除したところ、サンプルプログラムは無事Xcodeで起動することができました。 例)#include "../common/SSPlayer.h" --> #include "SSPlayer.h"

2つ目 自分で作成したssbpファイルと、セルマップ用のpngファイルをサンプルプログラムに追加し、サンプルプログラム上の、ssbp, pngファイルに対応する部分を自作のものに書き換えたところ、ビルドは成功しましたが、プログラム起動後に落ちてしまいます。何が原因として考えられるかわかりますでしょうか?

よろしくお願いいたします。

takahoge commented 7 years ago

2つ目の疑問は解決しました。単なるスペルミスでした。お騒がせしてすいません。

DKAlpha commented 7 years ago

1つめの疑問についてですが、Xcode上グループであっても実際のファイルの場所がこのようなフォルダ構造になっている状態でXCodeに登録していただければ、ヘッダの変更を行わなくても参照する事ができます。 ヘッダファイルを編集されたという事で、今後プレイヤーを更新するような事がありますと、再度ヘッダファイルの編集が必要になりますので、想定しているフォルダ構造で使用していただく方が更新は楽かと思います。

2つめの疑問は解決されたという事でよかったです。

今後もスプライトスタジオをよろしくお願いいたします。