前提・実現したいこと
いつもお世話になっております。
NyArtoolkit(for Processing)において、Nftでフォルダ内の画像をマーカとして扱い、その画像の位置にアニメーションが表示されることを実現させたく、質問させて頂きました。
Nftの画像に変える部分は後に考えるとして、マーカ部分の座標を取得する方法が分かりません。
下記コード部分で座標を取得したいのですが、ここにエラーが出てきてしまいます。
PMatrix3D temp=ar.getMarkerMatrix(aha);
なにせ初めて使うもので手探りの状態でして、凄く初歩的且つ分かり辛い質問でしたら申し訳ございません。
お詳しい方、どのようなことでもヒントになれば構わないのでご教授頂けたら幸いです。
該当のソースコード
調べて出てきたものをそのままは使えなかったため、少しいじっています。
Processing
1import jp.nyatla.nyar4psg.*; // NyAR4psg 2import processing.video.*; 3 4Capture cam; // キャプチャ 5MultiNft ar; // ARマーカに関する処理をするオブジェクト 6int aha; // マーカに割り当てられるID番号 7float x, y, z; 8 9 10void setup() { 11 size(640, 480, P3D); // 画面の設定 12 colorMode(RGB,100); 13 cam = new Capture(this, width, height); // キャプチャの準備 14 ar = new MultiNft(this, width, height, "camera_para5.dat", NyAR4PsgConfig.CONFIG_PSG); 15 // ARをやるための準備 16 aha = ar.addNftTarget("aha", 160); // パターンファイルとマーカサイズの登録 17 cam.start(); 18} 19 20void draw() { 21 // カメラの用意ができていないときは処理をせずに出る 22 if (cam.available()==false) return; 23 24 cam.read(); // カメラ画像の読み込み 25 background(0); // 画面の初期化 26 ar.drawBackground(cam); // 背景画像の描画 27 ar.detect(cam); // マーカ認識 28 resetMatrix(); 29 ar.setARPerspective(); 30 // マーカが認識されていたら 31 if ( cam.available() ) { 32 PMatrix3D temp=ar.getMarkerMatrix(aha); 33 x=temp.m03; 34 y=temp.m13; 35 z=temp.m23; 36 translate(x, y, z); 37 box(80); 38 } 39}
補足情報(FW/ツールのバージョンなど)
・Processing3.4
・NyArtoolkit
・MacBook
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/04 03:33
2018/11/04 05:59