visionOS開発の基本的概念
はじめに
2024年にAppleからVision Proというヘッドマウントディスプレイ(以下、HMD)が発売されます。そのVision Proに搭載されているのがvisionOSです。
ここではvisionOSで開発を行うために必要な情報をまとめていきます。
なお、書いている内容はAppleから公開されているWorld Wide Developer Conference(以下、WWDC)の動画や、Design Guidelinesに書かれている内容を参考にしています。ページの最後に参考にしたWebページのURLを貼っています。詳しく知りたい方は参考先のURLも見てみてください。
まずはvisionOS開発で出てくるキーワードを中心に基本的概念を見ていきます。また、基本的概念をイメージしやすくする為に、すでに慣れ親しんでいるmacOSを例にして説明します。
Window
visionOSのウィンドウは、macOSのウィンドウと同じ概念です。Safariを起動すればSafariのウィンドウが開きます。ウィンドウ内にはそのアプリのコンテンツが表示されます。Safariならウィンドウ内にWebページが表示されます。
しかし、visionOSのウィンドウにもmacOSのウィンドウとは異なるところがあります。それは、ウィンドウ内に奥行きを持った3Dオブジェクトを表示することができます。macOSは二次元のディスプレイに表示しているため、3Dっぽいオブジェクトを表示する事はできますが実際には奥行きはありません。
visionOSではiPadOSやiOS向けに作られたアプリがそのまま動きます。そして、それらの既存アプリはウィンドウに表示されます。iPadOS、iOSの両方に対応したアプリはiPadOSのレイアウトでウィンドウとして表示されます。
ウィンドウはvisionOSでも最も基本的なユーザーインターフェース(以下、UI)で、ユーザーも慣れ親しんだUIです。アプリを開発する時にも、まずはウィンドウで表現できないかを考えるのが良さそうです。
Volume
visionOSのボリュームは、macOSに同じ概念がありません。ボリュームは空間上に3Dオブエジェクトだけを表示できるものです。つまり、ウィンドウの様な外枠もなく、空間上に3Dオブジェクトとして表示されます。
ボリュームは色々な角度からオブジェクトを見ることができます。横から覗いてみたり、裏側に回り込んでみたり、3Dオブジェクトを好きな角度から見ることができます。これは空間コンピューティングならではのUIです。
ボリュームであれば、まるでそこに実態があるような表現ができます。例えばショッピンサイトで靴を買おうとしているユーザーがいます。靴の裏はどうなっているのか?カカトの部分の形状は?など今までの2Dでは難しかった表現が可能なります。
Space
visionOSのスペースは、macOSのデスクトップをイメージしてもらうと分かりやすいかもしれません。少しだけ違うのはデスクトップはディスプレイサイズという限られた領域の中にしか表示できません。しかしvisionOSでは360度すべての空間がディスプレイです。つまり、スペースには領域という制限が存在しません。
スペースには、複数のアプリのウィンドウを配置することもできますし、ウィンドウとボリュームを一緒に配置することもできます。
そして、スペースにはShared SpaceとFull Spaceというモードがあります。
Shared Space
AppleはShared Spaceのことを日本語で共有スペースとして表現しています。共有スペースは一般的なデスクトップのイメージが近いです。
共有スペースには複数のアプリを表示することもできます。同じアプリでも複数のウィンドウやボリュームを表示することだってできます。
ユーザーは音楽を聴きながらSafariで調べ物をしたいかもしれません。複数のことを同時に行いたい場合には共有スペースが適しています。また、共有スペースであればVision Proのカメラで撮影している現実世界の部屋(以下、パススルー)と、visionOSのウィンドウやボリュームを一緒に表示することができます。パススルーなら周囲の様子を感じながらvisionOSのアプリに集中することができます。もしも、部屋の様子が気になるのならばパススルーを暗くするだけで集中できることもあります。
visionOS開発時にはアプリだけに集中したい場合を除いて、共有スペースとしてアプリを提供できないかを考えるのが良さそうです。
Full Space
フルスペースは空間全体を1つのアプリで独占します。macOSのウィンドウをフルスクリーンにするとデスクトップ全体がウィンドウだけになりますが、その概念と似ています。しかし、visionOSではスペースは空間全体になるため、フルスペースにすると見渡す限り全ての空間がアプリに専有されます。
マインドフルネスのようにアプリだけに集中したい場合や、キーノートでステージで登壇しているイメージトレーニングをする場合にフルスペースは適しています。
ただし、フルスペースにした場合には1つのアプリが空間を専有するため、他のアプリを開くことができません。また、パススルーも表示されない為ユーザーは部屋の状況を感じることができません。本当に1つのアプリだけに集中したい場合にのみ利用するのが良さそうです。
また、フルスペースの状態で立ち上がったり一定の距離を移動すると安全を確保するためにフルスペースは解除されます。
まとめ
まずはvisionOS開発に必要な基本的概念を覚えておくと今後の開発がやりやすくなるでしょう。
スペースにはウィンドウやボリュームを表示することでき、スペースには
共有スペースとフルスペースが存在することをイメージしておきましょう。
また、WWDCの動画やWebページを見ていると、意味もなくボリュームにしたり、フルスペースにしないでねっというAppleからのメッセージを感じます。Vision Proの特徴は空間なので、空間上で派手に見せられるボリュームやフルスペースを使いたくなる気持ちはわかります。ただ、それが本当にユーザーにとって心地よい表現なのかはよく考える必要がありそうです。
あとがき
visionOSについて現時点で書ける範囲での本を書きました。2023/11/12(日)の技術書典15で販売するのでよろしければ。
visionOSの開発をみんなで勉強するためのvisionOS Developer Communityを始めました!
参考
https://developer.apple.com/jp/design/human-interface-guidelines/windows
この記事が気に入ったらサポートをしてみませんか?