Graphで平面を地形に変形させてみた。作るARアプリiOSunityアドバンストテクノロジーUnityとmetaioを使ってARアプリを作成し、iOS用にエクスポートしてxcodeでビルドするという作業がかなり色々な手順を踏む必要があったので書いていきます。metaioを使ってiOSのARアプリを作るだけならUnityを使う必要はありませんが、Unityで制作することによって後々Androidでも書き出せるという利点があるので今回はUnityを使いました。今回製作した環境は以下になります。5.1.1Unity+metaio制作準備まずUnityでmetaioを使う準備を行います。metaioの公式ページからmetaioSDKをダウンロードします。ダウンロードすると、SDKのインストールを求められるので、そのままインストールします。Packageを選択し、metaioSDKに入っている_UnityのmetaioSDK.unitypackageを選択し全てインポートします。ここで問題があり、Macを使用しているとDLLを保存する際ちゃんとした場所に保存されないので、ただインストールした後にUnityにパッケージを入れただけだとエラーが出て動きません。今回はwindows環境で行ったので、普通にSDKをインストールするだけですみました。metaioをOpenGLで動いているので、UnityをOpenGLモードで起動させなければなりません。-force-openglとコマンドプロンプトから入力することで、OpenGLモードで起動することができます。次に、metaioを使用するためには、Signatureを登録しないと行けません。Identifierです。Identifierを設定します。設定した後、metaioの公式のデベロッパーページでアカウント登録し、ログインします。Identifierを登録します。Appを押すと、Signatureが発行されます。Signatureは下のテーブルに表示されるので、自分のmetaioのバージョンにあったものを使用します。Signatureに入力することで、やっとmetaioをUnity上で使用できるようになります。Creatorを使用する必要が有ります。Creatorも公式ページからダウンロードできます。Creatorを起動し、下にある+が書いてあるTrackablesを選択すると、マーカーのタイプを選択する項目がでてきます。Trackingを使用すると思います。Trackingを選択し、OKを押すとマーカーとして設定する画像を指定するウィンドウが出てくるので、画像を選択して開きます。ちなみに無料版は一つのTrackingファイルで2つのマーカーをセットする事ができます。選択した画像の下にある☆の数は評価数を示していて、☆の数が多ければマーカーとして認識しやすいです。fileを選択することでzip形式で書き出されます。Unityではこのzipファイルを解凍せずそのまま使用します。書きだされたzipファイルはUnityのAssetsのStreamingAssetsに格納します。StreamingAssetsではなく、Assets直下などでもUnity上では動作しますが、iOSなどに書きだした際には読み込まないので注意が必要です。Unityでコンテンツを作成するやっとUnity上でコンテンツを作成していきます。Cameraは使用しないので削除します。Trackerも一緒に配置します。TrackerはmetaioSDKの子要素として追加します。metaioSDKにマーカーを登録していきます。一度に登録できるTrackingファイルは1つのみなので、sceneなどを切り替えずにたくさんのマーカーを使用したい場合は有償版を使う必要があります。configurationをStreamingAssets...に変更します。soucreにTrackingファイルであるzipファイルをドラッグしてあげれば、マーカーの登録は完了します。Trackerの子要素として追加してあげれば、マーカーを認識した時に表示されるようになります。ここで気をつけるのは、表示されるモデルはかなり拡大しないととても小さく表示されてしまうので、試しにプリミティブなキューブなどを表示させる場合は注意が必要です。XcodeでビルドするUnityで作成したものをXcode用にビルドする方法はここでは割愛します。metaioをUnityで使用し、XcodeでビルドするためにはXcode上で設定を追加してあげる必要があります。やることとしては、クラスファイルの追加と追加したファイルのビルド設定、Frameworkの追加とプロジェクトの設定になります。metaioを使うために必要なクラスファイルを追加していきます。クラスファイルはSDKをダウンロードした際に作成されたファイルの、_iOS/Examples_SDK/Template/Template/ClassesにあるEAGLView.h、EAGLView.mm、MetaioSDKViewController.h、MetaioSDKViewController.mmの4つのファイルをプロジェクトに追加します。これらのファイルはXcodeの機能であるARCを使わないため、ARCを使わないように設定しなければなりません。Sourcesの中にあるEAGLView.mmとMetaioSDKViewController.mmに-fno-objc-arc追加します。これでこれら4つのファイルの設定は終了です。次に、足りないFrameworkを追加していきます。LibrariesからダウンロードしたmetaioSDKファイルからmetaioSDK.frameworkを選択します。これだけでは足りないので、Unityから書きだした際に生成されたファイルのLibrariesファイルの中にあるmetaiosdkファイルもインポートする必要があります。Unityが書きだしたFrameworkも幾つか足りていないのでそれもインポートします。metaioを使う際に必須になるFrameworkはいくつか有り、環境によって変わってくる可能性もあるので、必要なFrameworkを以下に書き出しました。今回インポートされていなかったファイルは太字で示してあります。・QuartzCore.framework・CFNetwork.framework・AudioToolbox.framework・OpenGLES.framework・AVFoundation.framework・CoreMedia.framework・CoreLocation.framework・CoreMotion.framework・CoreVideo.framework・Security.framework・libz.dylib・libxml2.dylib・CoreImage.frameworkCoreImageはmetaioでは必要無いようですが今回製作したものは無いとリンクエラーになってしまいました。最後に、プロジェクトの設定を行います。Settingで以下の項目を設定します。library)に変更これでプログラムを動かせるようになります。Unityを使ってARを作るにはVuforiaを使う手段もあり、簡単なものを作るにはVuforiaが楽ですが、拡張性を考えるとmetaioが使えるようになって損は無いと思います。設定項目は色々ありますが、覚えてしまえばそんなに苦ではなかったのでmetaioも気軽に使えると思います。アニメやゲーム、漫画といったコンテンツに関連することに対してアンテナを広げています。