Windows Mixed Reality 用に 2D UWP アプリを更新する

Windows Mixed Reality を使用すると、ユーザーはホログラムを見て、物理的およびデジタル的世界でそれらが自分の周囲にあると感じることができます。 その中心となるのは、イマーシブ ヘッドセット アクセサリを取り付ける HoloLens やデスクトップ PC であり、どちらも Windows 10 デバイスです。 ストア内のほぼすべてのユニバーサル Windows プラットフォーム (UWP) アプリを 2D アプリとして実行できます。

Mixed Reality 用の 2D UWP アプリを作成する

Mixed Reality ヘッドセットに 2D アプリを取り込むための最初の手順は、アプリをデスクトップ モニターで標準の 2D アプリとして実行することです。

新しい 2D UWP アプリをビルドする

Mixed Reality 用の新しい 2D アプリをビルドするには、標準の 2D ユニバーサル Windows プラットフォーム (UWP) アプリをビルドします。 そのアプリを Mixed Reality でスレートとして実行する場合は、他の変更は必要ありません。

2D UWP アプリのビルドを開始するには、「最初のアプリケーションを作成」という記事を参照してください。

既存の 2D ストア アプリを UWP に取り込む

ストアに 2D Windows アプリが既にある場合は、Windows 10 ユニバーサル Windows プラットフォーム (UWP) がターゲットになっていることを確認してください。 以下に、現在のストア アプリで考えられるすべての開始点を示します。

開始ポイント AppX マニフェスト プラットフォーム ターゲット これをユニバーサルにする方法
Windows Phone (Silverlight) Silverlight アプリ マニフェスト WinRT に移行する
Windows Phone 8.1 ユニバーサル プラットフォーム ターゲットを含まない 8.1 AppX マニフェスト アプリをユニバーサル Windows プラットフォームに移行する
Windows ストア 8 プラットフォーム ターゲットを含まない 8 AppX マニフェスト アプリをユニバーサル Windows プラットフォームに移行する
Windows ストア 8.1 ユニバーサル プラットフォーム ターゲットを含まない 8.1 AppX マニフェスト アプリをユニバーサル Windows プラットフォームに移行する

現在、PC 上の Win32 アプリとして構築された 2D Unity アプリ、Mac & Linux スタンドアロン ビルド ターゲットがある場合は、Mixed Reality のユニバーサル Windows プラットフォーム ビルド ターゲットに切り替えます。

以下の Windows.Holographic デバイス ファミリを使用して、アプリを HoloLens 専用に制限できるようにする方法について説明します。

Windows Mixed Reality イマーシブ ヘッドセットで 2D アプリを実行する

2D アプリをデスクトップ マシンにデプロイし、モニターで試したら、イマーシブ デスクトップ ヘッドセットで試す準備ができたことになります。

Mixed Reality ヘッドセットのスタート メニューに移動し、そこからアプリを起動します。 デスクトップ シェルとホログラフィック シェルは、どちらも同じ UWP アプリのセットを共有します。そのため、Visual Studio からデプロイした後は、アプリが既にあるはずです。

イマーシブ ヘッドセットと HoloLens の両方をターゲットにする

おめでとうございます。 これで、アプリが Windows 10 ユニバーサル Windows プラットフォーム (UWP) を使用するようになりました。

現在のデスクトップ、モバイル、Xbox、Windows Mixed Reality イマーシブ ヘッドセット、HoloLens などの Windows デバイスと、将来の Windows デバイスで、アプリを実行できるようになりました。 ただし、実際にこれらすべてのデバイスをターゲットにするには、アプリが Windows. Universal デバイス ファミリをターゲットにしていることを確認する必要があります。

デバイス ファミリを Windows.Universal に変更する

ここで、AppX マニフェストに移動して、Windows 10 UWP アプリを HoloLens で実行できることを確認しましょう。

  • Visual Studio でアプリのソリューション ファイルを開き、アプリ パッケージ マニフェストに移動します
  • ソリューションの Package.appxmanifest ファイルを右クリックし、[コードの表示] に移動します
    ソリューション エクスプローラーでの package.appxmanifest
  • ターゲット プラットフォームが Windows. Universal になっていることを dependencies セクションで確認します
    <Dependencies>
      <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.10240.0" MaxVersionTested="10.0.10586.0" />
    </Dependencies>
    
  • 保存します。

開発環境で Visual Studio を使用していない場合は、任意のテキスト エディターで AppXManifest.xml を開き、Windows.UniversalTargetDeviceFamily をターゲットにしていることを確認できます。

HoloLens エミュレーターで実行する

