読者です 読者をやめる 読者になる 読者になる

【Unity】Vuforia4.0とユニティちゃんを使ってARアプリケーションを作る

AR Unity

以前の記事
【Unity】Vuforiaとユニティちゃんを使ってARアプリケーションを作る - プログラムは、用いる言葉の選択で決まる

VuforiaからDeveloper云々のメールがちょくちょく届いているなあと思っていたら、どうもバージョン4.0(正規版)がリリースされたらしいです。
f:id:taka_say:20150228133002p:plain
導入のところが若干変更されていたため、改めてVuforia+UnityでのAR開発をまとめておきます。

今回作成していくアプリケーションは、任意のターゲットマーカーがカメラに写ったら3Dモデルを表示するという、基本的なマーカー型のARアプリケーションとします。

環境

Mac OSX Mavericks
Unity v4.6.2
Vuforia v4.0
SDユニティちゃん v1.0

以前の記事でノーマルユニティちゃんは使用したため、今回はSDを使用。特に深い理由はないです。

Vuforia 4.0の入手

入手に関しての変更はほとんどありません。
f:id:taka_say:20150228133819p:plain
Vuforia Developer Portal
上記VuforiaのSDKダウンロードページにアクセスし、Unity Extensionをダウンロード。
ダウンロードにユーザー登録が必要な点も変わりませんので、まだ登録が済んでいない人はサイト右上のRegisterから新規にアカウントを登録し、ログインしてください。

Target Managerの設定と入手

任意のターゲットマーカーを利用するためのTargetManagerを作成します。
この作業が以前までの工程と少々変わっています。

  • 以前の流れ

TargetManager用のデータベースを作成

  • 現在の流れ

アプリ用のライセンスキーの作成 -> TargetManager用のデータベースを作成

という感じで、アプリ毎のライセンスキーの取得をせねばならなくなったようです。
そういうわけなので、変更された流れに沿ってTargetManagerを作成していきます。


http://developer.vuforia.com/targetmanager/licenseManager/licenseListing
まずは上記ページに移動し、Add License Keyから新規のライセンスキーを追加します。
f:id:taka_say:20150228140223p:plain

次にアプリケーションの情報を入力します。
f:id:taka_say:20150228140339p:plain
Application Nameを任意の値に変更します。
Deployment Plansは有料で使いたい場合にのみ選択すればOKです。
無料版で利用する場合はセレクトボックスの値がSelect Planのままで構いません。
無料版の場合、アプリケーションにVuforiaのロゴのウォーターマーク(透かし)が入ります。

入力が完了したらNextをクリックし確認ページに移動します。
f:id:taka_say:20150228141217p:plain
入力内容に相違がなければ、Confirmを押してライセンスキーの追加を完了します。


次にページ上部のメニューからDevelop->Target Managerを選択し、TargetManagerのページヘ移動します。
f:id:taka_say:20150228142527p:plain
Add Databaseを選択し、新規のTarget Manager用データベースを作成します。
f:id:taka_say:20150228142737p:plain
任意のNameを入力し、セレクトボックスからライセンスキーを選択します。
ここでは、先ほど作成したライセンスキーを選択しています。
入力が完了したらCreateをクリックし、新規にデータベースを作ります。
f:id:taka_say:20150228142943p:plain
無事データベースが出来ました。
ちなみに、以前までのTargetManagerデータベースは、Applicationの欄がLegacy Databaseとなって表示されるようです。

新規に作成したデータベース名をクリックし、詳細ページに飛びます。
f:id:taka_say:20150228143141p:plain
Add Targetをクリックし、新規ターゲットの追加をします。
f:id:taka_say:20150228143540p:plain
TypeはSingle Imageを選び、Fileから任意のターゲット用画像を選択します。今回はユニティちゃんのライセンスロゴを用いました。
また、任意のWidthを入力し、データベース上でユニークな任意の名前をつけます。
入力が終わったらAddを押して追加を完了します。

f:id:taka_say:20150228144109p:plain
無事追加が完了しました!
早速Download Databaseをクリックし、
f:id:taka_say:20150228144318p:plain
Select a development platformからUnity Editorを選択し、ダウンロードします。

ユニティちゃん2Dの入手

DATA DOWNLOAD-利用規約 | UNITY-CHAN! OFFICIAL WEBSITE
上記公式のライセンスに同意後、3DのデータからSDユニティちゃん 3Dモデルデータをダウンロードします。
f:id:taka_say:20150228151607p:plain
これでAR用のモデルとして使用するユニティちゃんデータの入手は完了です。

