NyARToolkit/2.4.0のバグ

ちょっと大き目の不具合があったので告知。

NyARToolkit/2.4に搭載してる新型の座標変換処理が、小型のマーカの撮影時に安定しません。

Java版はRev 343で修正してあります。

バージョンアップまでの間は、src/jp/nyatla/nyartoolkit/core/transmat/NyARTransMat.javaを参考に書き換えてください。

原因は、エラー値の評価方法が定数値であったためで、マーカのサイズに反比例して最適化係数を自動的に修正するようにしないと、小型マーカの撮影時にジッタが大きくなる症状がでてました。

オリジナルのARToolKitも同じ症状がでるはずなんだけど、何故かNyARほど大きな誤差が出ないんですよね。何故だろう?

ClickOnceでワンクリックAR

MicrosoftさんのWPFを弄り回して遊んでるときに、ClickOnceという技術があることを知りました。
http://msdn.microsoft.com/ja-jp/library/ms996413.aspx

この技術は、要するにブラウザ経由で簡単インストールが出来るという代物なのですが、どうやら完全なマネージドコードでないと完全に対応でき無いらしい。

NyARToolKitCSは100%マネージドコードなので、いけるんじゃないかなーといじっていたところ、あっさり出来ました。

使い方

Hiroマーカを印刷してから、PCにWebカメラを接続して、下記のURLをクリックしてください。ClickOnce経由でデモアプリケーションが起動します。

http://nyatla.jp/nyartoolkit/clickonce/singlemarker/SingleMarkerDirect3d.application

アプリケーションが起動したら、カメラを選択してOKボタンを押してください。キャプチャ画像が出てきます。

カメラでマーカを撮影すると、簡単な3Dモデルがくるくると回ります。

うまく動かないときは、.NetFramework3.5とDirectXをインストールして、もう一度チャレンジしてみてください。

これの凄いところは、ManagedDirect3Dがそのまま開発に使えてしまうこと。もう一つは、URLパラメータを受けられること。Webブラウザから安全にARアプリを起動して、webサイト毎にネットワークからコンテンツをダウンロードするような使い方が出来るわけ。

欠点は、WindowsXP、Vista、7以外では動かない…ことかな。それと、開発環境がちょいとお高い。(StandardEdition以上のVisualStadioが要るらしい。)

Flashよりも重たいアプリケーションが組めるので、何か面白い企画を思いついたら教えてくださいね。

ちなみに、ソースコードはNyARToolkitのサンプルほぼそのままで、プロジェクトファイルを少々いじった程度です。一応GPLv3なので、リクエストをいただければ公開します。

NyARToolKitCPP/2.4.0

やっとC++版全ての2.4.0化が完了しました!
http://nyatla.jp/nyartoolkit/wiki/index.php

C++版のNyARToolKitもJava版の2.4.0の特徴をそのまま受け継いでいて、処理速度が大きく向上し、大体ARToolKit2系列の4倍速くらい速度が出ます。

forAlchemy

今回のアップデートでは、他にもAlchemy用のライブラリ”forAlchemy”の構築環境も更新しました。

従来のAlchemyは、ActionScriptからNyARToolKitの表層のAPIまでしかアクセスできませんでしたが、version 2.4.0からは、表層よりも一歩下の部品クラス(例えば、ラベリング、矩形抽出、パターン取得)まで、アクセスできるようになっています。

forAlchemyをFLARToolKitっぽく使えるようにしたもの

FLARToolKit風に使えるようにしたサンプルは、Spark projectの方にコミットしてあります。
http://www.libspark.org/svn/as3/FLARToolKit/branches/nyatla

デモ

Alchemy版のデモプログラムです。ソースコードは全てSpark projectからダウンロードできます。

PCにカメラを繋いで実行してね。

ARToolKitMarker

アプリケーション
http://nyatla.jp/tmp/aM_flar-2.4.0/SingleMarker.swf
マーカ

NyIDMarker

アプリケーション
http://nyatla.jp/tmp/aM_flar-2.4.0/IdMarker.swf
マーカpdf(ID=0)
http://nyatla.jp/tmp/flx-0.10.0/id0.pdf