UnityでAR ~ Unity MARS にチャレンジ ~

# Unity MARS

Unity MARSのトライアルキャンペーンに釣られてみました。初めて知った製品でしたが、Unity内の仮想空間でAR体験をテストできる面白い発想の製品でした。その発想はなかった。

Unity MARS
https://create.unity.com/jp-mars-trial

月額サブスクの有料製品のようです。

<iframe width="560" height="315" src="https://www.youtube.com/embed/825WgLYUqvg" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe><br>


サンプルをAndroidで動かすまでの手順をまとめてみます。

# 環境

Windows10
Unity 2020.3.19f1
Pixel3a (android端末・android11）

※Unity 2019.4ではすんなりいかず、ごにょごにょする必要がありそうでしたので断念。

# サンプルビルド手順

基本的にはこのページの手順で進めました。

Building to devices with Unity MARS | Unity MARS | 1.3.1
https://docs.unity3d.com/Packages/com.unity.mars@1.3/manual/BuildingToADeviceWithMARS.html

## 新規プロジェクトの作成

UnityHubから新規プロジェクトを作成します。ここでは TryMARS1 としました。

## MARSパッケージをインポート

無料トライアル登録し、MARS_Installer.unitypackageを入手。TryMARS1を開いてunitypackageをインポート。
（すこし時間がかかります）

## Androidビルド環境

* android向けにビルドするため、ARCoreをパッケージマネージャからインストール。
![2021-11-21_09h47_08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/579071/47c3aff4-381c-0ad4-8ad1-2207c0bd341d.png)

* BuildSettings を開き platform を Android に切り替え
![2021-11-21_14h57_48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/579071/28b18924-0229-fb75-feff-166969ecb121.png)

* Project Settings > XR-Plugin Managementを開き、AR Core を有効に
![2021-11-21_15h11_40.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/579071/25bf704d-5a8a-38d3-bda0-2c5421ec714d.png)

* Project Settings > Other Settings > Graphics > Rendering の Vulkan を削除
![2021-11-21_15h12_12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/579071/2ccd53c8-0b02-6a24-55e5-35cce24e9d44.png)

* Player Settings > Identification > Minimum API Level を 24 以上に設定
![2021-11-21_15h16_16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/579071/5998609f-d59a-ba16-1c14-175aed29e513.png)

## サンプルプロジェクトをインポートしてビルド

* パッケージマネージャで Unity MARS を検索し、Samplesの中にあるTemplatesをインポート
![2021-11-21_16h04_16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/579071/b0a9cc32-c3e3-77e9-da3e-6501aa8b22f0.png)

* Game_Simpleテンプレートを開く
![2021-11-21_16h04_59.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/579071/79c4c9cd-9297-e77f-668c-fdc48b4aed9f.png)

* UnityEditorで再生し、動作確認。マウス右クリックしながらWASDで移動して地面を認識するとキャラとクリスタルが表示されます。クリスタルをタップするとキャラがクリスタルに向かってジャンプします。
![2021-11-21_16h05_41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/579071/563fe0f7-7b4d-3840-baef-feb959e28937.png)

* android向けにビルドして Pixel3a で無事動作しました。

<blockquote class="twitter-tweet"><p lang="ja" dir="ltr">Unity MARS のサンプルが動いた。<a href="https://twitter.com/hashtag/Unity?src=hash&amp;ref_src=twsrc%5Etfw">#Unity</a> <a href="https://twitter.com/hashtag/AR?src=hash&amp;ref_src=twsrc%5Etfw">#AR</a> <a href="https://t.co/zR0dBCnjgQ">pic.twitter.com/zR0dBCnjgQ</a></p>&mdash; Koji Honma (@LaboZeroKH) <a href="https://twitter.com/LaboZeroKH/status/1462325116256219142?ref_src=twsrc%5Etfw">November 21, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

## 以上

# まとめ

最初は2019.4でチャレンジしたのですんなりいきませんでしたが、2020.3ではすんなりでした。仮想世界で動作確認できるので開発が捗りそうです。予算が折り合うプロジェクトで採用を検討してみたいです。