2012年5月9日水曜日

iOSでARアプリを試してみる(vuforia)

iOSでARアプリに挑戦してみよう
と思ってとりあえずvuforiaを使ってみました。

使ってみただけで内容はさっぱりわかりませんがサンプルを動かすまでと
ARの認識画像を変更するところまでは動きました。

まずはQDevNetからSDK(vuforia-sdk-ios-1-5-8.zip)をダウンロードします。
https://ar.qualcomm.at/qdevnet/sdk/ios
(ダウンロードにはユーザ登録が必要です)

ダウンロードしたファイルを解凍してvuforia-sdk-ios-1-5-8.appからインストールを行います。
これでSDKのインストールは完了です。


次にサンプルを動かしてみます。
インストール後、ディレクトリは以下のようになっていると思います。

ディレクトリ内にあるsampleから今回はImageTargetsを動かしてみます。
とりあえずプロジェクトを開いてビルド。
エラーがないことを確認して実機でデバッグ。

ImageTargets > media のjpgファイルを見るとこんなかんじで表示されると思います。
(印刷する環境がなかったのでパソコンの画面をそのまま。。。)

次に認識する画像を追加する方法。
(上の画像を認識させるようにします)

まずこの画像のTrackable(特徴みたいなもの?)を取得する必要があります。
QDevNetにアクセスしMyTrackablesを開きます。
「New Project」をクリックし「Project name」に「ImageTargets」と入力し「Save」をクリックします。
プロジェクトが登録されてると上の画面が表示されますので「create a trackable」をクリックします。
Trackable Name : 適当に名称を入力
Select Trackable Type : Single Image Or Multi Target - cuboid Or Multi Target - cube
(今回は Single Image を選択します)
Trackable Scene Size :
Width : 認識させる画像の横幅を入力

上の内容を入力後、「Create Trackable」をクリックします。
次に画像を選択する画面が表示されます。「Upload」をクリックして画像を選択します。
画像のアップロードが完了すると下のような画面が表示されます。
アップロードした画像上に解析した結果?みたいなものが表示され、また右には★マークが表示されています。この★が多いほうが画像を認識しやすくなるみたいです。

最後にパンリストから「ImageTargets」をクリックしてtrackablesをダウンロードします。

これで認識させる準備は完了です。


次にプロジェクトにこれらを設定していきます。
上でダウンロードしたファイル「ImageTargets.zip」を解凍すると「ImageTargets.dat」と「ImageTargets.xml」というファイルができると思います。
これをXcodeのプロジェクトに配置します。
(プロジェクトにファイルを追加時「Copy items into destination group's folder」のチェックを忘れないように)

最後にImageTargetsAppDelegate.mmファイルを開き、以下のように修正します。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    QCARutils *qUtils = [QCARutils getInstance];
    
    CGRect screenBounds = [[UIScreen mainScreen] bounds];
    window = [[UIWindow alloc] initWithFrame: screenBounds];
    
    [self setupSplashContinuation];
    
    // Provide a list of targets we're expecting - the first in the list is the default
    [qUtils addTargetName:@"Stones & Chips" atPath:@"StonesAndChips.xml"];
    [qUtils addTargetName:@"Tarmac" atPath:@"Tarmac.xml"];

    // ココを追記します
    [qUtils addTargetName:@"ImageTargets" atPath:@"ImageTargets.xml"];
    
    // Add the EAGLView and the overlay view to the window
    arParentViewController = [[ARParentViewController alloc] init];
    arParentViewController.arViewRect = screenBounds;
    [window insertSubview:arParentViewController.view atIndex:0];
    [window makeKeyAndVisible];
    
    return YES;
}

qUtils addTargetname:atPathを追記してビルド。
これでエラーがでなければ実機でデバッグしてみます。


こんなかんじでとりあえず動きました。

今回はImageTargetsのサンプルを動かしてみましたがほかにもいくつかサンプルがあるのでいろいろ試してみてください。


0 件のコメント:

コメントを投稿