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

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。


スポンサーリンク

関連記事

第1回 3D勉強会@関東『SLAMチュートリアル大会』
OpenCVのバージョン3が正式リリースされたぞ
ZBrushと液晶ペンタブレットでドラゴンをモデリングするチュートリアル動画
疑似3D写真が撮れるiPhoneアプリ『Seene』がアップデートでついにフル3Dモデルが撮影できる...
『シン・ゴジラ』のコンセプトアニメーションのメイキング動画が公開された
fSpy:1枚の写真からカメラパラメーターを割り出すツール
プロシージャル手法に特化した本が出てるみたい(まだ買わないけど)
OpenMVSのサンプルを動かしてみる
Houdiniのライセンスの種類
PGGAN:段階的に解像度を上げて学習を進めるGAN
テスト
マジョーラ
海外ドラマのChromaKey
色んな三面図があるサイト
写真に3Dオブジェクトを違和感無く合成する『3DPhotoMagic』
MeshLab:3Dオブジェクトの確認・変換に便利なフリーウェア
Phongの表現力パネェ 材質別のPhong Shader用パラメータ一覧
Mayaのポリゴン分割ツールの進化
Oculus Goを購入!
ポリゴンジオメトリ処理ライブラリ『pmp-library (Polygon Mesh Process...
Manim:Pythonで使える数学アニメーションライブラリ
SDカードサイズのコンピューター『Intel Edison』
機械学習に役立つPythonライブラリ一覧
1枚の画像からマテリアルを作成できる無料ツール『Materialize』
まだ続くブログの不調
Unreal Engine 5の情報が公開された!
ブラウザ操作自動化ツール『Selenium』を試す
ZBrushでゴジラ2001を作ってみる 身体のSubToolを分割
読みやすくて高速なディープラーニングのフレームワーク『Caffe』
Oculus Quest 2を購入!
OpenGV:画像からカメラの3次元位置・姿勢を推定するライブラリ
グローバルイルミネーションに手を出す前に、やり残したことがあるんじゃない?
ZBrush用トポロジー転送プラグイン『ZWrap Plugin for ZBrush』
CGレンダラ研究開発のためのフレームワーク『Lightmetrica (ライトメトリカ)』
新年の衝動買い
リアルタイム レイトレーシングAPI『DirectX Raytracing (DXR)』
UnityでLight Shaftを表現する
Windows10でPyTorchをインストールしてVSCodeで使う
『スター・ウォーズ/スカイウォーカーの夜明け』のVFXブレイクダウン
PyDataTokyo主催のDeep Learning勉強会
ZBrushで作った3Dモデルを立体視で確認できるVRアプリを作る
Unityで画面タッチ・ジェスチャ入力を扱う無料Asset『TouchScript』

コメント