HoloLens (第 1 世代) の基本 100: Unity の概要
重要
Mixed Reality Academy のチュートリアルは、HoloLens (第 1 世代)、Unity 2017、Mixed Reality イマーシブ ヘッドセットを考慮して設計されています。 そのため、それらのデバイスの開発に関するガイダンスを引き続き探している開発者のために、これらのチュートリアルをそのまま残しておくことが重要だと考えています。 これらのチュートリアルは、HoloLens 2 に使用される最新のツールセットや対話式操作を反映して更新されることは "ありません"。また、最新バージョンの Unity には対応していない可能性があります。 これらは、サポートされているデバイス上で継続して動作するように、保守されます。 HoloLens 2 向けには、新しいチュートリアル シリーズが投稿されています。
このチュートリアルでは、Unity でビルドされる基本的な Mixed Reality アプリの作成手順について説明します。
デバイス サポート
コース | HoloLens | イマーシブ ヘッドセット |
---|---|---|
MR の基本 100:Unity の概要 | ✔️ | ✔️ |
前提条件
- 正しいツールがインストールされている構成済みの Windows 10 PC。
第 1 章 - 新しいプロジェクトを作成する
Unity でアプリをビルドするには、最初にプロジェクトを作成する必要があります。 このプロジェクトはいくつかのフォルダーで構成されます。最も重要なのは、資産フォルダーです。 このフォルダーには、Maya、Max Cinema 4D、Photoshop などのデジタル コンテンツ作成ツールからインポートしたすべての資産、Visual Studio または任意のコード エディターで作成したすべてのコード、およびエディターでシーン、アニメーション、その他の Unity 資産タイプを作成したときに Unity によって作成される多くのコンテンツ ファイルが格納されます。
UWP アプリをビルドしてデプロイするために、Unity ではプロジェクトを Visual Studio ソリューションとしてエクスポートできます。このソリューションには、必要なすべての資産ファイルとコード ファイルが含まれます。
- Unity の起動
- [新規] を選択します。
- プロジェクト名を入力します (例: "MixedRealityIntroduction")
- プロジェクトを保存する場所を入力します
- 3D の切り替えが選択されていることを確認します
- [Create project] (プロジェクトの作成) を選択します。
おめでとうございます。Mixed Reality のカスタマイズを始める準備ができました。
第 2 章 - カメラをセットアップする
Unity のメイン カメラは、ヘッド トラッキングとステレオスコピック レンダリングを処理します。 メイン カメラを Mixed Reality と共に使用するには、いくつかの変更が必要です。
- [ファイル] > [新しいシーン] を選択します
まずは、ユーザーの開始位置を (X: 0、Y: 0、Z: 0) に想定すると、アプリのレイアウトが簡単になります。 メイン カメラはユーザーの頭の移動を追跡するため、メイン カメラの開始位置を設定することで、ユーザーの開始位置を設定できます。
- [階層] パネルで [メイン カメラ] を選択します
- [インスペクター] パネルで [変換] コンポーネントを見つけ、[位置] を (X: 0、Y: 1、Z: -10) から (X: 0、Y: 0、Z: 0) に変更します。
次に、カメラの既定の背景については、いくつかの点を考慮する必要があります。
HoloLens アプリケーションの場合、スカイボックス テクスチャではなく、カメラがレンダリングするすべての要素の背後に実世界が表示されます。
- [階層] パネルで [Main Camera] (メイン カメラ) を選択したままで、[インスペクター] パネルの [カメラ] コンポーネントを見つけて、[フラグのクリア] ドロップダウンを [スカイボックス] から [純色] に変更します。
- [背景] カラー ピッカーを選択し、[RGBA] の値を (0、0、0、0) に変更します。
イマーシブ ヘッドセットを対象とする Mixed Reality アプリケーションの場合は、Unity が提供する既定のスカイボックス テクスチャを使用できます。
- [階層] パネルで [Main Camera] (メイン カメラ) を選択したままで、[インスペクター] パネルの [カメラ] コンポーネントを見つけて、[フラグのクリア] ドロップダウンを [スカイボックス] のままにします。
3 番目に、Unity でのクリップ平面周辺を考慮して、ユーザーがオブジェクトに近づいたり、オブジェクトがユーザーに近づいたりしたときに、ユーザーの目に対して近すぎない位置にオブジェクトがレンダリングされるようにします。
HoloLens アプリケーションでは、クリップ平面周辺を HoloLens で推奨される 0.85 メートルに設定できます。
- [階層] パネルで [Main Camera] (メイン カメラ) を選択したままで、[インスペクター] パネルの [カメラ] コンポーネントを見つけて、[Near Clip Plane] (クリップ平面周辺) フィールドを既定の 0.3 から HoloLens 推奨の 0.85 に変更します。
イマーシブ ヘッドセットを対象とする Mixed Reality アプリケーションでは、Unity が提供する既定の設定を使用できます。
- [階層] パネルで [Main Camera] (メイン カメラ) を選択したままで、[インスペクター] パネルの [カメラ] コンポーネントを見つけて、[Near Clip Plane] (クリップ平面周辺) フィールドを既定の 0.3 のままにします。
最後に、ここまでの作業を保存します。 シーンの変更を保存するには、[ファイル] > [Save Scene As] (シーンを名前を付けて保存) を選択し、シーンに Main という名前を付け、[保存] を選択します。
第 3 章 - プロジェクトの設定を行う
この章では、Unity プロジェクトの設定をいくつか行います。これらは、Windows Holographic SDK を対象とした開発に役立ちます。 また、アプリケーションの品質設定をいくつか行います。 最後に、ビルド対象がユニバーサル Windows プラットフォームに設定されていることを確認します。
Unity のパフォーマンスと品質の設定
HoloLens の Unity 品質設定
HoloLens で高フレームレートを維持することは非常に重要であるため、パフォーマンスが最速となるように品質設定を調整する必要があります。 パフォーマンスについて詳しくは、「Unity のパフォーマンスに関する推奨事項」を参照してください。
- [編集] > [プロジェクト設定] > [品質] を選択します
- ユニバーサル Windows プラットフォーム ロゴの下にあるドロップダウンを選択し、[非常に低い] を選択します。 [ユニバーサル Windows プラットフォーム] 列のボックスと [Very Low](非常に低い) 行が緑色の場合、設定が適切に適用されていることがわかります。
オクルージョン表示を対象とする Mixed Reality アプリケーションでは、品質設定を既定値のままにすることができます。
Windows 10 SDK を対象とする
Windows Holographic SDK を対象とする
エクスポートするアプリでは 2D ビューではなく、イマーシブ ビューを作成する必要があることを Unity に認識させる必要があります。 これを行うには、Windows 10 SDK を対象として Unity で仮想現実のサポートを有効にします。
- [編集] > [プロジェクト設定] > [プレイヤー] に移動します。
- [プレーヤー設定] の [インスペクター] パネルで、[ユニバーサル Windows プラットフォーム] アイコンを選択します。
- [XR Settings](XR 設定) グループを展開します。
- [Rendering](レンダリング) セクションで、 [Virtual Reality Supported](バーチャル リアリティ サポート) チェック ボックスをオンにして、新しいバーチャル リアリティ SDK の一覧を追加します。
- [Windows Mixed Reality] が一覧に表示されていることを確認します。 そうでない場合は、一覧の+下部にあるボタンを選択し、[Windows Mixed Reality] を選択します。
Note
[ユニバーサル Windows プラットフォーム] アイコンが表示されない場合は、インストール時に [Universal Windows Platform Build Support] (ユニバーサル Windows プラットフォーム ビルド サポート) を選択したことを再確認してください。 していない場合は、適切な Windows インストールを使用して、Unity を再インストールする必要があります。
これで、すべてのプロジェクト設定が適用されました。 次に、ホログラムを追加してみましょう。
第 4 章 - キューブを作成する
Unity プロジェクトでキューブを作成する方法は、Unity で他のオブジェクトを作成する方法と同じです。 Unity の座標系は実世界にマップされているため、ユーザーの前にキューブを配置するのは簡単です。Unity での 1 メートルは、実世界の約 1 メートルになります。
- [階層] パネルの左上隅で [作成] ドロップダウンを選択し、[3D オブジェクト] > [キューブ] を選択します。
- [階層] パネルで、新しく作成したキューブを選択します
- [インスペクター] で [変換] コンポーネントを見つけて、[位置] を (X: 0、Y: 0、Z: 2) に変更します。 これにより、ユーザーの開始位置の 2 メートル前にキューブが配置されます。
- [変換] コンポーネントで、[回転] を (X: 45、Y: 45、Z: 45) に変更し、[スケール] を (X: 0.25、Y: 0.25、Z: 0.25) に変更します。 これにより、キューブが 0.25 メートルにスケーリングされます。
- シーンの変更を保存するために、[ファイル] > [Save Scene] (シーンの保存) を選択します。
第 5 章 - Unity エディターからデバイスを確認する
キューブを作成したので、デバイスのクイック チェックを実行します。 これは、Unity エディター内から直接行うことができます。
初期セットアップ
- 開発用 PC の Unity で、[ファイル] > [ビルド設定] ウィンドウを開きます。
- [プラットフォーム] を [ユニバーサル Windows プラットフォーム] に変更し、[プラットフォームの切り替え] をクリックします。
HoloLens で Unity リモート処理を使用する場合
- Windows ストアから Holographic Remoting Player を入手し、HoloLens にインストールして実行します。 デバイスでアプリケーションを起動すると、待機状態に入り、デバイスの IP アドレスが表示されます。 この IP をメモします。
- [Window] > [XR] > [Holographic Emulation] (ホログラフィック エミュレーション) を開きます。
- [Emulation Mode] (エミュレーション モード) を [なし] から [Remote to Device] (リモートからデバイス) に変更します。
- [リモート コンピューター] に、先ほどメモした HoloLens の IP アドレスを入力します。
- [接続] をクリックします。
- [接続状態] が緑色の [接続済み] に変わることを確認します。
- これで、Unity エディターで [再生] がクリックできるようになります。
デバイスとエディターでキューブを表示できます。 エディターで、アプリを実行する場合と同様に、オブジェクトを一時停止、検査すること、デバッグを行うことできます。これは、ネットワークを介してホスト コンピューターとデバイス間で送受信される動画、オーディオ、デバイス入力を別にすれば、基本的には同じ処理が行われるためです。
Mixed Reality でサポートされているその他のヘッドセットの場合
- USB ケーブルと、HDMI または DisplayPort ケーブルを使用して、ヘッドセットを開発用 PC に接続します。
- Mixed Reality ポータルを起動し、最初の実行エクスペリエンスが完了したことを確認します。
- これで、Unity から、[再生] ボタンを押すことができます。
Mixed Reality ヘッドセットとエディターで、キューブのレンダリングを確認できます。
第 6 章 - Visual Studio からビルドを行い、デバイスにデプロイする
プロジェクトを Visual Studio にコンパイルして、対象デバイスにデプロイする準備ができました。
Visual Studio ソリューションへのエクスポート
- [ファイル] > [ビルド設定] ウィンドウを開きます。
- [開いているシーンを追加] をクリックしてシーンを追加します。
- [プラットフォーム] を [ユニバーサル Windows プラットフォーム] に変更し、[プラットフォームの切り替え] をクリックします。
- [ユニバーサル Windows プラットフォーム] 設定で、[SDK] が [Universal 10] (ユニバーサル 10) に設定されていることを確認します。
- 対象デバイスでは、オクルージョン表示を [Any Device] (任意のデバイス) のままにするか、[HoloLens] に切り替えます。
- [UWP Build Type] (UWP ビルドの種類) を [D3D] にする必要があります。
- [UWP SDK] は [Latest installed] (最新のインストール) のままにします。
- [ビルド] をクリックします。
- エクスプローラーで、[新しいフォルダー] をクリックし、フォルダーに "App" という名前を付けます。
- [App] フォルダーが選択されている状態で、[フォルダーの選択] ボタンをクリックします。
- Unity でのビルドが完了すると、Windows ファイル エクスプローラー ウィンドウが表示されます。
- ファイル エクスプローラーで [App] フォルダーを開きます。
- 生成された Visual Studio ソリューション (この例では MixedRealityIntroduction.sln) を開きます。
Visual Studio ソリューションのコンパイル
最後に、エクスポートされた Visual Studio ソリューションをコンパイルし、デプロイし、デバイスで実行してみます。
- Visual Studio の上部ツールバーを使用して、ターゲットを [デバッグ] から [リリース] に変更し、[ARM] から [X86] に変更します。
デバイスとエミュレーターでは、デプロイ手順が異なります。 セットアップに応じて適切な手順に従ってください。
Wi-Fi 経由で Mixed Reality デバイスにデプロイ
- [ローカル マシン] ボタンの横にある矢印をクリックし、デプロイ対象を [リモート コンピューター] に変更します。
- Mixed Reality デバイスの IP アドレスを入力し、その他のデバイスの HoloLens と Windows について、[認証モード] を [ユニバーサル (暗号化されていないプロトコル)] に変更します。
- [デバッグ] > [デバッグなしで開始] をクリックします。
HoloLens の場合、デバイスへの最初のデプロイ時に Visual Studio を使用してペアリングを行う必要があります。
USB 経由で Mixed Reality デバイスにデプロイ
USB ケーブルを介してデバイスが接続されていることを確認します。
- HoloLens の場合、[ローカル マシン] ボタンの横にある矢印をクリックし、デプロイ対象を [デバイス] に変更します。
- PC に接続されているオクルージョン デバイスを対象とする場合は、設定を [ローカル マシン] のままにします。 Mixed Reality ポータルが実行中であることを確認します。
- [デバッグ] > [デバッグなしで開始] をクリックします。
エミュレーターにデプロイ
- [デバイス] ボタンの横にある矢印をクリックし、ドロップダウンから [HoloLens エミュレーター] を選択します。
- [デバッグ] > [デバッグなしで開始] をクリックします。
アプリを試す
アプリがデプロイされたので、キューブの周りを移動して、目の前の世界にそのキューブがあることを確認します。