まずはAndroid SDKとEclipseをダウンロードして、インストールや設定を済ませてください。
OpenGL ES 2を使ったアプリは、エミュレータで動作できません。必ず実機で動作確認してください。
ダウンロードしたAquaMotion3D.zipをEclipseのWorkspaceにコピーします。Eclipseで「File」→「Import」メニューを実行し、「General」→「Existing Projects into Workspace」を実行して、「Select root directory」でWorkspaceを選択し、Projects一覧からAquaMotion3Dを選びます。
AquaMotion3D.javaファイルで以下のようにしてキャラクターを表示させます。
package jp.vixar.aquamotion3d; import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.opengles.GL10; import android.content.Context; import android.opengl.GLES20; import android.opengl.GLSurfaceView; import android.opengl.Matrix; import com.roxiga.aquamotion3d.*; import com.roxiga.models.*; class AquaMotion3D implements GLSurfaceView.Renderer { private Scene3D _scene = new Scene3D(); private Context _context; public int _width; public int _height; private Model3D _obj = new Tonia();//①モデル宣言・インスタンス生成 public AquaMotion3D(Context context) { _context = context; } public void onDrawFrame(GL10 glUnused) { GLES20.glClearColor(0.2f, 0.6f, 1, 1.0f); GLES20.glClear(GLES20.GL_DEPTH_BUFFER_BIT|GLES20.GL_COLOR_BUFFER_BIT); GLES20.glUseProgram(_scene._program); Matrix.setLookAtM(_scene._vMatrix, 0, 500, 500, 500, 0, 100, 0, 0, 1, 0); _obj.draw(_scene);//②モデル描画 } public void onSurfaceChanged(GL10 glUnused, int width, int height) { GLES20.glViewport(0, 0, width, height); _scene.perspective(45,(float) width / height,1,10000); Matrix.orthoM(_scene._orthoMatrix, 0, 0, width, height, 0, 100, -100); } public void onSurfaceCreated(GL10 glUnused, EGLConfig config) { _scene.onSurfaceCreated(); _obj.setTexture(_context.getResources(),R.drawable.tonia);//③テクスチャ読込 } public void actionDown(float x,float y) { } public void actionMove(float x,float y) { } public void actionUp(float x,float y) { } }
赤字の①~③を追加するだけで、キャラクターを読み込みテクスチャをセットしてアニメーションするキャラを描画できます。
①のModel3DクラスはTransMotionかVixar Motionから書き出したjavaファイルが扱えます。
Tonia()は女子高生のキャラのクラスのコンストラクタで、上記の3Dアニメーションツールから、「AquaMotion3D\src\com\roxiga\models」フォルダ内に書き出されたモデルデータです。
②で、①で読み込んだ女子高生モデルを表示します。
③で①で生成したキャラクターにテクスチャを貼ります。テクスチャは「AquaMotion3D\res\drawable」内に置かれた画像ファイルtonia.jpg(必ず小文字に)をリソースとして読み込めます。