これで、UWP アプリが "Windows.Universal" をターゲットにするようになったので、アプリをビルドし、HoloLens エミュレーターで実行しましょう。

  • HoloLens エミュレーターのインストールが済んでいることを確認します。

  • Visual Studio で、アプリに [x86] ビルド構成を選択します

    Visual Studio での x86 ビルド構成

  • [配置ターゲット] ドロップダウン メニューで [HoloLens エミュレーター] を選択します

    デプロイ ターゲットの一覧での HoloLens エミュレーター

  • [デバッグ] > [デバッグの開始] を選択して、アプリをデプロイし、デバッグを開始します。

  • エミュレーターが起動され、アプリが実行されます。

  • キーボード、マウス、Xbox コントローラーを使用して、アプリを世界内に配置し、起動します。

    UWP サンプルが読み込まれた HoloLens エミュレーター

次の手順

この時点で、次の 2 つのいずれかが発生する場合があります。

  1. アプリがエミュレーターに配置された後、スプラッシュが表示され、実行が開始されます。 すごいですね。
  2. または、2D ホログラムの読み込みアニメーションが表示された後、読み込みが停止し、アプリのスプラッシュ画面だけが表示されます。 これは、何かの問題が発生し、Mixed Reality でアプリを動作させる方法を理解するにはさらに調査が必要であることを意味します。

デバッグを行い、HoloLens で UWP アプリの起動が停止する問題の根本原因を突き止める必要があります。

デバッガーで UWP アプリを実行する

これらの手順では、Visual Studio デバッガーを使用して UWP アプリをデバッグします。

  • Visual Studio で、まだソリューションを開いていない場合は、ソリューションを開きます。 ターゲットを [HoloLens エミュレーター] に変更し、ビルド構成を [x86] に変更します。
  • [デバッグ] > [デバッグの開始] を選択して、アプリをデプロイし、デバッグを開始します。
  • マウス、キーボード、または Xbox コントローラーを使用して、アプリを世界内に配置します。
  • ここで、Visual Studio がアプリのコード内のどこかで中断されるはずです。
    • 処理されないエラーのために、アプリが直ちにクラッシュしたり中断されてデバッガーが起動されたりしない場合は、アプリのコア機能のテスト パスを実行して、すべてが実行され、機能することを確認します。 次の図のようなエラーが表示される場合があります (処理されている内部例外)。 アプリのエクスペリエンスに影響を与える内部エラーを見逃さないようにするには、自動テストと単体テストを実行して、すべてが想定どおりに動作することを確認します。

システム例外を表示している、UWP サンプルが読み込まれた HoloLens エミュレーター

UI を更新する

これで、UWP アプリがイマーシブ ヘッドセットおよび HoloLens で 2D ホログラムとして実行されるようになりました。次に、美しく表示されることを確認します。 次の点を考慮することをお勧めします。

  • Windows Mixed Reality では、すべての 2D アプリが、853 x 480 有効ピクセルに対応する固定解像度と DPI で実行されます。 このスケールでデザインを洗練させる必要があるかどうかを検討し、HoloLens やイマーシブ ヘッドセットでのエクスペリエンスを向上させるには、以下のデザイン ガイダンスを参照してください。
  • Windows Mixed Reality では、2D ライブ タイルはサポートされていません。 コア機能でライブ タイルに情報が表示される場合は、その情報をアプリに戻すことを検討するか、3D アプリ起動ツールを探します。

2D アプリ ビューの解像度とスケール ファクター

レスポンシブ デザインから

Windows 10 では、すべてのビジュアル デザインが実際の画面ピクセルから有効ピクセルに移動されます。 つまり、開発者が有効ピクセルに関する Windows 10 ヒューマン インターフェイス ガイドラインに従って UI を設計すると、Windows スケーリングによってこれらの有効ピクセルがデバイス、解像度、DPI などにわたって使いやすい適切なサイズになることが保証されます。 詳細については、この MSDN の記事と、BUILD プレゼンテーションを参照してください。

世界内でアプリをさまざまな距離に配置する独自の機能がある場合でも、視線入力やジェスチャでの最適な読みやすさや操作性を実現するには、テレビのような表示距離をお勧めします。 そのため、Mixed Reality ホームの仮想スレートでは、フラット UWP ビューが次のように表示されます。

1280 x 720、150%DPI (853 x 480 有効ピクセル)

この解像度には、次のようないくつかの利点があります。

  • この有効ピクセル レイアウトは、タブレットや小さいデスクトップと同じくらいの情報密度になります。
  • これは、Xbox One で実行されている UWP アプリの固定 DPI と有効ピクセルと一致し、デバイス間のシームレスなエクスペリエンスが可能になります。
  • このサイズは、世界内でのアプリの操作距離の範囲全体にわたるスケーリングで適切だと思われます。

