Vuforiaであそぼう! その4


Vuforiaであそぼう!
Vuforiaであそぼう! その2
Vuforiaであそぼう! その3
Vuforiaであそぼう! その4

VuforiaのcoreのサンプルにUserDefinedTargetsというやつがありまして。
これがマーカーを自分で好きなやつ画像をマーカーに定義できる優れものなのですが、
これがなかなかいろいろつかえそう。

こんな感じ

やりかた

新規シーンを開きまして、カメラを削除
そして、Vuforia/Prefabsフォルダ配下にある
ARCamera ImageTarget UserDefinedTargetBuilderを配置

ARCameraにApp keyをいれつつ、
ImageTargetのTypeをUserDefinedに修正

するとscene上ではこんな見栄えになります。

次にuserDefinedTargetBuilderのインスペクタがこんな感じ。
サンプルと同じようにするにはStart scanning automaticallyにチェックを入れます。
あとはここにUDT Event Handlerをアタッチ。このスクリプトがキャプチャボタンなどのスクリプトを含んでいます。
そしてこのインスペクタにImageTargetをセット。

次にマーカーをとるところ周り。
UIで適当にボタンを用意して・・・。
ButtonのOnClickに先ほど追加したUDT Event HandlerのBuildNewTargetを設定

たったこれだけで出来上がり!
あとは好きなようにカスタマイズしてカップラーメンタイマーを・・・・あれ?
時間が減らない・・・・。

原因はok押すたびに3DオブジェクトがInstantiateされているのでTextMeshの参照が違っていたから。
複製されているのはUDTEventHandler.csのOnNewTrackableSourceメソッドにて。
とるたびに下記のような命名規則でオブジェクトが増えていく。

string targetName = string.Format("{0}-{1}", ImageTargetTemplate.TrackableName, mTargetCounter);

3Dモデルのところにscriptを貼っておけば問題ないけれど、それ以外の場合は注意が必要。
とりあえずやっつけラーメンタイマー完成。
UserDefinedTargetBuilderこれを使えばきっとどんなカップ麺の蓋にも載せられるね。
あとは時間設定できるようにしたり、ちょっとしたミニゲームみたくしたり。そこは工夫のしどころ。

結構ARは待ち時間とかと相性が良さそうな気がしていて、
一つ調べたらすでにあったのが
ハーゲンダッツ
食べごろになる時間までっていう着眼点が素敵!
日本のはないみたいだ・・・。カップ麺タイマーどこかやらないかな・・・。
モンスターファームのCDの代わりに撮った画像の色とかをベースにモンスターをARで召喚とかでもいい気もするし。いろいろコンテンツとしてはいけそうだよね。
ポケモンGOのおかげでARってかなり浸透した気がするし・・・。

はい、今回はここまで。