アプリ ビュー
Windowsアプリは2種類のビューを含むことができます。イマーシブビューと2Dビューです。 アプリでは、さまざまなイマーシブ ビューと 2D ビューを切り替えることができます。2D ビューは、モニター上ではウィンドウとして、ヘッドセットではスレートとして表示されます。 少なくとも1つのイマーシブビューを持つアプリは、複合現実感アプリに分類されます。 イマーシブ ビューを持たないアプリは、2D アプリです。
概要
イマーシブ ビュー
アプリでイマーシブ ビューを使用すると、ユーザーの周囲にホログラムを作成したり、ユーザーを仮想環境に没入させたりすることができます。 アプリがイマーシブ ビューで描画されている場合、その他のアプリは同時に描画されません。複数のアプリからのホログラムは一緒には合成されません。 ユーザーの頭の動きに合わせてシーンをレンダリングするアプリのパースペクティブを継続的に調整することにより、アプリはワールド ロックされたホログラムをレンダリングできます。 ワールド ロックされたホログラムは、現実世界の一定の位置に固定されます。また、ユーザーが移動したときにその位置を保持する仮想環境をレンダリングすることもできます。
イマーシブ ビューでは、ホログラムを自分の周囲に配置できます
HoloLens では、アプリにより、ユーザーの実世界の環境上にホログラムがレンダリングされます。 Windows Mixed Reality イマーシブ ヘッドセットでは、ユーザーは実世界を見ることができないため、ユーザーに表示されるすべてのものをアプリでレンダリングする必要があります。
Windows Mixed Reality ホーム (環境に配置したスタート メニューとホログラムを含む) は、イマーシブ ビューではレンダリングされません。 HoloLens では、イマーシブ ビューが表示されている間に発生するシステム通知が Cortana によって中継され、ユーザーが音声入力を使用して応答できるようにします。
イマーシブ ビューでは、すべての入力処理もアプリに任されています。 Windows Mixed Reality への入力は、視線入力、ジェスチャ (HoloLens のみ)、音声入力、モーション コントローラー (イマーシブ ヘッドセットのみ) で構成されています。
2D ビュー
Windows Mixed Reality ホームに並べられた 2D ビューの複数のアプリ
2D ビューを使用したアプリは、Windows Mixed Reality のホーム ("シェル" と呼ばれることもあります) に仮想スレートとして表示されます。これは、アプリ ランチャーと、ユーザーがその世界の周囲に配置した他のホログラムと共にレンダリングされます。 ユーザーは、このスレートを調整して移動したり、サイズを変更したりできます。ただし、どのサイズでも解像度は固定されたままです。 アプリの最初のビューが 2D ビューの場合、2D コンテンツはアプリを起動するのに使用されるものと同じスレートに収まります。
デスクトップ ヘッドセットでは、現在デスクトップ モニター上で実行されている任意のユニバーサル Windows プラットフォーム (UWP) アプリを実行できます。 これらのアプリでは既に 2D ビューがレンダリングされており、そのコンテンツは、起動時にユーザーの世界のスレートに自動的に表示されます。 2D UWP アプリは、Windows.Universal デバイス ファミリをターゲットにすることができ、デスクトップ ヘッドセットと HoloLens の両方でスレートとして実行されます。
2D ビューの主な用途の 1 つは、システム キーボードを使用するテキスト入力フォームを表示することです。 シェルではイマーシブ ビューの上にレンダリングできないため、アプリを 2D ビューに切り替えてシステム キーボードを表示する必要があります。 テキスト入力を受け入れるアプリでは、テキスト ボックスを持つ 2D ビューに切り替える必要があります。 このテキスト ボックスがフォーカスされているときは、システム キーボードが表示され、ユーザーがテキストを入力できるようになります。
アプリでは、デスクトップ モニターと、デスクトップ PC に接続されたヘッドセットの両方に 2D ビューを含めることができます。 たとえば、メインの 2D ビューを使用してデスクトップ モニターで Edge を参照し、360 度のビデオを見つけることができます。 そのビデオを再生すると、Edge ではヘッドセット内の 2 次的なイマーシブ ビューが起動され、イマーシブ ビデオ コンテンツが表示されます。
ビューの選択
アプリをアクティブ化するとき、表示したいビューの種類を選択することができます。 アプリのCoreApplicationには、必ずプライマリアプリビューがあり、さらに作成した任意の数のアプリビューが存在します。 デスクトップでは、アプリビューをウィンドウと考えることができます。 Mixed Realityアプリテンプレートは、プライマリアプリビューがイマーシブであるユニティプロジェクトを作成します。
XAMLなどの技術を使用して追加の2Dアプリビューを作成して、アプリ内購入などのWindows 10の機能を使用できます。 アプリが他のWindows10デバイス用のUWPアプリとして開始された場合、プライマリビューは2Dです。 ただし、エクスペリエンスをボリュームで表示するためのイマーシブの別のアプリビューを追加することで、Mixed Realityで「ライトアップ」できます。 フォト ビューアー アプリ、たとえばスライドショー ボタンでイマーシブ アプリ ビューに切り替わり、アプリからの写真が平面から立体に飛び出すようなアプリを XAML で作成することが考えられます。
実行中のアプリは2Dビューまたはイマーシブビューを有する場合があります。
イマーシブビューを作成します。
Mixed RealityアプリはHolographicSpaceタイプで実現されるイマーシブビューを作成します。
純粋にイマーシブなアプリは、デスクトップから起動される場合でも、起動時に常にイマーシブビューを作成する必要があります。 イマーシブビューは、どこから作成されたかに関係なく、常にヘッドセットに表示されます。 イマーシブビューをアクティブ化すると、Mixed Reality ポータルを表示し、ユーザーにヘッドセットを装着するように促します。
デスクトップモニター上に2Dビューで開始するアプリは、セカンダリイマーシブビューを作成してヘッドセットのコンテンツを表示できます。 たとえば、モニター上の 2D Edge ウィンドウで、ヘッドセットの 360 度ビデオを表示するようなケースが該当します。
イマーシブ ビューで実行されるアプリは 1 つしか表示できない
Windows Mixed Realityホームでの2Dビュー
イマーシブビュー以外は、この世界で2Dビューとしてレンダリングされます。
アプリは、デスクトップモニターとヘッドセットの両方に2Dビューを有する場合があります。 新しい2Dビューは、モニターまたはヘッドセットのいずれかで、それを作成したビューと同じシェルに配置されます。 現在、アプリやユーザーが、Mixed Reality ホームとモニターとの間で 2D 表示を移動させることはできません。
2Dビューで実行されているアプリは、他のアプリとスペースを共有します。
追加のアプリタイルの配置
セカンダリタイルAPIを使用して、2Dビューでアプリを好きなだけこの世界に配置できます。 これらの「固定された」タイルは、ユーザーが配置する必要があり、後でアプリを起動するために使用できるスプラッシュスクリーンとして現れます。 Windows Mixed Reality では現在、2D タイルのコンテンツをライブ タイルとしてレンダリングすることはできません。
セカンダリタイルを使用してアプリを異なる方式で配置できます
ビューの切り替え
2D XAMLビューからイマーシブビューに切り替えます。
アプリがXAMLを使用する場合、XAMLIFrameworkViewSourceはアプリの第1のビューを制御します。 アプリがイマーシブエクスペリエンスに確実に直接起動するように、アプリはCoreWindowをアクティブ化する前にイマーシブビューに切り替える必要があります。
アクティブビューに切り替えるには、CoreApplication.CreateNewViewとApplicationViewSwitcher.SwitchAsyncを使用します。
Note
- XAMLビューからイマーシブビューへの切り替え時、またはアプリを起動したスレートをこの世界から削除するとき、ApplicationViewSwitchingOptions.ConsolidateViewsフラグをSwitchAsyncに指定しません。
- SwitchAsyncは、切り替え先のビューに関連付けられるディスパッチャを使用して呼び出す必要があります。
- 仮想キーボードを起動したり、別のアプリをアクティブにしたりする必要がある場合は、SwitchAsync で XAML 表示に戻す必要があります。
左:アプリは2Dビューとイマーシブビューの間で切り替えることができます。 右:アプリがイマーシブビューに切り替わるとき、Windows Mixed Realityホームや他のアプリは消えます。
イマーシブビューからキーボードXAMLビューに切り替えます。
ビューを切り替える一般的な理由の1つは、Mixed Realityアプリでキーボードを表示することです。 シェルは、アプリが2Dビューを表示している場合にのみ、システムキーボードを表示できます。 アプリがテキスト入力を取得する必要がある場合、カスタムXAMLビューにテキスト入力フィールドを提供し、それに切り替えて、入力が完了した後に元に戻すことができます。
前のセクションと同様に、ApplicationViewSwitcher.SwitchAsyncを使用して、イマーシブビューからXAMLビューに切り替えることができます。
アプリのサイズ
2Dアプリビューは常に固定仮想スレートに現れます。 これにより、すべての2Dビューにまったく同じ量のコンテンツを表示させます。 アプリの2Dビューのサイズに関するいくつかのさらなる詳細は次のとおりです。
- アプリの縦横比はサイズ変更中も維持されます。
- サイズ変更によってアプリの解像度と倍率が変更されることはありません。
- アプリは、この世界で実際のサイズを照会できません。
2D 表示のアプリは固定ウィンドウ サイズで表示される
アプリのタイル
Mixed Reality のスタート メニューには、標準的な小さいタイルと普通サイズのタイルがピン留めに使用されるほか、すべてのアプリ リストが使用されます。
Windows Mixed Realityのスタートメニュー
アプリ間の対話式操作
アプリをビルドするとき、Windows 10で利用できる豊富なアプリ間通信メカニズムにアクセスできます。 新しいプロトコルAPIとファイル登録の多くは、HoloLensで完璧に動作し、アプリの起動と通信を有効にします。
デスクトップヘッドセットの場合、特定のファイル拡張子またはプロトコルに関連付けられるアプリは、デスクトップモニターやデスクトップスレートにしか表示できないWin32アプリである場合があります。
プロトコル
HoloLensは、Windows.System.Launcher APIを介してアプリ間起動をサポートします。
他のアプリケーションを起動するときに考慮すべきことがいくつかあります。
LaunchUriAsyncなどの非モーダル起動を行う場合、ユーザーは、アプリと対話する前にそれを配置する必要があります。
LaunchUriForResultsAsyncなどを介してモーダル起動を行う場合、モーダルアプリは、ウィンドウの上部に配置されます。
Windows Mixed Realityは、排他的ビューの上にアプリケーションを重ねることができません。 起動したアプリを表示するために、Windowsはユーザーをその世界に戻してアプリケーションを表示します。
ファイルピッカー
HoloLensは、FileOpenPickerとFileSavePickerの両方のコントラクトをサポートします。 ただし、ファイルピッカーのコントラクトを満たすアプリが予めインストールされません。 これらのアプリ、たとえばOneDriveはMicrosoft Storeからインストールできます。
複数のファイルピッカーアプリがインストールされている場合、起動するアプリを選択するためのいずれかの曖昧さ回避UIが表示されません。 代わりに、最初にインストールされたファイルピッカーが選択されます。 ファイルを保存するとき、タイムスタンプを含むファイル名が生成されます。 これはユーザーが変更することはできません。
既定では、次の拡張子がローカルでサポートされます。
アプリ | Extensions |
---|---|
Photos | bmp、gif、jpg、png、avi、mov、mp4、wmv |
Microsoft Edge | htm、html、pdf、svg、xml |
アプリコントラクトとWindows Mixed Realityの拡張
アプリコントラクトと拡張点を使用すると、アプリを登録して、ファイル拡張子の処理やバックグラウンドタスクの使用などのより深いオペレーティングシステム機能を利用できます。 これは、HoloLensでサポートされているコントラクトとサポートされていないコントラクトおよび拡張点のリストです。
コントラクトまたは拡張 | サポート対象? |
---|---|
アカウント画像プロバイダー(拡張) | サポートされていない |
アラーム | サポートされていない |
App Service | サポートされていますが、完全には機能していません。 |
アポイントメントプロバイダー | サポートされていない |
AutoPlay(拡張) | サポートされていない |
バックグラウンドタスク(拡張) | 部分的にサポートされています(全てのトリガーが機能するわけではありません) |
タスクの更新(拡張) | サポートされています |
キャッシュされたファイルアップデーターコントラクト | サポートされています |
カメラ設定(拡張) | サポートされていない |
ダイヤルプロトコル | サポートされていない |
ファイルアクティブ化(拡張) | サポートされています |
ファイルオープンピッカーコントラクト | サポートされています |
ファイル保存ピッカーコントラクト | サポートされています |
ロックスクリーン呼び出し | サポートされていない |
メディア再生 | サポートされていない |
コントラクトへの再生 | サポートされていない |
予めインストールされた構成タスク | サポートされていない |
プリント3Dワークフロー | サポートされています |
プリントタスク設定(拡張) | サポートされていない |
URIアクティブ化(拡張) | サポートされています |
制限された起動 | サポートされていない |
検索コントラクト | サポートされていない |
設定コントラクト | サポートされていない |
共有コントラクト | サポートされていない |
SSL/認証(拡張) | サポートされています |
ウェブアカウントプロバイダー | サポートされています |
アプリファイル記憶
すべての記憶はWindows.Storage名前空間を介して行われます。 HoloLensは、アプリ記憶シンク/ローミングをサポートしません。 詳しくは、以下のドキュメントをご覧ください:
既知のフォルダー
UWPアプリの詳細については、KnownFoldersをご覧ください。
プロパティ | HoloLensでサポートされています。 | イマーシブヘッドセットでサポートされています。 | 説明 |
---|---|---|---|
AppCaptures | ✔️ | ✔️ | アプリキャプチャフォルダを取得します。 |
CameraRoll | ✔️ | ✔️ | カメラロールフォルダーを取得します。 |
DocumentsLibrary | ✔️ | ✔️ | ドキュメントライブラリを取得します。 ドキュメントライブラリは一般的な使用を目的としたものではありません。 |
MusicLibrary | ✔️ | ✔️ | 音楽ライブラリを取得します。 |
Objects3D | ✔️ | ✔️ | オブジェクト3Dフォルダーを取得します。 |
PicturesLibrary | ✔️ | ✔️ | ピクチャライブラリを取得します。 |
プレイリスト | ✔️ | ✔️ | 再生リストフォルダーを取得します。 |
SavedPictures | ✔️ | ✔️ | 保存済みのピクチャフォルダーを取得します。 |
VideosLibrary | ✔️ | ✔️ | ビデオライブラリを取得します。 |
HomeGroup | ✔️ | HomeGroupフォルダーを取得します。 | |
MediaServerDevices | ✔️ | メディアサーバー(Digital Living Network Alliance(DLNA))デバイスのフォルダーを取得します。 | |
RecordedCalls | ✔️ | 録音された呼び出しフォルダーを取得します。 | |
RemovableDevices | ✔️ | リムーバブルデバイスフォルダーを取得します。 |
アプリ パッケージ
Windows 10では、オペレーティングシステムをターゲットに設定する必要がなくなり、アプリを1つ以上のデバイスファミリにターゲットに設定します。 デバイス ファミリは、デバイス ファミリ内のデバイス間で期待できる API、システム特性、動作を識別します。 Microsoft Storeからアプリをインストールできるデバイスのセットも決定します。
- デスクトップヘッドセットとHoloLensの両方をターゲットに設定するには、Windows.Universalデバイスファミリをアプリのターゲットに設定します。
- デスクトップヘッドセットのみをターゲットに設定するには、Windows.Desktopデバイスファミリをアプリのターゲットに設定します。
- HoloLensのみをターゲットに設定するには、Windows.Holographicデバイスファミリをアプリのターゲットに設定します。