執筆者:K.I
執筆バージョン: Unity2020.1.6f1, Vuforia 9.4
はじめに
今回は Vuforia を使ってUnity で ARをする方法を実装してみました。
Unity2020(2019.3以降)には、ARやMRなどのXRコンテンツを開発する場合は、Unityが用意した”XR SDK”と呼ばれるプラグインフレームワークを使用する方法が推奨され、組み込みのプラットフォーム
- Vuforia Engine AR
- Google VR Android & Google VR iOS
- Oculus Android & Oculus Desktop
等
これらを使った開発方法は非推奨になったようです。
それでも引き続きVuforia Engine for Unityを使ってAR開発をする場合は Vuforia Developer Portal からパッケージをダウンロードして使用する事ができるので、
ここでは、Unity2020でVuforiaを組み込むのをやっていきます。
記事の内容
1. VuforiaDeveloperAccountの作成
2. Unity用 AddVuforiaPackageをダウンロード
3. ライセンスの発行
4. Unity(2020)にVuforiaをインストールする
5. Unity組込,マーカーの設置からモデル表示まで
VuforiaDeveloperAccountの作成
Vuforiaを使用するためには、Vuforia開発者アカウントを作成する必要があります。Vuforiaアカウント発行ページより必要な情報を入力し指示に従いアカウントを作成してください。すでにアカウントお持ちの方はログインページよりログインしてください。
Unity用 AddVuforia Packageをダウンロード
Downloadsページより、Unity用のPackageをダウンロード。
※執筆時点でのバージョンは 9.4となっております。
ライセンスの発行
Vuforiaを使用するためのライセンスを発行します。
License Name(任意の名前) を入力し Cofirm 押下にてライセンスを発行する。
License Manager 画面より作成されたライセンスをクリックし、ライセンス表示画面より License Key をコピーしておく。
ARマーカー画像の登録
Vuforia ではデータベースを作成、作成したデータベースに画像を登録、画像を登録したデータベースをダウンロードしてUnityで使用します。
「Add Target」でマーカー登録。
ここでは、Single Image を選択、Nameはかぶらなければ自由に登録、Widthで画像の幅(m)を入力。
※ここでは、WidthはUnityの幅に関連するため、「1」を入力しています。
マーカーは下の画像を使います。
一覧に表示されていれば、マーカー登録完了です。
「Download Database (All)」を押下し
Unity Editor を選択し、Downloadしてください。
ダウンロードされた「******.unitypackage」を実行してUnityにインポートしてください。
Unity(2020)にVuforiaをインストールする
Unityに新規プロジェクトを作成し、ダウンロードした add-vuforia-package をインポートする。
Import を押下後 update の メッセージが表示されたら「Update」をクリックします。インポート完了すると、Vuforiaの項目が増えています。
Unity組込,マーカーの設置からモデル表示まで
Vuforia用カメラの配置から、マーカーの配置、表示するモデルの作成、Unityでの動作確認までを行います。
まず「Main Camera」は削除しておきます。
[ファイル]メニューの[ビルド設定]で、ターゲットをAndroidに変更。
[ゲームオブジェクト]メニューの[Vuforia Engine]から、「AR Camera」を選択して配置します。
カメラの位置や向きはそのままでかまいません。
「AR Camera」を選択し、インスペクターの「Vuforia Behaviour」にある「Open Vuforia Engine configuration」をクリックします。
インスペクターの「App License Key」の欄に、Vuforiaのキーコードを入力します。
[ゲームオブジェクト]メニューの[Vuforia Engine]から、「Image Target」を選択します。ヒエラルキーウィンドウに追加された「Image Target」を選択し、インスペクターのImage Target BehaviourにあるTypeをプルダウンから「From Database」に切替、Database に先程インポートしたデータベースを選択します。
マーカーに重ねて表示したい3Dモデルを作成します。マーカーと図形は、Unity上で配置した通りの位置関係になります。
作成したモデルは「Image Target」の子として配置しておきます。
※ここでは、ゲームオブジェクトから基本的な形状を配置して動作確認いたします。
この段階でカメラが接続されていれば、Unityの「再生」を押下することで、
動作確認ができます。
マーカーを印刷して、カメラに向けて動作テストしてみましょう!
(テスト結果)
まとめ
今回は簡単なマーカーでの実装してみました。
Vuforiaは認識精度が高いことでも知られるARライブラリで、「平面認識」「立体マーカー認識」「クラウドでの認識」カメラからマーカーが離れた際の追従認識など、さまざまな形でARの機能を簡単に実装できるようになっています。
多くの方がAR実装に使われているため、関連記事なども多く存在しておりました。
今回はUnity2020で組み込んでみましたが、Unityバージョンによりインストール方式などは異なっていたり、Vuforiaの対応可能バージョンが異なっていたため、注意が必要です
(最新のVuforiaでは、ARCoreも含まれてるが、Vuforia 7.2 より古いバージョンの時にはARCoreが含まれていなかったため、別でインストールが必要になった等がありました)
今回はマーカーでの表示テストでしたが、次回は平面検知などをやってみようと思います。