【セミナー】Cocos2d-xの弱点とその克服とは。CRI・ミドルウェア製品の導入により本格的なゲーム開発が実現? 開発に役立つツールや事例も紹介


去る2014年7月18日に、ゲーム開発者向けツールとミドルウェアの展示会「Game Tools & Middleware Forum 2014」(GTMF)が東京で開催された。「GTMF」は、ゲーム開発者がツール・ミドルウェアベンダーと直接意見交換できる数少ないイベントであり、東京のみならず大阪での開催を通じて、全国規模でゲーム開発者とのコミュニケーション関係を構築する役割も担う展示会だ。

当日はCRI・ミドルウェアやウェブテクノロジ、モノビットといったミドルウェア会社をはじめ、Cocos2d-x、Unity、エピック・ゲームズ・ジャパンといったゲームエンジン会社が一堂に会し、ゲーム・アプリ開発技術のセッションや展示が行われた。

本稿では、日本Cocos2d-xユーザ会の清水友晶氏が登壇した「Cocos2d-xの事例紹介と応用」のセミナーレポートをお届け。今話題であるCocos2d-xの事例紹介をもとに、Cocos2d-xが持っている機能を実例を通して紹介されたほか、Cocos2d-xの開発に役立つツールやフレームワークなども紹介。

 

■Cocos2d-xのメリット&デメリット


今回登壇したのは、「日本Cocos2d-xユーザ会」で代表を務める清水友晶氏。「日本Cocos2d-xユーザ会」とは、開発元のChukong Technologies社公認のCocos2d-xのための自由なユーザーコミュニティだ(2013年3月1日設立)。これまで関連する書籍の発刊をはじめ、入門者から上級者までを対象とした勉強会なども定期的に開催している。また、実際にCocos2d-xの開発者も参加していることもあり、海外間でも交流が盛んに行われているようだ。
 
「日本Cocos2d-xユーザ会」
 
さて、そもそも「Cocos2d-x」とはどういうツールなのか。Cocos2d-xは、スマートフォンゲーム開発においてUnityに並んでよく使われる2Dゲームフレームワーク。最大の特徴はオープンソース(MITライセンス)であるほか、Android2.3-、iOS5.0-など10数種類にも及ぶクロスプラットフォーム開発が可能なこと。なお、開発言語はC++、Lua、Javascriptである。おもにZynga、Wooga、Gamevil、Glu、グリー、コナミ、TinyCo、HandyGames、IGG、Disney MobileなどがゲームやアプリにCocos2d-xを採用している。

はじめに清水氏は、Cocos2d-xのメリットとデメリットについて解説してくれた。前述しているように、Cocos2d-xはオープンソース(MITライセンス)のため、無償かつソースが公開されており、手軽に自身でソースを書き換えられるメリットがある。また、クロスプラットフォーム開発にも対応しており、これまでiOS/Androidと別々に手掛けていて倍の工数がかかっていたことも、大幅に開発期間の短縮が実現できるのも特徴。また、オープンGLを知らなくてもパフォーマンスの高い画像処理を行えることも利点に挙げた。

一方デメリットとして、「ネイティブ間の連携が面倒」であることを提示した。たとえばAndroidの場合では、アプリ内課金だとAndroid SDKを利用する必要がある。そのときC++からJavaへの変換が必要になり、JNIというものを使うのだが、こちらを勉強するのに時間がかかるのがネックという。また、Cocos2d-xはフレームワークであるため、画面構成やアニメーションの作成に時間がかかる(別途エディタを利用すれば解消)ほか、統合開発環境がないためOS毎の開発環境が必要となる(こちらも現在ツールが開発されているので楽になっている)。

そして、巷では「内部で変な処理をしている」「無駄な処理が行われている」「ソースが読みづらい」というデメリットも挙がっているとのこと。ただし、これらはオープンソースであるが故に見えてしまうようで、必要なところはプロジェクトに合った形に書き換えることを勧めた。そのほかの問題点などは、「Pull Request」で送ってほしいと言葉を添えた。ちなみに日本人の開発者は、海外の開発者と比べて「Pull Request」を送ることが少ないようだ。
 

