ARKit2.0からは2次元の画像マーカーだけでなく、3次元の物体(例えばぬいぐるみとか、玩具とか)をマーカーに出来るようになりました。ただ、物体マーカーは2次元マーカーのように動かしてもARモデルは追従しないので注意が必要です。
物体をマーカーにする流れ
- マーカーにしたい物体を360度撮影して、物体のもつ特徴点データを抽出
- 作成した特徴点データをReferenceObjectLibraryに登録
- ReferenceObjectLibraryとARで表示したいモデルをARTrackedObjectManagerに登録
このように書くと、多少複雑そうに見えますが、やっていることは画像マーカーを使用したときと同じことをしています。
一点違うのが❶の特徴点データを検出する部分です。ここはプログラマが手作業でやる必要があります。まずはその方法から見ていきましょう。
特徴点データを抽出する
3Dの特徴点データを取り出すには専用のアプリが用意されています。といっても、自分でビルドする必要があります(笑)
まずは次のサイトからARKit Scannerのプロジェクトをダウンロードしてください。
ダウンロードできたらビルドして、アプリを起動します。起動したらまずはマーカーにしたい物体を囲むように黄色い枠を広げます。枠のサイズはドラッグやピンチで変更できます。
次に物体を360度(といっても底面はありませんが)から撮影します。うまく撮影できると、画面上のScanのパーセンテージが上昇し、ボックスの表面が黄色く変化します。
すべての面が撮影できたら「Share」ボタンを押して、特徴点データをPCに転送します(転送にはAirDropが便利!)。ファイル名は「Scan-xxxx.arobject」みたいになっていると思います。
ここでは名前をyadon.arobjectに変更しておきました。
Unityプロジェクトの作成と下準備
次にUnityでの作業に移ります。AR Foundationを使ったプロジェクトの作り方と、その準備についてはこちらの記事に詳しく説明しています。
ここでは、ヒエラルキーウインドウにAR SessionとAR Session Originオブジェクトを配置し終えたところからスタートします。
特徴点データを読み込む
AR Foundationのセットアップができたら、先程転送した特徴点データをプロジェクトウィンドウにドラッグ&ドロップして追加しておきます。
ARマーカーのライブラリを作成する
AR Foundationで物体マーカーを使ったARを作る場合、まずはARマーカーのライブラリを作成します。ライブラリを作成するにはプロジェクトウィンドウで右クリック→Create→XR→Reference Object Libraryを選択してください。
次に、作成したObject Libraryに先程の特徴点データを登録します。作成したReference Object Libraryを選択して、インスペクタから「Add Object」のボタンをクリックします。
新しくARの物体マーカーを登録する画面が表示されるので、先程の特徴点ファイルをドラッグ&ドロップします。また、Name欄には任意の名前を入力しておきます。
AR Tracked Object Managerの設定
ARマーカーライブラリの作成ができたので、次はこのライブラリをTracked Object Managerに登録します。Tracked Object Managerでは
- ARマーカーライブラリの登録
- ARマーカーが検出されたときに表示するARモデルの登録
を行います。
まずはヒエラルキーウインドウでAR Session Originを選択して、インスペクタのAdd Componentから「AR Tracked Object Manager」をアタッチします。
次にSerialized Libraryの欄に、作成したReferenceObjectLibraryをドラッグ&ドロップします。Tracked Object PrefabにARマーカーが検出されたときに表示するARモデルを設定します。
これでAR Tracked Object Managerの設定は終わりです。最後にAR Foundationの各種設定を次の記事を参考にして行い、実行してみてください。
物体ARマーカーの上に指定したARモデルが表示されれば成功です!
タッチすると喋るぬいぐるみ(ヤドン)。#ヤドン #ARKit #AR #ぬいぐるみ pic.twitter.com/rbYHpauNkC
— 北村愛実 (@tasonco_company) 2019年6月25日
まとめ
この記事では、AR Foundationを使って物体をARマーカーにする方法を紹介しました。AR Foundationではマーカーを使ったARの他にも色々と面白い機能がありますので、こちらも今後、紹介していきたいと思います。