Unityで簡単にARアプリを作れるVuforia
Unityでは、ARアプリを作る際にVuforiaというライブラリを使うと手軽に制作することができます。
VuforiaとはQualcommが提供するAR制作用のライブラリです。認識精度が高いことでも知られ、平面のマーカーだけではなく、立体のマーカー認識、クラウドでの認識、カメラからマーカーが離れた際の追従認識など、さまざまな形でARの機能を簡単に実装できます。
引用元 http://www.atmarkit.co.jp/ait/articles/1508/24/news025.html
Unityと、androidやiOSのビルド環境さえ整っていれば、10分ちょいでARを楽しむことができます。
さて、ARの設定自体は自分でも簡単にできたのですが、実際にvuforiaを用いて実行したところ、画面がぼやける・フォーカスが合ってない・ピントが合わないからターゲット(ARマーカー)を認識しないといった点で詰まっちゃいました。
(ボヤケつつもARは表示されましたが。)
調べた結果、ピントが綺麗に合うようになったのでその時の方法をメモしておきます。
※vuforiaの具体的なUnityへの導入方法や、実行方法、ターゲット(ARマーカー)の登録方法はここでは割愛させていただきます。
androidでvuforiaを実行したときにピントが合わない
実行環境
- Unity 5.6.0 Pro
- vuforia-unity-6-2-10
- XperiZ5 Premium、Xperia XZ (android6.0)
vuforia用いたARアプリを作り、ターゲットマーカーにカメラを向けたところ、かなり画面がぼやけてしまいました。
下のスクショの通り、パンダがボヤケてますし、下のパッケージの文字も読めません。
どうやら自動でフォーカスはしてくれないようで、うまくターゲットにピントが合いません
vuforia使うとカメラの解像度が落ちるかと思って少し諦めかけましたが、ちゃんとフォーカスする方法がありました。
ARcameraにオートフォーカス用スクリプトをアタッチ
ググったところ、以下のフォーラムでオートフォーカスに対する解決策が出てました。
このページからCameraFocusController.zipをダウンロード
中に入ってるCameraFocusController.csをプロジェクトに取り込み、Hierarchyに配置したARcameraにアタッチします。
AndroidManifestの編集
次にAndroidManifestにオートフォーカスについて記述します。
UnityのProjectから、Assets>Plugins>Android>AndroidManifest.xmlを開きます。
そこに
<uses-feature android:name="android.hardware.camera" />
と書かれている行があると思うので、その行の下に
<uses-feature android:name="android.hardware.camera.autofocus"/>
を追記します。
これでもう一度アプリをビルドすると小さなターゲット(マーカー)でもちゃんと認識してオブジェクトを表示してくれます。
オートフォーカスが動作しているので、綺麗にターゲットが映ってますね。
オートフォーカスが機能するまではある程度大きな模様しか認識できませんでしたが、オートフォーカスが機能してくれたお陰で小さな模様でも認識するようになりました。
(vuforiaでARマーカー作る際はもう少し複雑な模様や特徴を含んだほうが良いみたいですけどね)
めでたしめでたし。
vuforiaとunityを使ったARアプリ制作参考
http://win8dev.hatenablog.com/entry/2013/02/27/230905
http://qiita.com/akanei_main/items/6bde438747fe116ef124