きょこみのーと

元六本木でGo書いてました。今はVRでGo書いてます。

Cocos Studio v2をCocos2d-x3.3rc0で使ってみたメモ

ただのメモです。 あとで追記とかするかもです。

Cocos Studio v2.0.0.0beta0(for Mac)を使ってハマったことや、バグってるぽい箇所、v1.6.0.0で出来たことができないとかのメモ。

.csbと.csdをcocos2d-xで読み込む方法

  • .csd: CocosStudio ドキュメント?(XMLっぽいファイル)
    • CocosStudioでイジるのはこっち
  • .csb: CocosStudio バイナリ?(バイナリmsgパック?)
    • Publishすると吐出されるのがこっち

検証したのは、cocos2d-x3.3rc0です。

.csd

cocos2d::Node *node = CSLoader::getInstance()->createNodeFromXML("HogeScene.csd");
this->addChild(node);

.csb

cocos2d::Node *node = CSLoader::getInstance()->createNodeFromProtocolBuffers("HogeScene.csb");
this->addChild(node);

良くなった点

  • Macで作ったやつがcocos2d-xを改造しなくても読み込める
  • 色々バグってたのが直ってる(Labelまわりとか)

色々あるんだけど、ぱっと思いつかない。。。

v1.6.0.0で出来たのに〜

  • ListViewが使えない
    • Node配置して自分でListView::createして〜ってやってみたけど設定多すぎて辛い。現実的じゃない
    • 2014/12/30追記:一応v2.0.6からListViewが配置可能になった。しかし、ソースコードで動的にListViewの中身に配置する際にListの要素がWidgetクラスじゃないとダメなので結局そこはv1.6を使わないといけない・・・
  • ルートノードにAdaptive Resolutionを指定できない
  • Sizeに%を指定してもCocosStudio上で指定した画面サイズの%にしかならない
    • Cocos2d-xで実際のDesignResolutionSizeを使用してくれない

バグっぽい

  • publishしたcsbを読み込むとLabelに設定したOptionsがui::Text反映されない
  • SceneのサイズがcontentSizeに反映されない(昨日PRして今日マージ済み)
  • CocosStudioプロジェクト下にディレクトリを作成して、ディレクトリ内のNodeから別のcsdを参照するとパスがおかしくなる
    • hoge/HogeParts.csdからfuga/FugaParts.csdを参照する場合、hoge/fuga/FugaParts.csdを探してみつからない感じになってる
  • LabelのAutoAdjustがうまく効いてない時がある(最後の1文字が消える)
    • とりあえず、AutoAdjustやめてSizeを設定すれば大丈夫

2014/11/23追記:

  • CocosStudio v1.6の時とかは設定できたZOrderがv2では設定不要になっているが、v1.6をimportすると隠しパラメータとして設定されているため、Layerの順番をどうやって変えても重なってしまう問題が起こる
    • Vimとかで直接.csdを開いてZOrder=1とかを全部削除すれば解消されます

注意点

  • %でPositonやSizeを指定したNodeやPanelをコピペすると%が解除されてpxになる
    • ひどいお。。。
  • .csd間でNodeとかPanelをコピペできない(辛い)
    • Vimとかで直接開いて〜ってやればできそうなので、次バージョンで対応オナシャス!!!
    • 2014/12/7追記: Cut&Pasteを右クリックで行うと擬似コピー可能という裏ワザを発見
    • 2015/1/12追記: v2.0.6で擬似コピー裏ワザ使えなくなった。。。バグ扱いで消えたか...
  • UIEditorでつくったプロジェクトをv1.6.00のimportできるが、全部Node扱いになる(変更できない)
    • 厳密にいうと直接.csdファイルをvimとかで開いてSceneにすればOK
    • NodeのままだとAnchor周りの問題がおきる
  • new Fileで作ったLayerは途中でサイズ変更できない
    • vimとかで直接csdを開いてSizeをいじればなんとかなる
  • Mac版だけかもしれないけど、名前入力中に勝手に半角スペースが挿入される時がある

メモ

  • Scale 9 Gridの設定の仕方が変わってる
    • 引き伸ばさない部分のRectをpxで指定する感じになってる(Top, Bottom, Left, Right)
  • マウスのスクロールで拡大縮小制御するには、「Preferences」 -> 「Mouse」 -> Disable mouse wheel zoomのチェックを外す
  • AnimationEditorで作ったやつのimportもできる
    • SpriteFrameの切り替えが、それぞれSpriteが追加されてvisibleで切り替えたtimelineが作られる
  • plistとpngのセットになったSpriteSheetもResourcesにimportできる

その他

publish先変える方法Qiitaに書いたけど、上記のバグ?でTextのOptionが読めてないから使ってない。2014/12/6追記: Cocos2d-x3.3rc1では直ってます)

今はプロジェクト直下にpublis.shを作って、CocosStudioで編集したら実行して.csdを自分でrsyncしてる。2014/12/6追記: Cocos2d-x3.3rc1では直ってるので、普通にpublishしてます)

publish.sh

rsync -a --delete cocosstudio/ Resources/

ちょいちょい追記します。