読者です 読者をやめる 読者になる 読者になる

うさがにっき

読書感想文とプログラムのこと書いてきます

vuforia + unityでARを実装する際に参考となるドキュメントまとめとARアプリを作ってみた感想

AR vuforia unity Android

前書き

本記事はUnity Advent Calendar 2016 12/20の記事です
qiita.com

概要

こんなことをするアプリを作りたい
Image Targets Sample App - Augmented Reality - Vuforia (new) - YouTube

そのために、unity, vuforiaのARアプリ実装方法をまとめる・・・と思ったがかなりネット上にドキュメントが落ちていた
また、バージョンアップしていくと結構動かなくなったり、素敵な機能が追加されていたりするので、実装していく上で幸せになれる、また困った時に見るリンク集とした

つまり、本記事はvuforia + unityでARを作る際のドキュメントまとめ
一次情報にこだわって作っているので少しわかりづらいかも

最短でやりたい人は先人がまとめてくれた記事を見よう
この記事は(一次情報)リンク集なので最短とは言い難いぞ
UnityでARアプリを作りたい(Vuforia導入編) - Qiita

実行した環境は以下です
IDE: unity5.5.0f3
SDK: vuforia 6.1

詳細

とりあえずスマホで何ができるか試そう

vuforiaを使ったアプリを落としてみる
動画を見ただけではイメージが湧きづらいかもしれないので実際に端末で試してみましょう
vuforia - Google Play

環境構築

unity download
Unity - Store

vuforia sdk for unity download
SDK Download | Vuforia Developer Portal

vuforia account作成
Create new account | Vuforia Developer Portal

アプリ作成

画像をmarkerとしてその上にコンテンツを表示するImage Targetを実装

ざっくりとした手順としては

  • ARに使う部品をsceneに配置
  • vuforiaのlisencekeyを設定
  • markerをvuforiaに設定し、unityにvuforiaからダウンロードしてきたmarkerdatabaseを設定

Image Target説明
Image Targets | Vuforia Library
BestPracticeや理想的なmarkerの条件など書いてあるので読んでおくと幸せになれる

Tutorial動画
他にもいろいろ上がってるので見ると幸せになれる
ARCamera prefab in Unity Tutorial - Vuforia - Augmented Reality (new) - YouTube


実装時必要になるvuforia Lisence key取得
How To Create a License Key | Vuforia Library
How To add a License Key to your Vuforia App | Vuforia Library

マーカー設定方法
How To Add Targets to a Device Database | Vuforia Library

データベース作成方法
How To Create a New Device Database | Vuforia Library
ちなみにデータベースをローカルに落としてきても、起動時にlisencekeyを見に行っているのでオフライン環境だと起動しないので注意

サンプル
他にもいろいろ上がってるので見ると(ry
Download Samples | Vuforia Developer Portal

ARを考えていく上で知っておくといいこと

unityとvuforiaの関係

何をunityがやっていて、何をvuforiaがやっているか考えるとわかりやすい
動画を見てもらえるとわかるがvuforia + unityが作るARは一般的に以下のようになる

  • カメラ制御
  • マーカー(画像)認識
  • コンテンツ表示

vuforiaがやっているのはざっくり言うと、「マーカー認識」
その他の機能として「コンテンツの位置固定」や「文字認識」などもあるが、コア機能は「マーカー認識」
その他の機能の一例
Best Practices View | Vuforia Library

そしてvuforiaがやるのはあくまで「認識」するまでであり、その後のアニメーションなどはunityが行う
つまりざっくり言うと

  • カメラの制御・・・unity
  • マーカー認識・・・vuforia
  • コンテンツの表示・・・unity

コンテンツをいかにリッチに表示するかはunity力が試される
逆に言えばマーカー認識型では無い(GPSで位置確認してカメラの目の前に何かを出す的な)ものはvuforiaは必要無い
unityだけでもできるし、より楽したいならGPS型AR SDK(wikitudeとか)を選ぶべき

端末差異

カメラを使ったandroidアプリを作ったことがある人ならわかると思うが、現実世界にコンテンツを表示する時にandroidによる端末差異がすごい
またExtended Trackingを使っても端末による制度の違いがすごい
Androidは要注意

どうしても解決しない時は

http://stackoverflow.com/search?q=vuforia+unity
質問しよう

2016/12/21追加
記事書いた翌日にvuforiaのアップデートが来るとかひどいよ・・・
release note
Vuforia SDK Release Notes | Vuforia Library
どうやら5.5でやるとバグがある注意、けど内容知っておけば気にならないかと
Android/iOSのバグが載っているので一読

migration方法
Migrating Unity Projects to Vuforia 6.2 | Vuforia Library
カメラの精度とか上がるらしいからアップデートしたいけど、ちゃんとmigration方法に則ってやらないと死ぬぞ

まとめ

本記事ではunity + vuforiaとしたが、AR sdkにはkudanwikitudeなど他にも選択肢はある
それぞれ得意とするところがあるので作るプロダクトに応じて適切なsdkを選択するのがよい

ただ私が試してみた限りunityのサンプルを落としてきて、サンプルがそのまま動いたのはvuforiaだけであり、unityはvuforiaとパートナーを結んでいるのを考えるとunityを使う限りはvuforiaが一番最適解だと感じている

ARはいいぞ、みんなやろう