VuforiaとUnityでお手軽AR開発
UnityでARを扱うライブラリは複数ありますが、今回はVuforiaライブラリを使っていきます。
Vuforiaでの注意点はエディター上で動作確認をするには64bit版のUnityでは動きません。
なので32bit版のUnityをインストールする必要があります。
する必要がありました。
しかし、VuforiaのVer6から64bit版でも動作するようになりました。
なので通常通り64bit版のUnityで開発を進めていきます。
あらかじめUnityでプロジェクトを作っておきます。
プロジェクト名はお好きに。
まずはVuforiaのWebサイトから
必要なものをダウンロードしてきます。
アカウントがなければならないのであらかじめアカウントを作っておいてください。
VuforiaのWebページ右上から作れます。
Vuforia Develperにアクセス
WebサイトのメニューバーのところからDownloadsを選びます
Unityで開発をするので「Download for Unity」をダウンロード
ダウンロードしたUnityPackageをダブルクリックしてUnityのプロジェクト内に全てインポートします。
インポートが完了すると、このような具合にAssetsフォルダに追加されていると思います。
そうしたら、ProjectビューからAssets -> Vuforia -> Prefabs -> ARCameraをシーンに追加します。
このカメラがデバイスのカメラとなります。
カメラは二つもいらないので、最初からシーンに置いてあるMainCameraはDeleteしておきます。
また、同じフォルダ内にある、ImageTargetもシーンに追加します。これがARマーカーに相当します。
ここまでできたら、またVuforiaのWebサイトに戻ります。
次はDevelopを選びます。
LicenseManagerとTargetManagerの2つがあるので、まずはLicenseManagerを選択。
「Add License Key」を選択します。
作成するプロジェクトのタイプを聞かれます
今回は個人の開発なのでDevelopmentを選択します。
名前は自由につけてください。私は「UnityAR」と名前をつけます。
DeviceはMobileを選択しておきましょう。
無事作成が完了すると、最初のLicenseManagerのページに作ったプロジェクトが表示されます。
作ったプロジェクトの名前の部分をクリックしましょう。
するとプロジェクトのライセンスキーが表示されるので、これをUnityのARCameraに入力します。
これをコピーし、ARCameraのInspectorビューから、VuforiaBehaviourのAppLicenseKeyにペーストします。
LicenseKeyがないとARが起動しないので注意しましょう。
次は、ARに使うARマーカーの設定を行います。
VuforiaのWebサイトに戻り、DevelopからTargetManagerへ進み、AddDatabaseを選択しましょう。
データベース名とタイプを聞かれます、好きな名前をつけていいですが、ここはLicenseKeyと同じ名前の方がいいでしょう
タイプはDeviceにします。
データベースを作成すると、TargetManagerのページに作ったデータベースが表示されるので名前をクリック。
初めはARマーカーが何も設定されていないので、AddTargetからマーカーを追加します。
TypeはSingle Imageを、
Fileにはマーカーにしたい画像ファイルを選びます。なんでもいいです。
Widthは、なんでもいいですが、今回は100とします。
Nameも好きなものにしましょう。私は「Marker01」とします。
今回はテストとして、本の表紙をマーカーに設定します。
マーカーのアップロードが完了すると、TargetMarkerに無事追加されています。
そしたら、このデータベースをダウンロードしてUnityにインポートしましょう。
「Download Database(All)」からダウンロードするとき、UnityEditorを選択します。
そうすると、UnityPackageで出力されます。
インポート完了後、
UnityのHierarchyビューにあるImageTargetを選択します。
InspectorビューのImageTargetBehaviourに先ほど作ったデータベースを登録し、ImageTargetにマーカーをセットします。
マーカーを設定すると、WidthとHeightは自動的に設定されます。
これでARマーカーの設定は終わりです。
最後にARCameraの最終設定を行います。
まず、データベースを読み込ませます。
ARCameraのInspectorビューから、
VuforiaBehaviourの「Load Object Targets on Detection」にチェックを入れます。
同じく、DatabaseLoadBehaviourの「Database UnityAR Database」と「Activate」にチェックを入れます。
「Activate」は「Database UnityAR Database」にチェックを入れると出現します。
これでカメラの設定は終わりです。
本当の最後に、
ARマーカーで出現させる3DモデルをHierarchyビューのImageTargetの子オブジェクトにします。
好きな3DモデルをAssetStoreなどで持ってきてください。
私は、SDユニティちゃんを使用します。
大きさや向き、位置はお好みで。
これで全ての設定は完了です。
実行してみると、PCのカメラがゲーム画面として表示されると思います。
そのカメラを設定したARマーカーに向けるとImageTargetの子オブジェクトとした3Dキャラクターが表示されます。
おまけ1
もし、カメラが複数パソコンに接続されていた場合、ARCameraのInspectorビューから
WebCamBehaviourのCameraDeviceから好きなカメラを選択できます。
もし、カメラが接続されていない場合は、「NO CANERAS FOUND」と出ます。
おまけ2
ARマーカーを増やす場合は、同じ要領でVuforiaのデータベースにターゲットを追加していきます。
追加した場合は、その都度データベースをダウンロードし、Unity内にインポートする必要があります。
初期設定では、カメラ内に複数のマーカーを置いても反応するのは1つだけです。
それもいいですが、中には複数同時に表示させたい時もあると思います。
その時は、ARCameraのVuforiaBehaviourのMaxSimultaneousTracke.....の値を増やしましょう。
この記事は「さいたまげーむす Advent Calendar」への投稿記事です。