まずは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(必ず小文字に)をリソースとして読み込めます。