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


関連記事

Paul Debevec

ZBrushのZmodelerとDynamic Subdivisionを学ぶ

Russian3DScannerのトポロジー転送ツール『WrapX』

リメイク版ロボコップスーツのメイキング

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

uvでWindows11のPython環境を管理する

iPhoneをSSHクライアントとして使う

ドットインストールのWordPress入門レッスン

HD画質の無駄遣い その2

Mayaでリアルな布の質感を作るチュートリアル

Verilog HDL

OpenCV 3.3.0 contribのsfmモジュールのサンプルを動かしてみる

TVML (TV program Making language)

デザインのリファイン再び

SIGGRAPH論文へのリンクサイト

ラクガキの立体化 目標設定

書籍『メイキング・オブ・ピクサー 創造力をつくった人々』を読んだ

粘土をこねるようなスカルプトモデリング

昔Mayaでモデリングしたモデルをリファインしてみようか

映画『シン・仮面ライダー』 メイキング情報まとめ

AmazonEC2のインスタンスをt1.microからt2.microへ移行する

SculptrisとBlenderで作ったGodzilla 2014 (Fan Made)

Twitter APIのPythonラッパー『python-twitter』

口笛から作曲できるスマホアプリ『Chordana Composer』

ZBrushで仮面ライダーBLACK SUNを作る 頭部~バストの概形

Unityで学ぶC#

TensorFlowでCGを微分できる『TensorFlow Graphics』

WordPressプラグインの作り方

Unityの各コンポーネント間でのやり取り

映画『ジュラシック・ワールド』のVFXメイキング

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

『PIXARのひみつ展』に行ってきた

OpenCVのバージョン3が正式リリースされたぞ

R-CNN (Regions with CNN features):ディープラーニングによる一般物体...

MeshLab:3Dオブジェクトの確認・変換に便利なフリーウェア

映画『シン・ウルトラマン』 メイキング記事まとめ

日本でMakersは普及するだろうか?

OpenCVで動画の手ぶれ補正

Live CV:インタラクティブにComputer Visionコーディングができるツール

Amazon Web ServicesでWordPress

ポリ男からMetaHumanを作る

libigl:軽量なジオメトリ処理ライブラリ

コメント