トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

【初心に帰って】ProcessingでAR【オリジナルマーカー】

ARを始めたきっかけは授業でProcessingでARをやったことでした。

f:id:bibinbaleo:20180705132118p:plain

ということで初心に帰ってやってみます。

シンプルにAR

Processing.org

ARするためのライブラリをgithubからダウンロードしました。

github.com

この中のexamples>simpleLite>simpleLite.pdeを実行したら

f:id:bibinbaleo:20180705125841p:plain

できました。

f:id:bibinbaleo:20180705125832p:plain

ここにくるまで、何回もエラーが出ていました。

f:id:bibinbaleo:20180705130800p:plain

主にマーカーを置く場所の記述が間違っていたようです。

サンプルコードをコピペして自分でプロジェクトを作ったら、patt.hiroとcamera_para.datをどこかに置く必要があります。

コードのファイル(.pde)と同じ場所に置くなら、したみたいな感じにファイル名だけ書けば良い。

nya=new MultiMarker(this,width,height,"camera_para.dat",NyAR4PsgConfig.CONFIG_PSG);
nya.addARMarker("patt.hiro",80);

プロジェクトフォルダは私の場合はMacのDocument(書類)のprocessingフォルダの中にできました。

あと、codeフォルダを作って、その中に.jarを入れたらそのライブラリが使える。

f:id:bibinbaleo:20180705131132p:plain

最初「import jp.nyatla.nyar4psg.*;」のjpの部分にエラーが出て、動かない時があったけど、スケッチ>ライブラリをインポート>ライブラリを追加から

f:id:bibinbaleo:20180705131353p:plain

jpで検索してnyar4psgを追加したら治った。ここら辺よくわかっていない。多分フォルダの構成を間違えていた時だったのかな????

f:id:bibinbaleo:20180705131117p:plain

オリジナルOBJを出す

昔はsaitoOBJLoaderを使ってobjを読みおkんでいたのですが、この記事によると3.3以降では使えない?らしいです。

qiita.comですが、上の記事を参考にPshapeを使うと簡単にできました。

PShape obj;

setup()でloadShapeして

f:id:bibinbaleo:20180705133502p:plain

draw()のbeginTransformの後にスケールとか位置とかを書いたら

f:id:bibinbaleo:20180705133435p:plain

できました!

f:id:bibinbaleo:20180705133309p:plain

オリジナルマーカー 

example>nftFileGenの中のpdeファイルを実行すると、

f:id:bibinbaleo:20180705140107p:plain

マーカーの特徴点を抽出する画面が開くのでImportからマーカーにしたい画像を選びます。

f:id:bibinbaleo:20180705140715p:plain

右上のボタンを押して特徴点を取れたら、Exportします。Featureset

f:id:bibinbaleo:20180705140707p:plain

プロジェクトのフォルダに名前をつけて保存します。

f:id:bibinbaleo:20180705140717p:plain

あとは3箇所ぐらいNftに変えたらできました。

MultiNft nya;

f:id:bibinbaleo:20180705141503p:plain

f:id:bibinbaleo:20180705141505p:plain

最後に

いつのまにかオリジナルマーカーも使えるようになっていてびっくりしました。 

 

Processingの新しい本