続いてCocos2d-xの開発手順について。おもにC++開発に向いているため、iOSをメインで開発(Xcode)して、時折Android側で確認することが必要という。たとえば、iOS側で大きな機能を追加した際に、Android側でも動作するかを確認するといった具合だ。こうした両OS間におけるデバッグのやりやすさも利点のひとつであろう。

 

■Cocos2d-xの開発事例


ここからは、ゲームアプリ『タワーオブスペルズ』を題材にしたCocos2d-xの開発事例について解説してくれた。『タワーオブスペルズ』は、本格的パズルゲームでありながら、遊んでいるだけで英単語(スペル)を学べるゲームアプリ。パズルバトルでストーリーを進めながら、スペルリストを増やして英語を学んでいくことで、プレイヤー自身も成長していくことができる作品だ。また、登場キャラクターは「ビックリマン」を世に送り出したグリーンハウスによる描き下ろし。
 

『タワーオブスペルズ』の開発では、Cocos2d-x 3.1.1を使用(開発中はCocos2d-x 3.0 deta)。画面のUIやアニメーションはCocosBuilder 3 alpha 5を使用しており、画像はTexturePacker、一部のフォントはGlyphDesigner、パーティクルはParticleDesignerなどの開発ツールを用いている。

はじめに画像表示の事例について、大量の画像表示が必要であってもパフォーマンスの良い動作が実現できることを挙げた。さらに「ビックリマン」のキャラクターデザインを務めたグリーンハウスによる描き下ろしのため、簡単にハッキングされて画像だけが抜き取られないよう、TexturePackerにより画像の暗号化も行っているという。なお、暗号化に際してパフォーマンスが落ちることはないとのこと。そのほか画像表示において、Androidなど多種多様な解像度に対する端末でも簡単に対応可能のようだ。

また、キャラクターの編成画面や図鑑などは、iOS開発者にはお馴染みの「UITableVier」と似たような機能、「テーブルビュー」を使用。この「テーブルビュー」では、たとえカードが1000枚以上あったとしてもスルスル動くようになっている。というのも画面に表示されていない部分は、メモリ上に無い状態となっているようだ。きちんと見える部分だけをメモリに残しておいて、スワイプするとこれらを読み込もうとする処理が行われるとのこと。
 
 

さらにCocos2d-xには、UserDefaultクラスにより、簡単にデータを保持できるデータ管理が標準機能として備えられている。なお、SQLiteはサポートされていないが、SQLiteはオープンソースのため、プロジェクトのなかにソースを組み込むことで容易に実装可能なようだ。暗号化については、前述したようにTexturePackerにより簡単に画像の暗号化ができる。Minizipで利用されているcrypt.hを取り込むことで、Zipファイルの暗号化にも対応。AESは標準では非対応だが、dualface氏が公開しているCCCryptクラスを利用することで可能。BASE64,MD5,SHA1などにも対応している。こうしたところは、オープンソースの利点となろう。

 

■Cocos2d-xの弱点とその克服




Cocos2d-xは、画像まわりのパフォーマンスは良いのに対して、どうやら音声に関しては弱点が多いとのこと。Cocos2d-xが用意している機能では、BGMを2曲同時に流すことができないほか、OSによりSE先読みの有無が異なるなど不便な点も多いようだ。さらに動画も再生できるのだが、スプライトとしてひとつひとつのアニメーションを動画で作成して、それらをスプライトとして表示することが、いまのCocos2d-xではできないという。

そこで新たな対策として、CRI・ミドルウェア社の高画質・高機能ムービーミドルウェア「CRI Sofdec(TM)2」(以下「Sofdec2」)、及び統合型サウンドミドルウェア「CRI ADX(TM)2」(以下「ADX2」)2製品のプラグインを導入することを発表した。Cocos2d-xの最新バージョンに対応することで、高品質・高機能ムービー・サウンド再生機能を実現し、演出面およびサウンド面からCocos2d-xの本格ゲーム開発が昇華されていくという。ふたつの製品の概要は以下の通り。

