Open7
iOSエンジニアなのでARKitについて調べてみる
ARで何ができるのか?
- 空間に物が置ける
- 置いた物の当たり判定、物理シミュレーション
- 空間になんか書ける
- 平面の認識
- 顔の認識
- Occlusion 2D/3D
- ユーザーの体と2D/3Dオブジェクトの前後関係を反映できる
サンプル集
-
KBOYさんのサンプル
ARKit 2.0のサンプルコード集「ARKit-Emperor」を公開しました! - Qiita -
dramaさんのサンプル
ARKit 3.0のサンプルコード集『ARKit-Invader』を公開しました - Qiita
Apple公式のページも面白い
ARKitを使ったOSSのキュレーションリポジトリ
ARKit関連のドキュメント集。探し物をするときはここを起点にすると便利そう
SceneKit VS RealityKit(2021年3月)
結論
今後のAppleによるサポートを考えると、SceneKitよりもRealityKitを採用した方が良さそう。ただし現時点(2021年3月)でRealityKitは機能不足だったり、ネット上のサンプルが少なかったりする可能性がある
ARKit
iOS 11.0+
- AR体験のためのフレームワーク
- モーショントラッキング、カメラ、フェイストラッキング
SceneKit
iOS 8.0+
- 3Dコンテンツ表示のためのフレームワーク
- 物理シミュレーション、パーティクルエフェクト、アニメーション
RealityKit
iOS 13.0+
- 3Dコンテンツ表示のためのフレームワーク
- SceneKitの新しい版?
- LiDARスキャナのサポート
参考
3Dモデルのフォーマットについて
.usdz
- ピクサーが開発した3Dファイル
.usd(Universal Scene Description)
をzipでアーカイブしたもの - Appleが推進
- 速報:アップル、AR向け新3DフォーマットUSDZ発表。iOS 12のARKit 2で導入 - Engadget 日本版
- Webに埋め込んでブラウザで表示できる
- 新しいApple製品の発売前に遊ぶやつだね
- Reality Converter
- https://developer.apple.com/jp/news/?id=01132020a
- .obj、.gltf、.usdなどの一般的な3Dファイル形式をドラッグ&ドロップするだけで、変換されたUSDZ結果を表示
- 初回リリース(2020年1月)から1年以上経過しているが未だにベータ版というのは気になる…
- これを使って作ったファイル(というよりプロジェクト?)が
.rcproject
としてXcodeに追加される
.scn
- SceneKit Catalogのこと
- ということはSceneKit専用のオブジェクトかも?
- https://developer.apple.com/documentation/scenekit/scnscenesource
- Xcode上では
.scnassets
を作って、.scn
(3Dモデル)と.png
(そのテクスチャ)のセットで扱うっぽい -
.dae
ファイルをXcode上で.scn
に変換可能
.dae
- 名称は「COLLADA」ファイル
- 拡張子が
.dae(digital asset exchange)
-
COLLADAの.daeファイルは大抵のモデリングツールでサポートされているらしい
Unityという選択肢
- 3Dコンテンツを誰が作るねん問題
- Apple製品上でしか使えないReality Composerを使って3Dコンテンツを作るのか?
- Unityを使って3Dコンテンツを作ればiOS/Android両方で使いまわせるはず