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の時代に球面のレイトレーシングが手の平サイズのデバイス上で動いて感動したけど、その頃から考えるとすごい進歩だよな。


関連記事

レンダラ制作はOpenGL とか DirectX を使わなく...

Rerun:マルチモーダルデータの可視化アプリとSDK

KelpNet:C#で使える可読性重視のディープラーニングラ...

自前Shaderの件 解決しました

Blender 4.2以降のWindowsPortable版...

Twitter APIのPythonラッパー『python-...

Google Chromecast

2018年に購入したiPad Proのその後

ZBrushでアヴァン・ガメラを作ってみる 口のバランス調整

池袋パルコで3Dのバーチャルフィッティング『ウェアラブル ク...

ZBrushでアヴァン・ガメラを作ってみる 脚のトゲの作り直...

ペイントマネージャー:模型塗料を管理できるスマホアプリ

BSDF: (Bidirectional scatterin...

ZBrushでアヴァン・ガメラを作ってみる 壊れたデータの救...

OpenMayaのPhongShaderクラス

OANDAのfxTrade API

Unity Scriptコーディング→Unreal Engi...

SVM (Support Vector Machine)

3Dスキャンしたテクスチャから照明を除去するUnityツール...

Photoshopで作る怪獣特撮チュートリアル

Quartus II

布のモデリング

Mayaのシェーディングノードの区分

Konashiを買った

AR (Augmented Reality)とDR (Dim...

ブログのデザイン変えました

TensorFlowでCGを微分できる『TensorFlow...

立体視を試してみた

OpenCVでカメラ画像から自己位置認識 (Visual O...

iOSデバイスと接続して連携するガジェットの開発方法

SONY製のニューラルネットワークライブラリ『NNabla』

openMVGをWindows10 Visual Studi...

pythonもかじってみようかと

ZBrushでアヴァン・ガメラを作ってみる 下アゴの付け根を...

openMVG:複数視点画像から3次元形状を復元するライブラ...

CGWORLD CHANNEL 第21回ニコ生配信は『シン・...

顔モデリングのチュートリアル

PythonでMayaのShapeノードプラグインを作る

C++の抽象クラス

Vancouver Film Schoolのデモリール

ZBrushでアヴァン・ガメラを作ってみる 全体のバランス調...

ZBrush キャラクター&クリーチャー

コメント