Cocos2d-xでいろいろな外部ツールを使う時のディレクトリ構造と設定

Cocos2d-x(Cocos2dでもですが)を使っていくと、いろいろな外部ツールを使って開発を効率化していくことになりますが、
複数のツールを使うようになってくると、ファイルの管理がだんだんややこしくなってきます。

ファイルをわかりやすく管理しつつ、変更があってもなるべく簡単に反映するための自分なりのやり方をメモしておきます。

Cocos2d-xと試してみたツールのバージョン

  • Cocos2d-x 2.1.4
  • TexturePacker 3.1.2
  • PhysicsEditor 1.0.10
  • ParticleDesigner 1.3.7
  • GlyphDesigner 1.7.7
  • Spine 1.4.29
  • TiledMapEditor 0.9.1
  • CocosBuilder 3.0a5

やりたいこと

  • プロジェクトに関係するファイルはソースやリソースファイルと一緒にGitなどで管理したい
  • Resourcesディレクトリに不要なファイルはできるだけ入れたくない
  • ツールからPublishしたらすぐに反映されるようにしたい(ツールによってはCleanなどが必要)

プロジェクトディレクトリの直下にAppResources(名前は任意)を作成し、その下にツール毎のディレクトリを作成します。
サンプルのプロジェクトディレクトリ名は"Cocos2dXSample"です。

当然、使用しないツールのディレクトリは不要です。
Resoucesディレクトリ上で直接ファイルを編集するツール(TiledMapEditorやParticleDesigner)のディレクトリは作成していません。

最終的に、Resourcesディレクトリはプログラムから読み込むファイルのみを置くので、こんな感じになります。

testplist.plistは関係ない別のファイルです。気にしないでください・・。


TeledMapEditor
Resoucesディレクトリ上のdmxファイルを読み込んで編集すればOKです。


Spine
Spineのファイル、各パーツの画像と、それらをまとめるためのTexturePackerのファイルをSpineディレクトリに置きます。

Spine上でのエクスポート先をResourcesディレクトリに設定

TexturePackerのPublish先もResourcesにします。


TexturePacker
テクスチャアトラスにまとめる画像とTexturePackerのファイルを、TexturePackerディレクトリに置きます。

Publish先をResourcesディレクトリに設定します。


PhysicsEditor
PhysicsEditorディレクトリにファイルを置きます。

PhysicsEditorに読み込む画像ファイル(Sprite)は、テクスチャアトラスでなければResoucesディレクトリから、
テクスチャアトラスを使うのであればTexturePackerディレクトリの画像ファイルを使うようにします。
Publish先はResoucesディレクトリです。


ParticleDesigner
Resourcesディレクトリ上のplistファイルをロードして編集すればOKです。
テクスチャファイル名を変更した場合、plistファイルを読み込んで再度保存した時にテクスチャファイル名が元に戻ってしまうようで、
そこだけ注意が必要です。


GlyphDesigner
GlyphDesignerディレクトリにファイルを置きます。

fntファイルとpngファイルのエクスポート先はResourcesディレクトリです。


CocosBuilder
CocosBuilderのプロジェクトファイルをCocosBuilderディレクトリに置きます。

”Project Settings"で、Resourcesディレクトリを指定します。

"Publish Setting"でPublish先をResources/ccbiとします。
※ここでPublish先をResourcesにしてしまうと、CocosBuilderのバージョンによってはPublishしたファイル以外をすべて消してしまうので注意が必要です。

XCodeに取り込む際は、"Create folder references for any added folders"を指定してccbiディレクトリごと取り込みます。

XCode上では青いディレクトリアイコンになります。

プログラムでの指定方法はこんな感じです。

MainLayer *layer = (MainLayer *)reader->readNodeGraphFromFile("ccbi/MainLayer.ccbi");

とりあえずこんな感じでしょうか。
開発途中で急にスプライト画像を追加することになっても、
TexturePackerのディレクトリに画像ファイル追加→Add Sprite→Publish
ですぐにプログラムから使えるようになりますし、CocosBuilderでも使えます。