ホログラフィックエミュレーションを使用すると、変更の影響を確認するためにその都度ゲームをビルドして実行するのではなく、Microsoft HoloLens プロジェクトを Unity エディターで直接、試作、デバッグ、実行することができます。 これは、Unity でホログラフィックのアプリケーションを開発する際の反復の時間を大幅に短縮します。
ホログラフィックエミュレーションは 2 つのモードがあります。
Remote to Device: Windows Holographic デバイスへの接続を使用すると、実際はアプリケーションはホストマシンの Unity エディターで実行されているのに、まるで、そのデバイスにデプロイされているかのように動作します。詳細は、下の Remote to Device を参照してください。
Simulate in Editor: アプリケーションは、現実の Windows のホログラフィックデバイスに接続のない、Unity エディター上に直接作られたホログラフィックデバイスのシミュレーションで実行されます。 詳細は、後述の Simulate in Editor を参照してください。
ホログラフィックエミュレーションは Windows 10 (Anniversary Update を伴う) を使用するすべてのマシンでサポートされています。
シミュレーションを遠隔操作、または、シミュレーション可能にするには、Unity エディターを開き、 Window > __Holographic Emulation__の順に選択します。
これにより、 Emulation Mode ドロップダウンメニューを持つ Holographic Emulation のコントロールウィンドウを開きます。開発中、このウィンドウを表示したままにします。アプリケーションを起動するときにその設定にアクセスする必要があるからです。
Emulation Mode はデフォルトでは None に設定されています。つまり、アプリケーションは Holographic API の機能なしでエディターで実行されるという意味です。 このモードを有効にしてホログラフィックエミュレーションを開始するには、 Emulation Mode を Remote to Device または Simulate in Editor に変更します。
このモードを使用するには、Unity エディターを実行しているマシン (以下「ホストマシン」) を Windows Holographic デバイス (以下 「デバイス」) へ接続します (詳細は下の デバイスの接続 を参照)。実際は、ホストマシンの Unity エディターで実行されているのに、まるで、デバイスにデプロイされているかのように動作します。
Unity エディターは、接続したデバイスの空間センサーのデータとヘッドトラッキングにアクセスできます。Unity エディターのゲームビューでは、デバイスを装着している人が現実世界で見えているものは表示しませんが、デバイス上でレンダリングされているものは表示します (上の ‘ホログラフィックエミュレーション: Unity エディターをホログラフィックのアプリケーションとして実行できます’ の画像内の例を参照)。
Remote to Device は、パフォーマンスを検証するのには役立ちません。なぜなら、アプリケーションはデバイス自体ではなく、ホストマシン上で実行されているからです。しかし、この方法は簡単に開発をテストするのに役立ちます。
Unity エディターでこのモードを有効にするには、Emulation Mode を Remote to Device に設定します。インターフェースが変更され、利用可能な追加オプションを表示します。
Windows ストア から入手可能な Remoting Player をインストールして実行します。起動すると、Remoting Player は待機状態になり、デバイスの IP アドレスを Holographic Remoting Player 画面に表示します。接続診断を有効にする方法などの Remoting Player に関する情報は、Microsoft Windows Dev Center を参照してください。
Unity エディターの Holographic Emulation コントロールウィンドウで、デバイスの IP アドレスを Remote Machine フィールドに入力します。そのフィールドの右側のドロップダウンで最近使用した IP アドレスを選ぶことができます。
Connect ボタンを押します。Connection Status が緑になり、接続メッセージが表示されます。
Unity エディターで Play をクリックして、デバイスをリモートで実行します。エディターでアプリケーションを実行するのと同じ方法で、停止、ゲームオブジェクトの検査、デバッグができます。しかし、ビデオ、オーディオ、デバイス入力は、ホストマシンとデバイス間でネットワークを介してやり取りされます。
Speech (PhraseRecognizer) は Remote to Device 経由ではサポートされません。代わりに、Unity エディターを実行しているホストマシンから音声を傍受します。
Remote to Device を実行する間、ホストマシン上のすべてのオーディオは、アプリケーション外部からのオーディオを含め、デバイスにリダイレクトされます。
このモードを使用すると、アプリケーションは、現実の Windows のホログラフィックデバイスに接続のない、Unity エディター上に直接設定されたホログラフィックデバイスのシミュレーションで実行されます。これは、デバイスへのアクセス無しに、Windows Holographic の開発をおこなうときに役立ちます。エミュレーターに頼らずに、デバイス上でテストする必要があることに気を付けてください。
このモードを有効にするには、 Emulation Mode を Simulate in Editor に設定し、 Play ボタンを押します。アプリケーションは、Unity エディターに組み込まれたエミュレーターで起動します。
Holographic 制御パネルで、Room ドロップダウンーを使用して 5 つの仮想ルーム (XDE HoloLens エミュレーターで提供されるものと同じもの) の1つを選択し、 Gesture Hand ドロップダウンメニューを使用して、ジェスチャを実行するのに左右どちらの仮想ハンドを使うかを指定します。
Simulate in Editor モードでは、仮想の人間のプレイヤーを制御するために、ゲームコントローラーを使用する必用があります (例えば Xbox 360 や Xbox One コントローラー)。コントローラーがない場合でも、シミュレーションを行えますが、仮想の人間のプレイヤーをあちこちに移動することはできません。
制御 | 説明 |
---|---|
Left stick | 上下に動かすと、仮想の人間のプレイヤーを前方と後方に動かします。 左右に動かすと、プレイヤーを左と右に動かします。 |
Right stick | 上下に動かすと、仮想の人間のプレイヤーの頭を上と下に向けます。 左右に動かすと、プレイヤーを左と右に向かせます。 |
D-pad | 仮想の人間のプレイヤーの頭を上下左右に動かします。 |
Left and right trigger buttons; A button | 仮想のハンドでタップジェスチャーを実行します。 |
Y button | 仮想の人間のプレイヤーの頭を元の位置に戻します。 |
ゲームコントローラーを使用するには、Unity エディターのフォーカスはゲームビュー上になければなりません。何かを UI で行った後に、フォーカスをゲームビューウィンドウに戻すには、ゲームビューウィンドウをクリックします。
ほとんどのゲームコントローラーは、Windows と Unity によって認識される限り、Simulate in Editor モードで動作します。ただし、サポートされていないコントローラーとは互換性がない場合があります。
Simulate in Editor モードで PhotoCapture を使用できますが、デバイスが存在しないため、独自のローカルカメラ (設定されたウェブカメラなど) でこれを行う必要があります。つまり、 TryGetProjectionMatrix
または TryGetCameraToWorldMatrix
を使用して行列を取得することはできません。なぜなら、通常のローカルカメラは現実世界との関連でその場所を計算できないからです。