週刊アスキー

  • Facebookアイコン
  • Twitterアイコン
  • RSSフィード

アドネットの最新事情やOpenGLバグ回避手法を披露!Cocos2d-x Talks #5レポ

2015年07月29日 21時30分更新

文● 吉田ヒロ 取材協力●清水友晶(Chukong Technologies Japan

 みなさん、こんにちは。いまは週刊アスキーの吉田でございます。さて7月23日に東京・渋谷のヒカリエにあるLINE(株)で「Cocos2d-x Talks #5」が開催されましたよ。これまでのCocos2d-x Talksでは触れられていなかったマネタイズについての講演内容が特に興味を引きました。

Cocos2d-x最新情報

 まず、「Cocos2d-x最新情報」としてChukong Technologies Japanでエンジニアリングディレクターを務める清水氏が登壇しました。

Cocos2d-x Talks #5
Chukong Technologies Japanでエンジニアリングディレクターを務める清水友彦氏。

 冒頭では、リリースされたばかりのCocos2d-x v3.7についての説明がありました。v3.xは段階的に3Dの機能を強化してきたが、とりあえずはv3.7で3D系新機能の追加は終了し、今後は各機能のパフォーマンスを上げていくことに注力するそうです。

Cocos2d-x Talks #5

 前回のCocos2d-x Talks #4でも紹介されたとおり、v3.7では従来は別ラインの開発環境だったCocos2d-JSを取り込み、C++もしくはLuaでのネイティブアプリ、JavaScriptによるウェブアプリを、すべてCocos2d-xで開発可能になりました。

Cocos2d-x Talks #5

 Cocos2d-JSについては、これまで日本語の情報が少なく初心者がプログラミングを始めるのはハードルが高かったのですが、Cocos2d-xのJavaScriptを紹介する書籍が8月と9月に刊行されることが決定しました。

Cocos2d-x Talks #5

 各種サービスのSDKをまとめて管理できるSDKBOXについての説明もありました。

Cocos2d-x Talks #5

 SDKBOXを利用すると、iOSやAndroidなどのOSを問わずに、アプリ内課金やGoogle Analytics、アドネットSDKなどをアプリに組み込みやすくなります。

Cocos2d-x Talks #5
Cocos2d-x Talks #5

 また、複数のSDKの導入を用意にするANYSDKの日本語版については、アプリ内課金のシステムやペイメントなどをまとめて処理できる点を強調していました。

Cocos2d-x Talks #5
Cocos2d-x Talks #5

 7月28日(火)から、日本版のANYSDKのオープンベータを開始することも発表。

Cocos2d-x Talks #5

 ANYSDKは、Cocos2d-xだけでなく、Unityにも対応。アプリストアは、App Store、Google Play、Amazon Androidアプリストアをサポートします。 

Cocos2d-x Talks #5

これからのカジュアルゲームに必要な企画とマネタイズのポイント

 次に登壇したのは、「今日、彼女が死んだ」などの大ヒットゲームで有名な(株)Nagisaで執行役兼メディア事業部マネージャー/ディレクターを務める井上氏。アプリの開発手法ではなくマネタイズのポイントをていねいに解説してくれました。

Cocos2d-x Talks #5
(株)Nagisaで執行役兼メディア事業部マネージャー/ディレクターを務める井上大紀氏。

 Nagisaがこれまでに公開しているアプリは32本、累計ダウンロード数は約470万本、平均ダウンロード数は15万本とのこと。

Cocos2d-x Talks #5

 Nagisaでは、カジュアルゲームを作る際にジャンルごとの特性を考えて開発を進めています。ボードゲームやパズルゲームは開発の工数が多く収益性は低い傾向である一方、育成やタップ、放置といったゲームは開発工数が少ないにもかかわらず収益性は高いと分析していました。

Cocos2d-x Talks #5

 同社は、時間はあるがお金がないという中高生女子を念頭にアプリを開発しているそうです。女子内で流行すれば、その流れは男子にも波及することが多いとのこと。そして、あくまでも個人的な見解としながらも、彼氏や彼女、元カレや元カノ、片思いなど恋愛に関連したゲームの人気が高いそうです。一方で、ホラーやアウトローなど女子受けが難しいジャンルについてはヒットを生み出すのも難しいとのこと。

Cocos2d-x Talks #5

 とはいえ、カジュアルゲームもユーザーの要求レベルが上がっており、イラストや世界観だけでなくバックグラウンドストーリーやタップとほかの操作を組み合わせるといったゲーム性など「ちょい足し」要素が重要になってきているそうです。イラストも重要で、「続きを見たい」というニーズを喚起することがキモとのこと。

Cocos2d-x Talks #5

 さらにApp Storeなどでのアプリの紹介方法についての解説もありました。あまり詳しくゲーム内容を紹介するのではなく、世界観やさわりの部分だけに留めることで、ダウンロードを促す手法が有効とのこと。

Cocos2d-x Talks #5

 アプリストア内の検索時に効果を発揮するASO(アプリストア最適化)も重要な施策だそうです。ランキング上位から消えたアプリでもASOを施すことで、1日1万人〜1.5万人のユーザーの獲得に成功しているそうです。

Cocos2d-x Talks #5

 アプリ開発者の間で大問題に発展していたApp Storeでのリジェクト祭りについても解説。一時期は、アイコン型のアプリ内広告を入れているアプリは新規公開はもちろん、バージョンアップでさえリジェクトの対象となっていたそうです。ひどい時には、一部のアドネットワークのSDKを入れているだけで審査が通りにくくなったとのこと。Nagisaでもリジェクトを食らったアプリがあったそうですが、試行錯誤した結果、フッターバナー(画面下部の帯状広告)とインタースティシャル(画面遷移のタイミングなどで表示される広告)では問題がなかったとのこと。

Cocos2d-x Talks #5

 アイコン型広告に代わるものとして、スモールフロート広告を紹介。これは、画面の隅などのエリアに配置され、この部分をタップすることでポップアップ広告が表示されるというもの。仕組み的にはアイコン広告と同じですが、画面に同化している点でアプリ全体のデザインの統一性を崩すことなく実装できるというメリットがありますね。すでに、スモールフロート広告→ポップアップ広告→ストアという流れであればApp Storeの審査を通過したそうです。スモールフロート広告からのストアへの直リンクについては検証中とのこと。

Cocos2d-x Talks #5

 アイコン広告の代わりなるものとしてもう1つ紹介されたのが、インフィードアドという手法。これは、広告主がアドネットワークの会社に渡した(入稿した)データを、アプリ側で自由なサイズで表示できるというもの。アプリの画面内に直接置けるのはアイコン型と変わりませんが、縦長や横長などのサイズが一定しないのでアイコン型よりも広告用スペースを多めに空けておくという準備が必要とのことでした。

Cocos2d-x Talks #5

 最後に、ゲームバランスについて「今日、彼女が死んだ」を例に解説してくれました。重要なのは、ステージクリアゲージ数、アイテム最大表示数、アイテム復活秒数とのこと。ステージクリアゲージ数は少しづつ上げていくことでユーザーに「すぐクリアできそう」と思わせるのが重要。アイテム最大表示数については、多くを表示してしまうとユーザーがアイテム回収後にアプリを閉じてしまい、広告に接する機会が減るそうです。アイテム復活秒数については、短くすることでゲームを長時間遊んでもらえる可能性は高まるが、ある程度の待ち時間を設けないとやはり広告に目が行かないそうです。このあたりのバランスについては、「今日、彼女が死んだ」をプレイしてみるとよくわかります。

Cocos2d-x Talks #5

 最後に「今日、彼女が死んだ」のパロディーとして(株)よしもとクリエイティブ・エージェンシーと組んで「今日、NONSTYLEの井上が死んだ」というゲームを近々リリースするとのこと。「今日、彼女が死んだ」では、タイムマシンで過去に戻り、ゲームをクリアすることで彼女の人生に好影響を与え、痩せたり、声がかわいくなったり、性格がよくなったりしましたが、「今日、NONSTYLEの井上が死んだ」ではどうやらそういう展開にはならないようです。

Cocos2d-x Talks #5

導入が増えている!?Cocos2d-x+BISHAMONで生み出す世界

 3人目の登壇者は、マッチロック(株)でBISHAMONエバンジェリストを務める後藤氏。「BISHAMON」は、Cocos2d-xなどと一緒に使えるビジュアルエフェクトツールです。

Cocos2d-x Talks #5
マッチロック(株)でBISHAMONエバンジェリストを務める後藤 誠氏。

 BISHAMONはもともと、開発現場で使われていたツールを汎用化したもので、3Dパーティクル・エフェクト(VFX)に特化しているとのこと。利用できるのは、Windows 7もしくは8で、DirectX 9.0c以上が動作する環境です。

Cocos2d-x Talks #5

 3D系の開発環境ではおなじみのプレビューエリアや設定項目などを備えた操作画面で、3Dパーティクルをその場でチェックできます。

Cocos2d-x Talks #5
Cocos2d-x Talks #5

 BISHAMONで制作した3Dパーティクルは、同ツールの専用ファイルであるBMSLNファイルとして書き出したあとバイナリーデータ(BMBファイル)に変換することで、BISHAMON SDKを組み込んだCocos2d-x上で再生可能となります。BMBファイルの生成まではWindows環境が必要ですが、Cocos2d-xに取り込んで実際にプログラミングを進める際はOS X(Mac)でもOKです。

Cocos2d-x Talks #5

 また、Cocos2d-xだけでなく、iOS、Androidのネイティブの開発環境にもそのまま組み込むことが可能です。

Cocos2d-x Talks #5

 Cocos2d-xに取り込んだエフェクトのデモもありました。BISHAMONを使うことで、シューティングゲームなどでの敵機の爆発表現などがかなりリッチになりますね。

Cocos2d-x Talks #5

 昨年11月に募集し、今年3月に結果が発表された「第4回ゲームエフェクトコンテスト」の入賞作品の紹介もありました。Cocos2d-xだけでは表現が難しいエフェクトをゲームなどに利用できるのは魅力です。

Cocos2d-x Talks #5
Cocos2d-x Talks #5
Cocos2d-x Talks #5

 なお、コンテストの入賞作品についてはYouTubeで動画公開されていますよ。

Brain Dots開発秘話 – Cocos2d-x3.5の物理演算システムを活用したゲーム開発 -

 最後の登壇者は、(株)トランスリミットの高場氏と川端氏。同社のパズルゲーム「Brain Dots」をCocos2d-xで開発した際のメリット、デメリットが紹介されました。

Cocos2d-x Talks #5
(株)トランスリミットでクライアントサイドエンジニアを務める川端和樹氏。

 トランスリミットの開発環境としては、SNSでのシェアやゲームプレイ録画、アプリ内課金、アプリ内広告などの汎用的な機能を独自のライブラリ「Translimit-core」として用意しており、ゲーム部分のみを新たに開発するという手法を取っているそうです。このあたりのアプローチ方法は、個人開発者も同じですね。

Cocos2d-x Talks #5

 「Brain Dots」は、画面上に置かれた青と赤の球をひと筆書きの線を使ってくっつけるというゲームなのですが、Cocos2d-x 3.6で開発したところ、線や球が静止せずに動き続けるという不具合が発生したそうです。試行錯誤した結果、Cocos2d-xのバージョンを3.5にダウングレードすることで解決したとのこと。

Cocos2d-x Talks #5

 また、「Brain Dots」では動画共有機能として「EVERPLAY」のシステムが導入されていますが、Cocos2d-xで開発した場合、Android側でオーディオが録音できないという問題が発生したそうです。そのため、Cricket Audio Engineを導入せざるを得なかったそうです。使われているOSのバージョンも幅広く、各端末メーカーごとにハードウェア仕様も異なるAndroid端末の開発の難しさがわかりますね。

Cocos2d-x Talks #5

 「Brain Dots」でのひと筆書きの線は、書き終わったあとにそのままブロックのように固定化されて、青と赤の球に接触するのですが、線の角部分の処理についても試行錯誤したそうです。本来であれば、線の折れ曲がり点を区切りとして複数の図形として描画する必要があるそうで、線が3カ所で曲がっていると3つの直線のオブジェクトを連結させる必要があるそうです。しかし、これを忠実に再現すると、Androidのミドルレンジの機種では処理速度がついていかずゲームバランスが崩れることから、折れ曲がる部分は1点のみで連結させることで処理速度を稼げたとのこと。

Cocos2d-x Talks #5

 さらにAndroidでは、画面がブラックアウトする問題も発生したそうです。

Cocos2d-x Talks #5

 その1つが、アプリ内に埋め込んだ動画広告を視聴後にアプリ画面に戻ろうとすると、画面がブラックアウトするという問題。具体的にはスプライト表示やラベルなどが表示されなくなるそうです。これは、動画広告のコールバック時にOpenGLのコンテキストが存在していないことに起因する問題だったそうです。要するに、動画広告からアプリに戻る際に表示される画面が指定されていなかったわけです。iOSであれば自動的に元の画面に戻るようですが、Androidでは明示的にコード内で示す必要があるようですね。

Cocos2d-x Talks #5

 トランスリミットではこの問題を、Javaから受けたコールバックをCocosのスケジューラー処理で実行するようにして回避したそうです。

Cocos2d-x Talks #5

 また、RenderTextureで生成したテクスチャーがバックグランドから戻るとブラックアウトしてしまう問題も発生したそうです。

Cocos2d-x Talks #5

 Androidでは、OpenGLを利用してバックグラウンドに処理が渡されると、テクスチャーの情報がリセットされてしまうことが原因だったようです。もともとある画像から生成したテクスチャーは問題なく復元されるものの、動的に生成したテクスチャーはきれいさっぱりなくなるようです。そのため、動的に生成したテクスチャーをアプリ内で保存して使うことにしたそうです。こういった不具合への取り組みは開発者にとって非常に有用な情報ですね。

Cocos2d-x Talks #5

 今回で5回目となったCocos2d-x Talkですが、アプリのマネタイズ手法や開発時の問題解決などは実際に体験しないと答えを出せないところなので非常に参考になりました。

■関連サイト
Chukong Technologies
(株)Nagisa
BISHAMON((株)マッチロック)
Brain Dots((株)トランスリミット)

この記事をシェアしよう

週刊アスキーの最新情報を購読しよう