ROXIGA・COM

AquaMotion3Dの使い方

EclipseでAquaMotion3Dライブラリを使って3Dキャラをアニメーション表示させる方法です。

Roxiga.com

まずは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クラスはTransMotionVixar Motionから書き出したjavaファイルが扱えます。
Tonia()は女子高生のキャラのクラスのコンストラクタで、上記の3Dアニメーションツールから、「AquaMotion3D\src\com\roxiga\models」フォルダ内に書き出されたモデルデータです。
②で、①で読み込んだ女子高生モデルを表示します。
③で①で生成したキャラクターにテクスチャを貼ります。テクスチャは「AquaMotion3D\res\drawable」内に置かれた画像ファイルtonia.jpg(必ず小文字に)をリソースとして読み込めます。