Vision Pro向けアプリケーション開発

Apple Vision Proの写真

はじめに

株式会社ギガ・システムでは新しいプラットホームへの対応も積極的に行なっています。本記事では Vision Pro、VisionOSがもたらす空間コンピューティングにおける技術の調査・蓄積のためVision Pro向けアプリケーションを開発した事例についてご紹介します。

本事例では RealityKit を使って Vision Pro を装着して見た視界の任意の位置にメモを置くアプリケーションを作成しています。

※ 開発は 2023年11月〜2024年2月 の期間のため本記事の情報は当時のものになります。

開発技術

本記事では Vision Pro アプリケーションで視線による位置の指定を用いて、パススルーして見える視界の任意の場所に仮想のオブジェクト(=メモ)を配置する手法を紹介します。

以下の動画は開発したアプリで壁面やディスプレーにメモを配置する様子をキャプチャしたものです。赤い球体はメモを留める付箋ピンを表すオブジェクトです。付箋ピンをタップするとメモが表示される様子をご確認いただけます。

なお、本記事では紹介していませんが、このアプリでは WorldTrackingProvider, WorldAnchor を使ったメモの永続化の検証も行なっていますので別の記事でご紹介したいと思います。

所感

Vision OSでのアプリケーション開発は従来の iPhone, iPad 向けの開発体験とのギャップが少なく、これまでAppleプラットホームでの開発で蓄積した資産を活かせるようになっていてさすがAppleであると感じます。

またイマーシブ空間向けのアプリケーション開発では Unity による開発もオプションとして用意されていますが、Apple社の提供する RealityKit だけを利用した場合でも工夫次第で視線による空間上の位置指定など一見難しそうな機能が予想よりも簡単に実現できることがわかりました。

開発環境

開発環境(当時)は次のものです。

– MacBook Pro Apple M3 24GB
– XCode Version 15.4 (15F31d)

やったこと

Vision Pro, Vision OS では視線とハンドジェスチャによる操作が基本となりますが、通常の Vision OS アプリ開発の枠組みでは、まず空間上に視線を検出する3Dオブジェクトを置いて、その3Dオブジェクトに視線が当たった状態でタップなどのハンドジェスチャで発火するイベントに対応する処理を作り込んでいく流れになります。

しかし、本事例のように「視線の先にメモ(3Dオブジェクト)を置きたい」という場合、視線を検出するための3Dオブジェクトがないためすこし工夫が必要です。

Vision Pro 実機を入手した現在であれば「Scene Reconstruction API とレイキャスト」での実装を試みると思いますが、本事例に取り組んだ2023年11月頃はシミュレータのみでの開発であったためシミュレータでも動作確認ができる「RealityKit の AnchorEntity による平面検出」をベースに実装しています。

メモの置ける位置指定の粒度やユーザビリティを考慮して大まかな処理の流れを下記のようにしました。

1. メモを置く場所(=平面)を検出する
2. 1の平面上に視線検出用オブジェクトを敷きつめる
3. 視線検出用オブジェクトのタップイベントで位置を特定
4. 検出した位置に付箋ピン(およびメモ)を配置する

次回、工夫した点などを紹介します。

This entry was posted in AppleVisionPro. Bookmark the permalink.