ARKitでユニティちゃんを踊らせてみた

[Apple ARKit]()が話題になってるので、ユニティちゃんを踊らせてみました。
とりあえずうまくいったので手順を公開しておきます。

![IMG_20170622_120710.jpg](https://qiita-image-store.s3.amazonaws.com/0/61995/525e460b-1f31-c0b8-7309-f1b777465397.jpeg)

ARKit Unity PluginはUnity 5.6.1p1以上で利用可能です。
環境構築はこちらを参考にさせていただきました。ありがとうございます。

[UnityでiOSのARKitを動かす手順](http://qiita.com/arumani/items/aac7372a171e441e1f16)

# Candy Rock Starのデータを使う

[ユニティちゃんのデータダウンロードサイト](http://unity-chan.com/contents/guideline/)で利用規約に同意し[ユニティちゃんライブステージ！ -Candy Rock Star-](http://unity-chan.com/download/releaseNote.php?id=CandyRockStar)のデータをダウンロードします。
ダウンロードしたunity-chan-crs-master.zipを展開します。
展開したフォルダから Assets -> Scenes -> Main.unityを選択してシーンを開きます。

ライブシーンはそのままでは編集するのが難しいので[こちら](http://tsubakit1.hateblo.jp/?page=1415629800)で公開されている[ユニティちゃんライブパッチ](https://dl.dropboxusercontent.com/u/56297224/UnitySumple2/%E3%83%A6%E3%83%8B%E3%83%86%E3%82%A3%E3%81%A1%E3%82%83%E3%82%93%E3%83%A9%E3%82%A4%E3%83%96/LIVE.unitypackage)をダウンロードしてimportします。
ヒエラルキーに各オブジェクトが表示されます。

![スクリーンショット 2017-06-22 12.26.34.png](https://qiita-image-store.s3.amazonaws.com/0/61995/706746ca-1609-e9c0-9a95-7732fd7d2e83.png)

Assets -> UnityChan -> Prefabs -> CandyRockStar を選択してExport Packageを選択します。とりあえず依存するオブジェクトをすべてエクスポート。
`unity-chan-crs.unitypackage`として保存します。

![スクリーンショット 2017-06-22 12.28.48.png](https://qiita-image-store.s3.amazonaws.com/0/61995/aefbf2ce-5c5f-d246-84ab-35f7c968cb0e.png)

# ARKit Unity Pluginをインポートする

Candy Rock Starのプロジェクトを終了して、Unityから新規プロジェクトを作成します。
ここではプロジェクト名を`arkit-unity-chan-crs`とでもしておきます。

[こちら](https://oc.unity3d.com/index.php/s/3hfM9T05P9vOpCf)で公開されている`unity-arkit-plugin.unitypackage`をダウンロードします。

ダウンロードできたらプロジェクトのAssetsパネルににドラッグ&ドロップしてインポートします。

![スクリーンショット 2017-06-22 12.40.25.png](https://qiita-image-store.s3.amazonaws.com/0/61995/1d70790f-e6ca-e6f7-fcf0-d5521fe71607.png)

# シーンにユニティちゃんを追加する

Assetsパネルに先ほどエクスポートした`unity-chan-crs.unitypackage`をドラッグ・アンド・ドロップしてインポートします。

Assetsパネルから`UnityARKitScene`をダブルクリックしてシーンを表示します。このシーンをカスタマイズしていきます。

![スクリーンショット 2017-06-22 12.45.27.png](https://qiita-image-store.s3.amazonaws.com/0/61995/72e680c2-6f80-7a2d-ec35-3388312b7777.png)

シーン上のRandomCubeとHitCubeParentを削除します。

![スクリーンショット 2017-06-22 12.46.34.png](https://qiita-image-store.s3.amazonaws.com/0/61995/f3d6ceae-1778-23b4-a499-688b318d45e5.png)

RandomCubeがあった場所に Assets -> UnityChan -> Prefabs -> CandyRockStar を追加します。
Camera Parent -> MainCameraのプレビューをみながら、画面の一番下にユニティちゃんのつま先がくるように位置を調整します。

![スクリーンショット 2017-06-22 12.56.58.png](https://qiita-image-store.s3.amazonaws.com/0/61995/6532ff71-71c8-8af0-3b7a-8733e9ca9594.png)

![スクリーンショット 2017-06-22 12.56.47.png](https://qiita-image-store.s3.amazonaws.com/0/61995/b3cde1c8-1c4e-4ea3-a125-d71bf7a12f06.png)

シーンを再生するとこんな感じです

![スクリーンショット 2017-06-22 13.00.27.png](https://qiita-image-store.s3.amazonaws.com/0/61995/9f6bbc06-57dd-e2ef-d8e7-3b7a402b6c1f.png)

ユニティちゃんのPrefabにスクリプト`Unity AR Hit Test Example`をAdd Componentします。これがARKitの平面認識をするサンプルスクリプトです。

![スクリーンショット 2017-06-22 13.01.11.png](https://qiita-image-store.s3.amazonaws.com/0/61995/6ee77ebf-cd54-fe05-995a-7f9f9fa64e1d.png)

File -> Build Settingsを選択してダイアログを開きます。Add Open Sceneボタンをクリックしてシーンを追加します。

PlatformからiOSを選択してswitch platformボタンをクリックします。

![スクリーンショット 2017-06-22 13.09.06.png](https://qiita-image-store.s3.amazonaws.com/0/61995/eae95cea-8044-ddbf-5b79-13fa9c2a2629.png)

Player SettingsボタンをクリックしてBuild Identiferを変更します。
Camera Usage Descriptionに"Camera Use"とでも記載しておきます。

![スクリーンショット 2017-06-22 13.11.23.png](https://qiita-image-store.s3.amazonaws.com/0/61995/f5471df8-116f-5cc6-1824-61bcc32d4458.png)

設定できたらBuildボタンをクリックしてiOSプロジェクトをビルドします。
プロジェクト名は`arkit-unity-chan-csr-ios`としておきます。

ビルドが完了したら`arkit-unity-chan-csr-ios`フォルダの中のUnity-iPhone.xcodeprojを開きます。

iPhoneを接続し、Build Identifer、Signingの設定をして左上の再生ボタンをクリックしiPhoneにアプリをビルド&インストールします。

![スクリーンショット 2017-06-22 13.20.32.png](https://qiita-image-store.s3.amazonaws.com/0/61995/9923bf28-c35e-891d-82e2-8cba3cb56cb0.png)

インストールが完了して、アプリが起動し、カメラアクセスを許可するとユニティちゃんが踊りだします。

![IMG_20170622_120710.jpg](https://qiita-image-store.s3.amazonaws.com/0/61995/16610e78-f1a9-fb03-b2e8-f78c9ba06c93.jpeg)

とりあえず踊るトコまで。リップモーションが動いてないとかBGMについては後で追記します。