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には順次移植していきます。