今回は先日 4月23日に参加しました、Unityシンガポール 主催の「Unity AR Foundation」の講座に関してレポートします。
講師は Unityシンガポールの Evangelist である Marek Marchlewicz です。( Vuforiaの講座の際も彼が講師でした。「Unity Augumented Reality (AR) with Vuforia」の参加レポート )
Unity AR Foundation とは Android と iOS どちらにも対応している Unity の ARフレームワークです。両方の端末へのリリースが楽になりそうなので、前からかなり気になっていました。
いちおう、まだこれを書いてる段階では Previewバージョンとなります。

この講座では、ARのフレームワークとして ARCore、ARKit の紹介があり、AR Foundation とはどのような物かの説明、そして最後に実際に AR Foundation で ARを作成する実習がありました。
まず、ARKit はご存知のように、iOS向けの ARフレームワークですね。現在、リリースされているのは ARKit2 です。
ARKit の特徴として、以下の物をあげていました。
・複数人での AR体験、永続的な AR体験を実現する「World Maps」
・平面でなく、現実の物体を認識できる「Object Detection」
・環境の Lighting情報を取得し、リアルの物体をARに映り込ませたりできる「Environment Probes」

次に、ARCore について。私も前から使っていますが、Android用の ARフレームワークで、現在バージョンは1.8となっています。

ARCoreの大きな特徴として、以下のをあげていました。
・私も自分のARゲーム「Gotcha AR」で使いました、複数人でAR体験を共有する「Cloud Anchors」
・水平、垂直の平面上だけでなく、いろいろな方向を向いた面の検出をする「Oriented Feature Points」
・深度センサなしのカメラベースで立体的に顔を認識する「Face Tracking」

講師は Unityシンガポールの Evangelist である Marek Marchlewicz です。( Vuforiaの講座の際も彼が講師でした。「Unity Augumented Reality (AR) with Vuforia」の参加レポート )
Unity AR Foundation とは Android と iOS どちらにも対応している Unity の ARフレームワークです。両方の端末へのリリースが楽になりそうなので、前からかなり気になっていました。
いちおう、まだこれを書いてる段階では Previewバージョンとなります。

この講座では、ARのフレームワークとして ARCore、ARKit の紹介があり、AR Foundation とはどのような物かの説明、そして最後に実際に AR Foundation で ARを作成する実習がありました。
このブログでは、今回まず AR Foundation の説明パートをレポートします。そして、実習パートは「Unity AR Foundationの設定方法」として次回、HowTo形式で紹介していきます。

【AR KitとARCoreについて】
ARKit と ARCore に関しての紹介がありました。これに関しては彼もさらっと紹介しただけなので、ここでもさらっと紹介します。

【AR KitとARCoreについて】
ARKit と ARCore に関しての紹介がありました。これに関しては彼もさらっと紹介しただけなので、ここでもさらっと紹介します。
まず、ARKit はご存知のように、iOS向けの ARフレームワークですね。現在、リリースされているのは ARKit2 です。

ARKit の特徴として、以下の物をあげていました。
・複数人での AR体験、永続的な AR体験を実現する「World Maps」
・平面でなく、現実の物体を認識できる「Object Detection」
・環境の Lighting情報を取得し、リアルの物体をARに映り込ませたりできる「Environment Probes」

次に、ARCore について。私も前から使っていますが、Android用の ARフレームワークで、現在バージョンは1.8となっています。

ARCoreの大きな特徴として、以下のをあげていました。
・私も自分のARゲーム「Gotcha AR」で使いました、複数人でAR体験を共有する「Cloud Anchors」
・水平、垂直の平面上だけでなく、いろいろな方向を向いた面の検出をする「Oriented Feature Points」
・深度センサなしのカメラベースで立体的に顔を認識する「Face Tracking」

【Unity AR Foundationの紹介】
ここからは、Unity の提供する ARフレームワークである「Unity AR Foundation」の説明です。メインの話なので、ここでは使われたスライド全てを紹介します。

Unityの Package Manager からインポートすることにより使えます。この講習のタイミングではバージョン1.0.0の Preview22と言うことで、まだプレビュー版となります。

AR Foundationの 作りは構造は次のスライドのようになってます。
要は ARCore と ARKit 上に存在して、開発者は Unityでどちらにでもビルドできるアプリが作れますが、ビルド時には ARCore または ARKit を用いてビルドされることになります。
そのため、たまに AR Foundation になれば ARCore も ARKit もインポートする必要がないと解説している方がいるのですが、インポートは必要です。
AR Foundation のインポートと Android にビルドするなら ARCore のインポート、iOS なら ARKit のインポートが必要となります。
しかし、それぞれ用に開発する必要はなくなりますので とても魅力的です。

