UnityでARを使うときの備忘録的な何かです。
まず、 Vuforia Developerサイト にアクセスします。 そして、右上にある"Log In"をクリックすると、 ログイン画面が表示されるので、そこで
Registered Email: [email protected]
Password:[プロ研Cybozuにて公開]
と入力してください。 そうすると、無事にログインできます。 UnityでARのアプリを開発する際は基本的にこのアカウントで使用していくといいと思います。
次に、VuforiaをUnityで使うためのパッケージをダウンロードします。 トップページから*"Resouces"をクリックし、 画面左の"Unity Extension"を選択します。 そうすると、Unity用のパッケージをダウンロードする画面に移るので、 画面中央上あたりの"Download Unity Extension 2.8.9 for Android & iOS"* をクリックしてください。 利用規約が表示されると思うので、 テキトーに読み進めて*"I Agree"*をクリックして下さい。 そうすると、パッケージのダウンロードが始まります。
新しくARマーカーを追加したいときにはこの作業を行なってください。
トップページから*"Target Manager"*をクリックします。 そうすると、ARマーカーのデータベースが選択できます。
ARマーカーを追加するには、まず最初にデータベースを作製しておいて
- 追加したいデータベースをクリックする。
- 画面右の"Add Target"をクリックする。
ここで
- Target Name: 追加するマーカーの名前
- Target Type: デフォルトのままでよい(マーカーの形状も指定できる?)
- Target DimensionのWidth: マーカーに使う画像の幅
- Target Image File: 使う画像をアップロード
として設定しておきます。
データベースへ新しくマーカーを登録する際には、 ここのissueに登録する内容を報告するようにすればいいと思います。
ARマーカーデータベースに登録されているマーカーをダウンロードします。 ARマーカーをダウンロードするには
- ダウンロードしたいARマーカーがあるデータベースをクリックする
- ダウンロードしたいARマーカーの画像横にあるチェックボックスにチェックを入れる。
- *"Download Selected Targets"*をクリックする。
- ダウンロード画面が表示されるので、*"Unity Editor"を選択してから、"Create"*をクリックする。
これで、ARマーカーデータベースのパッケージがダウンロードされます。
それではいよいよARを体験してみましょう。 テキトーに新しいプロジェクトを立ち上げてください。 そして、注意してほしいことがあるのですが、 ARを扱う際、Main Cameraは基本的には必要ないということを覚えておいてください。 なので、最初から配置されているMain Cameraは削除しておきましょう。 また、Directional Lightが必要なので追加しておきましょう。
まず、先ほどダウンロードした2つのパッケージをUnityで読み込ませます。 ダウンロードした "vuforia-unity-android-ios-2-8-9.unitypackage" と "[データベース名].unitypackage" を、 Unityエディタ上のProjectビュー上にドラッグ&ドロップします。 これにより、必要なパッケージがインポートされます。
次に、ARを取り扱うためのシーンを構築します。 Projectビューから "Qualcomm Augmented Reality/Prefabs/" を表示します。 そして、必要なPrefabとして
- "ImageTarget"
- "ARCamera"
をシーン上に配置します(Hierarchyビューにドラッグ&ドロップ)。
次に、ARCameraの(スクリプトのパラメータ)設定をInspectorビューで行います。 まず、"Data Set Load Behavior" スクリプトの設定です。 これをちゃんと設定しておかないと、ARが動作しません。 以下の作業を行います。
- *"Load Data Set ..."*のチェックを入れる。
- "Activate"のチェックを入れる
たったこれだけですが、これが意外と忘れやすいので注意が必要です。 あとは、オプションの設定なのですが、
- "Web Cam Behavior"スクリプトの"Camera Device"で、 使うUSBカメラの設定ができる。
- "QCARBehavior"スクリプトの"Max Simultaneous Image..."の値を変えると、 同時に表示できるARオブジェクトの数が増える。
くらいですかね。(まだ何か設定できることがあるかも)
そして、ImageTargetの設定です。 "Image Target Behavior" スクリプトの設定で、 "Data Set" を*"[データベース名]"にし、 "Image Target" を"[使用するマーカー名]"*にしましょう。
最後に、ARで表示させるオブジェクトの設定です。 ARで表示させるオブジェクトは、 ImageTargetの子オブジェクトにする必要があります。 ここでは、適当に"Cube"オブジェクトを表示させるようにしましょう。 Cubeオブジェクトを生成し、ImageTargetへとドラッグ&ドロップさせます。 その後、Cubeのスケールを全ての方向に0.5倍しておきます。
これで、準備は完了です。