戯言日記

ホロレンジャーの戦いの記録

Mixed Reality 250 翻訳 概要から第1章まで

Mixed Reality 250

UWPの持つ柔軟性により、複数のデバイスにまたがったアプリケーションが簡単に作成できます。この柔軟性により、各デバイスの持つ強みを活かした体験を創ることができます。このチュートリアルでは、HoloLensとWindows Mixed Reality Immersive Headsetsの両方で実行される基本的な共有体験について説明します。このコンテンツは、もともとワシントン州シアトルで開催されたMicrosoft Build 2017で配信されました。

このチュートリアルで行うこと

UNETを使用してネットワークを設定する

  • MRデバイス間でホログラムを共有する
  • MRデバイスごとに、異なるアプリケーションのビューを確立する
  • HoloLensユーザーが簡単なパズルを通してImmersive Headset ユーザーを導く共有体験を創ります

前提条件

  • HoloLensデバイスとImmersive Headset
  • UDPが利用可能なネットワーク

 (Unityのセキュリティ設定も変更する必要があります。)
dhero.hatenablog.com

プロジェクトファイル

環境構築

  • Window 10 Creators Update

https://www.microsoft.com/software-download/windows10
f:id:haikage1755:20170719015414p:plain

http://dev.windows.com/downloads
f:id:haikage1755:20170719020356p:plain

https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewSDK
f:id:haikage1755:20170719032920p:plain

  • Unity Mixed Reality Technical Preview (推奨はUnity2017.2 beta11以降です。それ以下のバージョンではHoloLens用の環境とImmersive用のUnity環境が異なります。)

https://unity3d.com/jp/unity/beta
f:id:haikage1755:20170719040106p:plain

  • Holographic Template (DirectXでの開発者用) ※今回は必要ありません

https://go.microsoft.com/fwlink/?linkid=852626
f:id:haikage1755:20170719083248p:plain

  • Graphics driversの更新

https://developer.microsoft.com/en-us/windows/mixed-reality/updating_your_gpu_driver
f:id:haikage1755:20170719083656p:plain

第一章 Holo World

youtu.be

目標

シンプルなプロジェクトで開発環境の準備ができているのかを確認する

ビルドするもの

HoloLensまたはImmersiveデバイスのいずれかにHologramを表示するアプリケーション

ステップ

  • Unityを開く
    • 開くを選択
    • プロジェクトファイルを展開した場所に移動する
    • 「フォルダの選択」をクリック
    • Unityが最初にプロジェクトを処理するには少々時間がかかります

f:id:haikage1755:20170719084316p:plain

  • UnityでMixed Realityが有効になっているかを確認する
    • ビルド設定ダイアログ(Ctrl + Shift + Bまたはファイル>ビルド設定...)を開きます。
    • Windows Storeを選択し、Switch Platformをクリックします

f:id:haikage1755:20170719084917p:plain

  • プレーヤーの設定を選択します。
  • 右のインスペクタで、[その他の設定]を展開します
  • 右のインスペクタで、[XR Settings]を展開します
  • Virtual Realityのボックスをチェックしてください
  • Windows Mixed RealityはVirtual Reality SDKでなければなりません

f:id:haikage1755:20170719085319p:plain

  • シーンを作成する
    • HierarchyでMain Cameraを右クリックし、Deleteを選択します。
    • HoloToolkit>Input>PrefabsからMixedRealityCameraParentをHierarchyにドラッグ

f:id:haikage1755:20170719085501p:plain

  • Hologramsをシーンに追加する
    • AppPrefabsのSkyboxをScene Viewにドラッグ
    • AppPrefabsのManagersをHierarchyにドラッグ
    • AppPrefabsのIslandをHierarchyにドラッグ

f:id:haikage1755:20170719090307p:plain

  • SaveとBuild
    • Save (Control+S または File > Save Scene)
    • これは新しいシーンのため、名前を付ける必要があります。

名前は特に問題ではありませんがSharedMixedRealityとします

f:id:haikage1755:20170719090536p:plain

  • Visual StudioにExportする
    • ビルドメニュー(Ctrl + Shift + Bまたはファイル/ビルド設定)を開く
    • Add Open Scenesをクリックする
    • Unity C# Projectsにチェックを入れる
    • SDKをHoloLensの場合は10.0.14393.0に、Immersiveの場合は10.0.15063.0を選択する
    • Buildをクリックする

f:id:haikage1755:20170719091638p:plain

現在、Unity2017.2の既知の問題として以上の設定ではビルドができないようです。
(C# Project のチェックを外すとビルドはできます)
beta8までを使っている場合に起きるエラーです。
f:id:haikage1755:20170720093151j:plain:h100

  • ファイルエクスプローラが開くので、新しくAppというフォルダを作成します (HoloLens、Immersiveの両方のアプリを作る場合は、フォルダを分けてください。例)HoloLensApp, ImmersiveAppなど)
  • Appフォルダを1回押します
  • フォルダを選択を押します
  • ビルドとコンパイルを待ちます

f:id:haikage1755:20170719091949p:plain

  • Visual Studioからのビルド
    • トップツールバーを使用して、ターゲットをReleaseとx86に変更する
      • HoloLensの場合は、ローカルマシンの横にある矢印をクリックし、デバイスを選択する
      • Immersiveの場合は、ローカルマシンを選択する
    • Mixed realityデバイスに展開するためにデバイスの横にある矢印をクリックし、Local Machineを選択する
    • アプリケーションをスタートするためにDebug->Start Without DebuggingまたはCtr+F5をクリックする

コードを理解する

プロジェクトで、Assets\HoloToolkit\Input\Scripts\Utilitiesをダブルクリックし、MixedRealityCameraManager.cs を開いてください。

        void Start()
        {
            if (HolographicSettings.IsDisplayOpaque)
            {
                //TrueならImmersiveHMDの設定を適応
                ApplySettingsForOpaqueDisplay();
            }
            else
            {
                //FalseならHoloLensの設定を適応
                ApplySettingsForTransparentDisplay();
            }
        }

概要:MixedRealityCameraManager.csはデバイスに応じてクオリティレベルとBackgound設定を適応する簡単なスクリプトです。重要な点はHolographicSettings.IsDisplayOpaqueであり,これはデバイスがHoloLensかImmersiveHMDかを判定します。(IsDisplayOpaqueはHoloLensならfalse,immersiveならtrueを返します)

進捗を楽しむ

この時点で、アプリケーションはHologramsを描画します。HologramへのInteractionは後程追加します。両デバイスは同じHologramを描画します。Immersiveデバイスではまた青い空と雲も描画します。

[研究者になりたかった青二才の戯言日記]は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。」