UnityのAR FoundationでARKit 3

6月にAppleのARKit 3が発表されて、それが利用できるのはiOS 13からということでワクワクしながら待っておりました。(持っているなけなしのiPhoneでは怖くてベータ版をインストールできなかった)
https://developer.apple.com/jp/augmented-reality/arkit/

Frame SemanticsのpersonSegmemntationWithDepthが実際どんな感じなのか試してみたいな。

今年の1月にUnity-ARKit-Pluginを使ってでちょっとARKit遊びをしてみたけれど、



ARKit 3以降はUnity-ARKit-Pluginではなく、AndroidのARCoreも含めて全てAR Foundationから利用する形になるらしい。

AR Foundation 3.0

Cross-Platform AR in Unity! – AR Foundation Overview

AR Foundationを使用すれば、Unity上でマルチプラットフォームな方法で様々なARプラットフォームを操作できます。このパッケージはUnity開発者が使用できるインターフェイスを提供しますが、AR機能自体は実装していません。ターゲットとなるデバイスでAR Foundationを使用するには、そのプラットフォーム用の別のパッケージも必要となります。(例:iOSならARKit XR Plugin、AndroidならARCore XR Plugin)

AR Foundationは、以下のコンセプトに対応したデバイスを扱うためのMonoBehaviourとAPIのセットです。

  • World tracking: 物理空間上でのデバイスの位置・向きのトラッキング
  • Plane detection: 水平・垂直な平面の検出
  • 点群 (特徴点)
  • Reference points: デバイスが追跡する任意の位置・向き
  • Light estimation: 物理空間の平均色温度・明るさの推定
  • Environment probes: 物理環境の特定の領域を表すキューブマップの生成
  • Face tracking: 人の顔の検出・トラッキング
  • Image tracking: 2D画像の検出・トラッキング
  • Object tracking: 3Dオブジェクトの検出

AR Foundation 1.0から移行する場合は、移行ガイドをご覧ください。

https://blogs.unity3d.com/2019/06/06/ar-foundation-support-for-arkit-3/

AR Foundationは、今までARプラットフォームごとに別々だったUnity Pluginの、Unity側のインターフェイスを統合したようなイメージですね↓

AR Foundation

ということで、ARKitを使うにはこちらのプラグインも必要↓

ARKit XR Plugin

ARKit XR Pluginパッケージを使えば、UnityのマルチプラットフォームXR APIを通じてARKitを利用できます。
このパッケージは、以下のXRサブシステムを実装しています:


スポンサーリンク

このバージョンのARKit XR Pluginは以下の機能をサポートしています:

  • Device Localization
  • Horizontal Plane Detection
  • Vertical Plane Detection
  • Point Clouds
  • Pass-through Camera View
  • Light Estimation
  • Reference Points
  • Hit Testing
  • Session Management
  • Image Tracking
  • Object Tracking
  • Environment Probes
  • Participants

フェイストラッキングのサポートは、別の”ARKit Face Tracking“パッケージで利用できます。
AppleのApp Storeでは、アプリ開発者がフェイストラッキングを使用する予定がない場合に、バイナリにフェイストラッキングに関わる特定のシンボルを含むアプリを拒否します。そのため、曖昧さを回避するためにフェイストラッキングのサポートを別のパッケージに分割しました。


スポンサーリンク


AR FoundationのサンプルコードはGitHubにある↓
https://github.com/Unity-Technologies/arfoundation-samples

このサンプルが動作するUnityのバージョンは2019.2以降とのことなので、とりあえずインストール。
何か、Unityにほとんど触らないままバージョンを変え続けている気がする。Unityのバージョン管理はUnity Hubでラクチンだけど。

とりあえず1から始めるBasic Setupを日本語訳したと思われる記事を参考にちょっといじってみてから↓
https://qiita.com/fushikky/items/e43a1974d0f833121804

1からやるとPlayer Settingsがちょいちょい面倒なのね。
https://qiita.com/JunSuzukiJapan/items/e7c04072ac5e83fa6595

エディタは最近お気に入りのVSCodeを使おう。WindowsでもMacでも同じ使用感なので混乱しなくていい。
UnityのScriptを書く上で便利な拡張機能はこちらを参考にインストールした↓
https://qiita.com/kuronekoieko0305/items/bb2624a77c0e19d50b47

10年前、iPhone 3GSの時代に球面のレイトレーシングが手の平サイズのデバイス上で動いて感動したけど、その頃から考えるとすごい進歩だよな。
iPhone 3GSがますます欲しくなる動画
iPhone 3GSでレイトレーシングこれってやっぱり描画出来るのは球面だけかな。欲しいなぁiPhone 3GS。


スポンサーリンク

関連記事

ZBrushの練習 手のモデリング
ZBrushで仮面ライダー3号を造る 仮面編 リファレンス画像の表示
Google App EngineでWordPress
グローバルイルミネーションに手を出す前に、やり残したことがあるんじゃない?
マジョーラ
『ピクサー展』へ行ってきた
PythonのStructure from Motionライブラリ『OpenSfM』
OpenGVのライブラリ構成
Mayaのプラグイン開発
.NETで使えるTensorFlowライクなニューラルネットワークライブラリ『NeuralNetwo...
機械学習に役立つPythonライブラリ一覧
Unityの各コンポーネント間でのやり取り
WordPressプラグインによるサイトマップの自動生成
OpenCV 3.1のsfmモジュールを試す
『手を動かしながら学ぶエンジニアのためのデータサイエンス』ハンズオンセミナーに行ってきた
3Dグラフィックスの入門書
タダでRenderManを体験する方法
HD画質の無駄遣い
SIGGRAPH論文へのリンクサイト
ラクガキの立体化
Blender 2.81でIntel Open Image Denoiseを使う
書籍『開田裕治 怪獣イラストテクニック』
ドラマ『ファーストクラス』のモーショングラフィックス
RSSフィードを読込んで表示するWordpressプラグイン『RSSImport』
株式会社ヘキサドライブの研究室ページ
Google Chromecast
ZBrush 2018での作業環境を整える
Unity ARKitプラグインサンプルのチュートリアルを読む
イタリアの自動車ブランドFiatとゴジラがコラボしたCMのメイキング
iPhone 3GSがますます欲しくなる動画
Mitsuba 2:オープンソースの物理ベースレンダラ
法線マップを用意してCanvas上でShadingするサンプル
iPhone5S → iPhone6S
OpenCV3.3.0でsfmモジュールのビルドに成功!
Unityからkonashiをコントロールする
プログラムによる景観の自動生成
ZBrushと液晶ペンタブレットでドラゴンをモデリングするチュートリアル動画
科学技術計算向けスクリプト言語『Julia』
ZBrushで仮面ライダー3号を造る 仮面編 横顔のシルエットをリファレンスに合わせる
Structure from Motion (多視点画像からの3次元形状復元)
WordPress on Windows Azure
Stanford Bunny

コメント