2014年9月26日金曜日

LWFのサンプルデモをAndroid(実機)で動かす

昨日からLWFというフレームワークを試してます。
LWFはGREEが開発しているオープンソースのフレームワークで、Flash CSをオーサリングツールとして利用して、2Dアニメーションのシーンを生成することができます。

現在では、Unity、cocos2d-x、HTML5などでデータを利用できるようです。

ちょっと触ってみた感じでは、LWFはゲームキャラクターを制御する目的のものではなく、シーン全体(例えばデモ、動きのある演出など)を構築するのに適しているように思いました。

導入方法などについては、以下のサイトで分かるかと思います。

GitHubにcocos2d-x用のサンプルプロジェクト Hello-LWF-Cocos2d-x があるので試してみたのですが、案の定、Android(実機)で実行できなかったので、修正点を書き残しておきます。


テスト環境
  • Mac OS X 10.9.5
  • cocos2d-x v3.3 beta0
  • Android NDK r9d
  • デバイス Nexus 7

まず、普通にビルドして実行すると、logcatに以下のようなメッセージが出ました。
Androidの画面にも「問題がありましたので〜」という、いつものつれないメッセージが出て、アプリが実行できません。
E/AndroidRuntime(4389): FATAL EXCEPTION: GLThread 299
E/AndroidRuntime(4389): java.lang.IllegalArgumentException: No configs match configSpec
E/AndroidRuntime(4028):     at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:863)

どうやらGLサーフェースの作成に失敗しているようです。
なんか見覚えがあるな〜と、以下の記事を思い出しました。

GLサーフェースの設定は、Androidの場合は Cocos2dxActivity.java 内で行っているのですが、エミュレータの場合は明示的に設定されてますが、実機の場合はデバイスのデフォルト設定のままで実行するので、デバイスによってはここで問題が起こるようです。(あくまで予想ですが)

Cocos2dxActivityのinit()メソッドの中に以下のコードを追加してやります。詳しくは、上記の記事も併せてお読み下さい。
// Switch to supported OpenGL (ARGB888) mode on emulator
if (isAndroidEmulator()) {                                      // これは元からあるコード
  this.mGLSurfaceView.setEGLConfigChooser(8 , 8, 8, 8, 16, 8);  // エミュレータの時に使用する設定
} else {
  this.mGLSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);
}

関連記事

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...