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 件のコメント:
コメントを投稿