UnityでARアプリの作成

初めに、ダウンロードした各パッケージをインポートします。

まずは、VuforiaのパッケージをUnityへインポートします。
【File->New Project】から新規にUnityのプロジェクトを作成して下さい。
f:id:taka_say:20150228134748p:plain
【Assets->Import Package->Custom Package】を選択し、先ほどダウンロードしたVuforiaのUnity用パッケージをインポートします。
f:id:taka_say:20150228135220p:plain

また同様の方法で、TargetManager用にダウンロードしたUnityパッケージをインポートします。
f:id:taka_say:20150228151149p:plain
ついでにユニティちゃん2Dもインポートします。
f:id:taka_say:20150228152120p:plain

これで準備は完了です。


VuforiaのARアプリでは予めVuforiaパッケージで用意されているカメラを使用するため、HierarchyビューからMain Cameraを削除しましょう。
また【Assets->Qualcomm Augmented Reality->Prefabs】から、ARCameraをHierarchyビューに追加します。
f:id:taka_say:20150228152515p:plain
同様に【Assets->Qualcomm Augmented Reality->Prefabs】から、Image TargetをHierarchyビューに追加します。

このImage Targetオブジェクトに、表示用のマーカー画像や、表示するモデル等を設定していきます。
というわけで、HierarchyビューでImageTargetを選択し、InspectorビューにImageTargetを表示させましょう。

InspectorビューのImage Target Behaviourの欄にある、Data SetからインポートしたImage Targetデータベースの名前を選択します。
f:id:taka_say:20150228152948p:plain
また、Image Targetの欄もImageTargetデータベースに追加したターゲット名になっていることを確認します。
f:id:taka_say:20150228153138p:plain
もしなっていない場合は自分で選択します。

ターゲットの設定は出来たので、次は出現する3Dモデルを設定しましょう。
【Assets->UnityChan->SD_unitychan->Prefabs】からSD_unitychan_genericをHierarchyビューのImageTargetオブジェクトの子オブジェクトになるようにドラッグアンドドロップします。
f:id:taka_say:20150228153435p:plain
このような状態になっていればOK。

このままだと真っ暗なので、【Assets->UnityChan->Prefabs】からDirectional light for UnityChanをHierarchyビューに追加します。
f:id:taka_say:20150228153539p:plain
明るくなりました!

また以前までとの違いとして、v4.0からライセンスキーに設定された値をARCameraに入力しなければならなくなりました。
VuforiaのDeveloperサイトに再度アクセスし、TargetManagerで使用したライセンスキーを選択します。
表示されたページからライセンスキーの値をコピーします。
f:id:taka_say:20150228155007p:plain
上記画像の赤字で塗りつぶした箇所です。

次にUnityに戻り、ARCameraを選択します。
HierarchyビューのQCAR Behaviour欄にあるApp License Keyにコピーした値を貼り付け。
f:id:taka_say:20150228155233p:plain
これでライセンスキーの設定は完了です。

最後にARCameraのData Set Load BehaviourのLoad Data Set Sample(作成したターゲットデータの名前)とActivateにチェックを入れます。
f:id:taka_say:20150228160604p:plain

以上で、UnityでのVuforiaを利用したARアプリケーションの作成は終了です!

デプロイ

開発中の端末にWebカメラが付いている場合、そのままUnityの実行ボタンを押すと実行されます。
実際にターゲットの画像をかざしてみてください。
f:id:taka_say:20150228161014p:plain
このような感じで、きっとかわいいかわいいユニティちゃんが表示されるはずです!(後ろ向きを激写!)

ちなみに、Android端末で実行したい場合は、記事冒頭の以前の記事内にあるAndroid端末にデプロイの項目を参照して下さい。

まとめ

Vuforia 4.0から多少面倒な手順が増えてしまいましたが、無料でこれだけのライブラリを使えるという利点を考えれば、大した問題にはならないでしょう。
危惧していた無料版のウォーターマークの表示義務に関しても、アプリケーションに支障をきたすほどでは無いように感じますし、その辺りは開発陣の素晴らしい配慮が伺えるかと思います。
もし製品等で実際に利用したくなれば、ライセンス料金を支払う価値は十分にあるのではないでしょうか。

Vuforiaのバージョンは上がりましたが、相も変わらずお手軽にARアプリケーションの開発が可能ということで終わりたいと思います。


どうでもいいことですが、サイトデザイン以前の方が好きだったなあ。
新しいデザインは安っぽすぎてなんとも言えない感じです。