■高機能ムービー再生システム「CRI Sofdec2」
ムービーの活用という新しい演出手法

「Sofdec2」は、クロスプラットフォーム開発に対応した高機能ムービー再生ミドルウェア。独自コーデックにより、ゲームにムービーを重ねたリッチな演出(動画を重ね合わせた再生や、スプライトへの動画貼り込みなど)を容易に実現。ムービーを使用することで、データ容量を抑えたリッチ演出が可能になる。
CRI Sofdec2製品ページ

■オール・イン・ワン型オーディオソリューション「CRI ADX2」
ゲームに不可欠なサウンド演出の課題を解決

「ADX2」は、クロスプラットフォーム開発に対応したオール・イン・ワン型のゲーム開発向けオーディオソリューション。高機能かつ操作性の高いサウンドオーサリングツールで、BGM・セリフ・効果音の複数音同時再生や、インタラクティブサウンド、さまざまなエフェクト等のゲーム制作に不可欠なサウンド演出を手軽に実現。また、高圧縮・高音質・低負荷で扱いやすい音声コーデックを利用できる。
CRI ADX2製品ページ

■製品版の無償試用お申し込み(法人向け)
ADX2およびSofdec2は、無償で試用・評価が可能。試用にはフル製品版を使える。
http://www.cri-mw.co.jp/contact/trial/

■無償版サウンドミドルウェア「ADX2 LE」for Cocos2d-x(個人向け)
CRIは、無償版サウンドミドルウェア「CRI ADX2 LE」のCocos2d-x対応版を開発中。ADX2 LEはこれまでインディーズ&同人ゲーム開発者向けに、Unity Pro環境、Windows(Visual Studio)環境に対応・提供してきたが、Cocos2d-x対応により、より多くの方にADX2 LEを利用可能となった。リリースは2014年11月予定。
「ADX2 LE」詳細


講演の最後に清水氏は、Cocos2d-xの開発ツールを紹介してくれた。

【Cocos studio】
cocos2Dのレイアウトやアニメーションを、GUIで調整可能(Cocos2dx,cocos2dJS)な開発ツール。現在はwindows上で動作可能(mac対応予定、現在ベータ版)。ちなみに開発はクローズドで行われている。無償、2013/9にver1.0.0.0がリリース。
関連サイト

【Cocos Code IDE】
cocos2DX(Lua),cocos2DJSのコードエディタ。コード補完・変更が即時に反映されるシミュレータ。エラー表示やブレイクポイントにも対応。さらにAndroid、iOS、Macアプリの作成をサポート。
関連サイト

【Super Animation Converter】
Adobe Flashで作成したswfファイルを、Cocos2d-xで読み込める形式に変換するツール。複数アニメーションの作成も可能。
関連サイト

【Texture Packer】
テクスチャアトラス作成ツール。スプライトシートの暗号化。条件によっては無料で利用可能。
関連サイト
 
【Physics Editor】
物理エンジンで利用可能なシェイプを作成。こちらも条件によっては無料で利用可能。
関連サイト

【GlyphDesigner】
ビットマップフォント作成ツール。グラデーションやアウトライン、シャドウ、日本語にも対応。
関連サイト
 
【Particle Designer】
パーティクル作成ツール。30以上のパラメータをGUIで編集可能。また、公開されているパーティクルを利用可能できるほか、ビューアで手軽に確認できる。
関連サイト

 
株式会社CRI・ミドルウェア
http://www.cri-mw.co.jp/

会社情報

会社名
株式会社CRI・ミドルウェア
設立
2001年8月
代表者
代表取締役会長 鈴木 正彦/代表取締役社長 押見 正雄
決算期
9月
直近業績
売上高28億4000万円、営業利益9700万円、経常利益1億3800万円、最終損益3億3900万円の赤字(2022年9月期)
上場区分
東証グロース
証券コード
3698
企業データを見る