2D アプリのビュー インターフェイスの設計に関するベスト プラクティス

推奨事項:

  • スタイル、フォント サイズ、およびボタン サイズについては、Windows 10 ヒューマン インターフェイス ガイドライン (HIG) に従ってください。 HoloLens では、アプリが互換性のあるアプリ パターン、読み取り可能なテキスト サイズ、および適切なヒット ターゲット サイズになるような処理が行われます。
  • HoloLens の独自の解像度と DPI で最適な表示になるように、UI がレスポンシブ デザイン用のベスト プラクティスに従っていることを確認してください。
  • Windows の "明るい" 色のテーマに関する推奨事項を使用します。

禁止事項:

  • Mixed Reality では、ユーザーがヘッドセット内でもヘッドセット外でも使い慣れたエクスペリエンスを使用できるように、UI を大幅に変更しないでください。

アプリ モデルを理解する

Mixed Reality のアプリ モデルは、Mixed Reality ホームを使用するように設計されています。Mixed Reality ホームでは、多くのアプリが共存します。 これは、多くの 2D アプリを同時に実行するデスクトップに Mixed Reality で相当するものと考えることができます。 アプリのライフ サイクル、タイル、およびその他の主要な機能に、これが影響します。

アプリ バーと [戻る] ボタン

2D ビューは、コンテンツの上にあるアプリ バーで装飾されます。 アプリ バーには、アプリ固有のパーソナル化として、次の 2 つがあります。

タイトル: アプリ インスタンスに関連付けられているタイルの displayname を表示します

[戻る] ボタン: これを押すと、BackRequested イベントが発生します。 [戻る] ボタンが表示されるかどうかは、SystemNavigationManager.AppViewBackButtonVisibility によって制御されます。

2D アプリ ビューのアプリ バー UI
2D アプリ ビューのアプリ バー UI

2D アプリのデザインをテストする

アプリをテストして、テキストが読み取れること、ボタンがターゲット可能であること、およびアプリ全体が正しく表示されることを確認することが重要です。 デスクトップ ヘッドセット、HoloLens、エミュレーター、またはタッチ デバイスで、解像度の設定を 1280 x 720 @150% にしてテストできます。

新しい入力の可能性

HoloLens では、高度な深度センサーを使用して、世界とユーザーが見られます。 これにより、ブルームエアタップなどの高度なハンド ジェスチャが可能になります。 強力なマイクによって、音声エクスペリエンスも実現されます。

デスクトップ ヘッドセットを使用すると、ユーザーは、モーション コントローラーによってアプリでポイントし、アクションを実行できます。 ゲームパッドも使用して、視線入力でオブジェクトをターゲットにすることができます。

こうした UWP アプリの複雑さは、すべてが Windows によって処理されます。視線入力、ジェスチャ、音声、およびモーション コントローラーの入力は、ポインター イベントに変換され、入力メカニズムが抽象化されます。 たとえば、ユーザーが手でエアタップを行った場合や、モーション コントローラーで選択トリガーを引いた場合でも、2D アプリケーションは入力がどこから来たかを知る必要がありません。タッチスクリーンであるかのように、2D のタッチ プレスが認識されるだけです。

以下に、UWP アプリを HoloLens に持ち込むときに入力について理解しておく必要がある高レベルの概念およびシナリオを示します。

  • 視線入力は、ホバー イベントに変換されます。このイベントは、アプリを見回しただけで、予期しないメニュー、ポップアップ、またはその他のユーザー インターフェイス要素のポップアップ表示をトリガーする場合があります。
  • 視線入力は、マウス入力ほど正確ではありません。 タッチ対応のモバイル アプリケーションと同様に、HoloLens にも適切にサイズ設定されたヒット ターゲットを使用します。 アプリの端付近にある小さな要素は、特に操作が困難です。
  • ユーザーは、入力モードをスクロールからドラッグ、2 本指でのパンへと切り替える必要があります。 アプリがタッチ入力用に設計されている場合は、主要な機能が 2 本指でのパンに固定されていないことを確認してください。 そうなっている場合は、2 本指でのパンを開始できるボタンのような代替入力メカニズムの使用を検討してください。 たとえば、地図アプリでは 2 本指のパンでズームできますが、同じズーム操作を 1 回のクリックでシミュレートするためのプラス、マイナス、および回転ボタンがあります。

音声入力は、Mixed Reality エクスペリエンスの重要な部分です。 ヘッドセットの使用時に Cortana を強化する、Windows 10 のすべての音声 API が有効になっています。

ユニバーサル アプリを公開および管理する

アプリが動作するようになったら、アプリをパッケージ化して、Microsoft Store に提出します。

関連項目