[Cocos2d-x] Cocos Creatorとは:開発ツールのまとめ
Cocos2d-xをベースとした新しい統合開発ツール(IDE)。
既存のCocos2d-xとは別物と考えたほうがいい(くわしくはこちら)。
既存のツールと異なり、UIやアニメーションの編集からJavaScriptのコーディング、ビルドまで一括して行えるエディタのこと。
基本的にCocos2d-JS(JSB、html5)を前提としており、C++、Luaの編集には対応していない(v1.2以降、ビルドすることは可能。Lua版は、将来的にエディタでも利用可能になる予定)。
エディタ上において、WYSIWYGでひとつひとつの要素を編集し、その各イベントにスクリプトを割り当てていく形でアプリを組み上げていく、いわゆるコンポーネント・ベースの開発環境。結果的にコーディング量は減る。
明らかにUnityを意識してつくられたもの。以前はfireballと呼ばれていた別のツールをCocos2d-xプロジェクトに取り込む形になった。
Cocos CreatorのCocos2d-xプロジェクトへの取り込みにともない、これまでの標準エディタであったCocos Studioは開発終了となった。その担当だった開発者たちは、メインの開発母体であるChukong Technologies社からすでに解雇されている。
実はCocos2d-xとは別物
Cocos Studioなどとは異なり、Cocos CreatorはCocos2d-xのための開発ツールではない。
あくまで独立したひとつの開発環境であり、すべての面でCocos2d-xと連携することは難しい。
上記のとおり、元々はfireballが内部ライブラリとしてCocos2d-xを採用していただけのため、さまざまな点で本家だったCocos2d-xとは仕様が異なる。
基本的にAPIは別
Cocos CreatorとCocos2d-xは別物のため、APIも似て非なるものになっている。
片方で使えたものが、もう片方で使えないこともしばしば。
つまり、それぞれでの開発はそれぞれのAPIリファレンスを参照する必要がある。
NodeやSpriteの扱いが異なる
名前は同じであっても、Cocos Creatorではエディタで扱いやすくするためか、Node系のオブジェクトが一部、独自の仕様に書き換えられている。
Cocos CreatorはCocos2d-xの一部でありながら、同じようにはいかない(Cocos2d-JSであっても)。
Cocos2d-xの経験があっても、基本的にCocos Creatorの扱い方を一から覚える必要がある。
問題点
Cocos2d-xのAPIが混在
上記のとおり既存のCocos2d-x(Cocos2d-JS)とCocos Creatorは別物と考えたほうがいいのだが、現実問題としてCocos Creatorの側がコードをまとめきれずに、前者と後者のAPIが混在する形になってしまっている。
たとえば表示オブジェクトのコンテナ系であるcc.Nodeやcc.Spriteは、Cocos2d-xとはまったくの別物。
名前まで一緒なので非常に混乱しやすいが、Cocos Creator側でベースとなるCocos2d-x(Cocos2d-JS)を独自にカスタマイズしているので、異なる部分がある。
しかもそれらの点に関する情報が公式でも不足していて、余計にわかりづらい。
つまり、単にCocos Creatorの使い方を覚えるだけでなく、常にCocos2d-xとの違いを考慮しながらコーディングする必要がある。
場合によっては、Cocos2d-xの経験が深い人ほど間違えやすい。
正直、非常に大きな混乱の元で、バグの温床になりかねない部分。
座標系がさらにややこしく
Cocos2d-xは以前から座標系がわかりづらいと不評だが、Cocos Creatorではさらに変更が加えられてしまっている。
cc.NodeはCocos2d-xではアンカーポイントが左下だが、Cocos Creatorでは中央(0.5, 0.5)にデフォルトで設定されている。
一方で、Cocos Creatorではcc.Spriteを動的に生成する場合、かならずcc.Node#addComponent(cc.Sprite)でつくる必要があるのだが、その場合はCocos2d-xのcc.Spriteとは逆にcc.Spriteのアンカーポイントの位置は左下として処理される。
ただし、Cocos CreatorのエディタでGUIを使ってつくったSpriteオブジェクトは、基本と同じで中央にアンカーポイントがある。
また、Sceneおよびそれにデフォルトで設定されるCanvasのアンカーポイントも中央。
元から複雑だったのが、さらにわかりづらくなっている。
Cocos Studioのファイルをインポートできない
現状、一部は読み込み可能だが、すべてには対応していない。過去の資産を活かしたいなら、開発が終了したCocos Studioを使いつづけ、APIで自前で読み込むしかないということ。
先行きが不透明
Cocos2d-xらしいというか、一時、ツール群がCocos(Cocos Studio)、Cocos Simulator(Cocos2d-html5用)、Cocos Creatorと別々になっていた。
今は、Cocos Creatorがメインのエディタとなって積極的に開発が進められているものの、使っているユーザーが多いCocos Studioをなんの前触れもなく完全に切り捨ててしまうあたり、やはりCocos2d-xは先が読めない。
以前にも、Cocos Studioが1.xから2.xへ移る際にかなり互換性が失われたり、Cocos Code IDEプロジェクトが突如消滅してダウンロードさえできなくなったりと、これまでのことがあるだけにけっこう不安を感じる。
# Cocos Simulatorは、Cocos Creatorの組み込み実行環境(実体はChromiumベースのブラウザ)として今も使われている。
かなりの情報不足
公式のドキュメントは英語の基礎的なチュートリアルしかなく、くわしい情報はほとんどない。
ましてや日本語での解説は乏しく、英語の情報でさえ断片的なものしかないため、エディタのコードを直接読むか、自分でいろいろ試しながらやるしかない。
まとめ
次々とツールが出てくるあたりまさにオープンソースらしいと感じるものの、相変わらず長期的なロードマップが不明で、安心感を感じられないところがUnityに差をつけられている原因のひとつだろう。
こうした状況では本来ならCocos Studioをしばらく使いつづけ、しばらくは様子見のほうがいいはずなのだが、Cocos Studioの開発が終了してしまったからにはCocos Creatorに移行するしかない。
機能的には必要十分、かつオープンソースで無料のCocos2d-xを「Unityのように」使えるのなら魅力的ではあるのだが、あくまでツールやアセット、そして情報の多さを重視するなら素直にUnityを使うか、これからもCocos Studioを中心に開発することをおすすめする。