最近、ARアプリを作る機会があったので
その際に躓いたことや解決策などについて。
▼UnityでARを実現する手段
調べてみたところ、『Vuforia』というライブラリを使うのが最も簡単そうでした。
参考記事↓
本当に30分くらいでできてしまいます。
ただし、『Vuforia』を使って開発するのは無料なのですが、
アプリをリリースしようとすると、ライセンス料がかかってしまいます。
2017年9月時点で$499、日本円で5万円以上、しかも「1アプリごと」に支払う必要があるそうです。
個人で1アプリごとに5万円負担は結構高い。
なので、今回は無料で使える『ARtoolKit』を使って開発することにしました。
▼『ARtoolKit』とは?
Unity向けAR開発用のプラグインです。
2015年にDAQRI社に買収されてオープンソース化されたそうです。
最新版は、こちらから↓
https://archive.artoolkit.org/
Downloadのボタンを押して、
Using Unity?と書いてあるところのパッケージとツールをダウンロードしてください。
▼サンプルを動かしてみた
実際の使い方については、
この記事↓が一番参考になりました。
それを元に、androidの実機にbuildしようとしたらエラーが…。
内容:Found plugins with same names and architectures, Assets/Plugins/Android/libARWrapper.so (ARMv7) and Assets/Plugins/x86/libARWrapper.so (AnyCPU).
どうやら、
Assets/plugins/Android のフォルダに入っている、
「libARWrapper」というファイルが問題だった様子。
同じ名前のファイルが、
>>Assets/plugins/IOS
>>Assets/plugins/x86
>>Assets/plugins/x86_64
にも入っていたので、
どのファイルの設定を使えばいいのかわからん、というerrorだったそうです。
なので、今回はandroid版をビルドしたいため、
android以外のフォルダに入っている「libARWrapper」を削除したところ、
エラーが解消されてbuildできました。
▼実機での動作
Buildできたものの、最初は実機でマーカーが全く反応しないという事態に。
何かSceneの設定を間違ったかと確認してもわからず、
なんのerrorも出ていない状態なので困り果てました。
原因がわからないので色々と調べるうちに、
ユーザーから「マーカーが読み込めない」という問い合わせも頻繁にあるという情報を見て、
もしや、単純にandroid端末の精度が低すぎて認識されていないだけなのでは? と思いなおす。
なのでウェブカメラ付きのノートPCで試してみると…
あっさり認識されました。
ということは、Sceneの設定が間違っているわけではなく、
マーカーの読み取り問題かということ。
結局のところ、
・NFTではない方のデフォルトマーカーを使う(hiroマーカー)
・マーカーを綺麗で真っ白な紙に印刷
という環境で試してみたところ、
android版でもマーカーに反応しました。
(つまり、実は最初から正常に動いていたということか…)
▼androidでの対策
結局のところ、
このページ↓(ARマーカーの基本)を参考に、
http://sixwish.jp/AR/Marker/section01/
読み込みやすさの基本を押さえたマーカーを作成することで
どうにか実用レベルのものになったのですが、それ以外の対策もあるそうです。
別の対策については、以下の記事が参考になりました。
要するに、オートフォーカスして解像度を上げれば解決するらしい。
ということで調べてみると、ARtoolKitで実現する手段がありました。
参考URL↓
High video resolution and autofocus in Unity3D games built with ARToolKit
自分は英語もプログラミング的なこともよくわからないけど、
とりあえずその通りにやっておけばいいらしいです。
(『Vuforia』だったら、もっと簡単に実装できるんですけどね)
▼『ARtoolKit』の今後の展開
アセットストアを見ていたら『ARtoolKit-6』というアセットがありました(設定は5よりさらに簡単)。
今のところ、Macでしか動かない(Windows非対応)らしいのですが、
そのうちWindows対応版もリリースされるそうです。
コメント