はじめに
UnityのAR Foundationを使うと写真やロゴなどをマークとして認識し、
そこを基準としてオブジェクトの生成などが行えます。
アイデア次第で色々な表現ができるので是非やってみてください!
この記事を読むとこんなことができるようになる
解説
環境
- UnityHub 3.0.1
- Unity 2021.3
準備
プロジェクトの作成
プロジェクトの作成はテンプレート使って簡単に作れますので、こちらを参照してください。
リソースの準備
マーカーとして必要な画像を1枚用意してください。
身近にあるカード(Suicaとかクレジットカードとか)の画像があると、
そのカードで試せるためおすすめです。
お手頃のものがなければこちらを使用してください。
自分が作った著作権フリーの画像ですので、読みやすいように加工などもしてもOKです。
シーンの準備
通常であれば、ARを使用するシーンではMain Cameraを削除してARSessonオブジェクトなどを配置する必要があります。
テンプレートには既にそういったシーンの設定が済まされている「BlankAR」というシーンを用意してくれているのでそれを使用します。
実装
参照する画像の登録
-
プロジェクトウィンドウ内で右クリック
-
作成された
ReferenceImageLibrary.asset
を選択し、インスペクターウィンドウに表示される[Add Image]をクリック
-
マーカーとして使用する画像をドラッグ&ドロップ
-
[Specify Size]にチェック
実物サイズとは?
UniyのTransformはメートル表記です。
つまりScaleが1ずつなら、縦・横・奥が1mの物体になります。
なので10cm*10cmのマーカーを作りたいのであれば0.1と入力してください。
シーンの設定
- シーン内にある[AR Session Origin]に[AR Tracked Image Manager]スクリプトを追加
- [Serialized Library]に
ReferenceImageLibrary.asset
をドラッグ&ドロップ - [Max Number of Moving Images]を1に設定
- [Tracked Image Prefab]にマークに表示したいプレハブを設定
出力
うまくいかない場合は以下の項目をチェックしてみてください
- 表示するプレハブのPositionやScaleが正しく設定されているか
- マーカーに登録した実物サイズは適正であるか
おわり
ARグラスなどが普及してきてそろそろAR用のUIがあるアプリとか出てくると思います。
そう考えると色々なアイデアが出てきてワクワクします。
参考させて頂いたURL
https://docs.unity3d.com/Packages/com.unity.xr.arfoundation@2.2/manual/tracked-image-manager.html