SCEさんがARマーカを大量印刷してくれるそうなので、NyARToolkitのMarkerSystemからARプレイカードを使えるようにしました。
紹介記事→SCEJ、PS Vita「ARプレイ」を6月28日より開始
パッケージ化はしていないので、リポジトリから直接チェックアウトしてください。
- NyARToolkit for Java -r1059
http://sourceforge.jp/projects/nyartoolkit/scm/svn/commits/1059 - NyARToolkitAS3 – r1060
http://sourceforge.jp/projects/nyartoolkit/scm/svn/commits/1060 - FLARToolkit – r4753
http://www.libspark.org/browser/as3/FLARToolKit/branches/nyatla/v4/trunk - NyARToolkitCS – coming soon
- NyARToolkit for Unity3D – coming soon
- NyARToolkit for Android – coming soon
- NyAR4psg – coming soon
使い方
SimpleLiteをARプレイカードで動かすには、次のコードを書きます。
個のサンプルはJavaですが、ActionScriptでも同じAPIが用意されています。
package jp.nyatla.nyartoolkit.jogl.sample.sketch;
import javax.media.opengl.*;
import jp.nyatla.nyartoolkit.core.NyARException;
import jp.nyatla.nyartoolkit.jmf.utils.*;
import jp.nyatla.nyartoolkit.jogl.sketch.GlSketch;
import jp.nyatla.nyartoolkit.jogl.utils.*;
import jp.nyatla.nyartoolkit.markersystem.NyARMarkerSystemConfig;
public class SimpleLite extends GlSketch
{
private NyARJmfCamera camera;
private NyARGlMarkerSystem nyar;
private NyARGlRender render;
public void setup(GL gl)throws NyARException
{
this.size(640,480);
NyARMarkerSystemConfig config = new NyARMarkerSystemConfig(640,480);
JmfCaptureDeviceList devlist = new JmfCaptureDeviceList();
JmfCaptureDevice d = devlist.getDevice(0);
d.setCaptureFormat(config.getScreenSize(),30.0f);
this.camera=new NyARJmfCamera(d);//create sensor system
this.nyar=new NyARGlMarkerSystem(config); //create MarkerSystem
this.render=new NyARGlRender(this.nyar);
this.id=this.nyar.addPsARPlayCard(5,80);
gl.glEnable(GL.GL_DEPTH_TEST);
this.camera.start();
}
private final static String ARCODE_FILE = "../../Data/patt.hiro";
private int id;
public void draw(GL gl)
{
synchronized(this.camera){
try {
this.render.drawBackground(gl, this.camera.getSourceImage());
this.render.loadARProjectionMatrix(gl);
this.nyar.update(this.camera);
if(this.nyar.isExistMarker(this.id)){
this.render.loadMarkerMatrix(gl,this.id);
this.render.colorCube(gl,40,0,0,20);
}
Thread.sleep(1);
} catch (Exception e) {
e.printStackTrace();
}
}
}
public static void main(String[] args)
{
try {
new SimpleLite();
} catch (Exception e) {
e.printStackTrace();
}
return;
}
}
重要なのは次の行で、ARプレイカードの5番を、マーカサイズ8cmで登録しています。(ARプレイカードの標準的な大きさがわからなかったので・・・)
this.id=this.nyar.addPsARPlayCard(5,80);
使えるカードは1番から6番までです。もちろん、従来のARマーカやNyIdマーカと混在して使うことも出来ます。
FLARTK、NyARToolKitCSには順次移植していきます。
