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側のインターフェイスを統合したようなイメージですね↓
ということで、ARKitを使うにはこちらのプラグインも必要↓
ARKit XR Plugin
ARKit XR Pluginパッケージを使えば、UnityのマルチプラットフォームXR APIを通じてARKitを利用できます。
このパッケージは、以下のXRサブシステムを実装しています:
- Session
- Camera
- Depth
- Input
- Planes
- Raycast
- ReferencePoints
- Image Tracking
- Object Tracking
- Environment Probes
- Participants
このバージョンの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 キャラクター&クリーチャー
コメント