NyARToolKit

NyARToolKit for Unity

Section 3 サンプルシーンをAndroidに出力

About

NyARToolKit for Unity のサンプルをAndroidに書き出す方法について説明します。

なお、「Unity Editor上で動作する = 実機でも動作する」とは限りません。 これはファイルの保存場所なども関係するためですが、ウェブ上で解決策が出ていたりするので積極的に調べて問題を解決してください。

サンプルプロジェクト - SimpleLiteM

SimpleLiteMのサンプルプロジェクトを開いてください。

Unity - SimpleLiteM.unity - NyARToolKit-Lab

まず、このサンプルがPC上で動作するか確認してください。 マーカーはHiroマーカー人マーカーの二枚です。

プラットフォームの切替えとBuildセッティング

[File]->[Build Settings…]と辿って[Build Settings]ウィンドウを開きます。

Unity - SimpleLiteM.unity - NyARToolKit-Lab

Androidを選択して、[Switch Platform]をクリックして確定します。

Build Setting

続いて[Player Settings…]ボタンをクリックしてPlayerSettings Viewを開きます。

Player Settings view

まず[Resolution and Presentation]タブを開いて、[Default Orientation]をLandscape Leftに変更してください。

Player Settings view

次に[Other Settings]を開き[Bundle Identifier]を適切なものに変更して下さい。たとえばjp.sixwish.nyartoolkit.unity.android.simplelite2のようにします。 また、[Minimum API Level]をAndroid 2.3.3 ‘Gingerbread’ (API level 10)に変更します。

Player Settings view

これで準備が整いました。

Player Setting

サンプルとして実行するためだけの設定です。
リリースするアプリにする場合は、[Other Settings]の内容を説明のままにしてはいけません。必ず適切なものに置き換えてください。 また、それ以外にもSplashやIconなど書き換えた方が良い箇所がいろいろあります。書籍を参考にリリースに当るようお願いします。

実行

Build Settingsのウィンドウ内に[Build And Run]ボタンがあるのでクリックしてください。

apkを保存する場所を指定するように問いかけてくるので適当な場所に適切な名前で保存してください。 今回はC:\UnityWorkspace\bin\SimpleLiteMフォルダにSimpleLiteM-1.0.apkという名称で保存します。

確定後、Build処理が走るのでしばらく待ちます。

Unity - SimpleLiteM.unity - NyARToolKit-Lab

その後、Android端末がadb接続でPCにつながっている場合はそのまま端末に転送してくれます。 接続されていない場合は、apkファイルができるのでそれを端末にコピーしてインストールしてください。

きちんと動作すれば下図のようになります。

SimpleLiteM

Android用に書かれたサンプルではないため[戻る]ボタンで終了しないなどいろいろありますが、アプリケーションの実装の範囲内なのであとは実装次第です。

Unity次第?

実行されたサンプルを見るとわかると思いますが表示されているもののアスペクト比がおかしいです。これはカメラの解像度が4:3になっているためでコード中の値を変えれば16:9になる……はずなのですが、うまくいったためしがありません。 一応、Cameraの[Normalized View Port Rect]の値の[W]に0.75をセットすればアスペクト比が維持されますが表示画面が小さくなります。 カメラの解像度もいろいろ試しているのですがこちらの思うようにセットできないので何かわかる方からの情報をお待ちしております。