今の Android、iOS端末に対応可能と言うのを除いて、他に AR Foundation の特徴として以下のようなものがあります。
「LWRP Support」
Unity のモバイル端末上で High Quality、High Performance を実現する LWRP(Lightweight Render Pipeline)が使用できる。Unity の Shader Graph も ARに使えることになる。
「Camera Image API」
カメラ画像の加工やエフェクトの追加をするために、カメラ画像に直接アクセスするAPIがある。
「Remoting」
モバイルデバイス用にビルドをしなくても、Unityエディタから直接デバイスに繋げて AR機能のテストができる。

次に実際に AR Foundationで実現できる機能詳細に関して。
どのような機能が AR Foundation で使えるかは以下のスライドをご覧ください。In preview や Coming Soon な物もあります。
そして、ここで大きな注意点ですが、この図だと AR Foundation は ARCoreの機能も ARKitの機能も使えて最強!と言うような感じに見えますが違います。
先に、AR Foundation は ARCore と ARKit の上にあり それらを使ってビルドすると話しましたが、要は Android端末に対しては ARCoreに依存して、iOS端末に対しては ARKitに依存します。
例えば、AR Foundation を使えば Android端末で iOSの 3D Object Tracking ができるわけではありません。
AR Foundation を使ってそのまま どちらにもビルドするのであれば、どちらにも対応できる機能に制限した開発が必要となります。
(当然と言えば当然ですが、私は少しがっかりでした。期待度が高すぎたかな。)

ここからは、Unity の提供する ARフレームワークである「Unity AR Foundation」の説明です。メインの話なので、ここでは使われたスライド全てを紹介します。

Unityの Package Manager からインポートすることにより使えます。この講習のタイミングではバージョン1.0.0の Preview22と言うことで、まだプレビュー版となります。

AR Foundationの 作りは構造は次のスライドのようになってます。
要は ARCore と ARKit 上に存在して、開発者は Unityでどちらにでもビルドできるアプリが作れますが、ビルド時には ARCore または ARKit を用いてビルドされることになります。
そのため、たまに AR Foundation になれば ARCore も ARKit もインポートする必要がないと解説している方がいるのですが、インポートは必要です。
AR Foundation のインポートと Android にビルドするなら ARCore のインポート、iOS なら ARKit のインポートが必要となります。
しかし、それぞれ用に開発する必要はなくなりますので とても魅力的です。

今の Android、iOS端末に対応可能と言うのを除いて、他に AR Foundation の特徴として以下のようなものがあります。
「LWRP Support」
Unity のモバイル端末上で High Quality、High Performance を実現する LWRP(Lightweight Render Pipeline)が使用できる。Unity の Shader Graph も ARに使えることになる。
「Camera Image API」
カメラ画像の加工やエフェクトの追加をするために、カメラ画像に直接アクセスするAPIがある。
「Remoting」
モバイルデバイス用にビルドをしなくても、Unityエディタから直接デバイスに繋げて AR機能のテストができる。

次に実際に AR Foundationで実現できる機能詳細に関して。
どのような機能が AR Foundation で使えるかは以下のスライドをご覧ください。In preview や Coming Soon な物もあります。
そして、ここで大きな注意点ですが、この図だと AR Foundation は ARCoreの機能も ARKitの機能も使えて最強!と言うような感じに見えますが違います。
先に、AR Foundation は ARCore と ARKit の上にあり それらを使ってビルドすると話しましたが、要は Android端末に対しては ARCoreに依存して、iOS端末に対しては ARKitに依存します。
例えば、AR Foundation を使えば Android端末で iOSの 3D Object Tracking ができるわけではありません。
AR Foundation を使ってそのまま どちらにもビルドするのであれば、どちらにも対応できる機能に制限した開発が必要となります。
(当然と言えば当然ですが、私は少しがっかりでした。期待度が高すぎたかな。)

本講座の説明部分は以上です。この先は実際に AR Foundation を設定してみる実習の時間でした。この紹介レポートも、ここからは次回「Unity AR Foundationの設定方法」として解説します。
【 Unity AR Foundationの設定方法 】
【 Unity AR Foundationの設定方法 】
Sponsored Link