MRが楽しい

MRやVRについて学習したことを書き残す

公式チュートリアルの「Multi-user capabilities tutorials」を試す その1

本日は HoloLens2 の公式チュートリアルの実施枠です。
バイス間でのシェアリングを Photon を用いて実現するチュートリアル「Mult-user capabilities tutorials」を試します。

以下の公式ページの和訳と実施キャプチャを元に記事を書き起こします。
docs.microsoft.com

1.はじめに

概要

このチュートリアルでは Photon Unity Networking(PUN)を使用してマルチユーザー体験を構築する基本を学びます。
PUNは共有体験を作成するために利用できるいくつかのネットワーキングオプションの1つです。

このシリーズのチュートリアルは以下の項目で構成されます。

・PhotonUnityネットワークの設定
・複数のユーザーを接続する
・オブジェクトの動きを複数のユーザーと共有する
・Azure SpatialAnchorsを共有エクスペリエンスに統合する

目的

チュートリアルでは以下の技術を学びます。

・PUN アプリを作成して Unity プロジェクトを接続する方法
・共有体験で複数のユーザーを接続する方法
・オブジェクトの動きを他のユーザーと共有する方法
・複数のデバイス間で空間的な配置の共有を実現する方法

前提条件

チュートリアルを実施するための前提条件は以下の通りです。

・Windows10コンピューター
Visual Studio 2019
Windows 10 SDK10.0.18362.0以降
・開発モードの HoloLens2 デバイス
・Unity 2019.3.15
- UWP プラットフォームビルドサポート
・Unity と MRTK に関する基本的な知識
・AzureSpatialAnchors アカウントの作成経験
・Create a Spatial Anchors resource セクションの履修済み
docs.microsoft.com

本ブログの Create a Spatial Anchors resource セクションの記事は以下です。
bluebirdofoz.hatenablog.com

Android にもデプロイする場合
・ARCore 対応の Androidバイス
・Unity 2019.3.15
- Android プラットフォームビルドサポート

iOS にもデプロイする場合
MacOS コンピュータ
Xcode(最新バージョン)
・ARKit 対応の iOSバイス
・Unity 2019.3.15
- iOS プラットフォームビルドサポート

このチュートリアルシリーズで推奨される MixedReality Toolkit のバージョンは MRTK2.4.0 です。
github.com

このチュートリアルシリーズで推奨されるUnityバージョンはUnity2019.3.15です。
本記事では Unity 2019.4.11 のバージョンを利用しています。

2. PhotonUnityネットワークの設定

概要

この章では Photon Unity Networking(PUN)を使用して共有体験を作成する準備をします。
PUN アプリを作成するほか、PUN アセットを Unity プロジェクトにインポートし、Unity プロジェクトを PUN アプリに接続する方法を学習します。

目的

この章では以下の技術を学びます。

・PUN アプリを作成する方法
・PUN アセットを見つけてインポートする方法
・Unity プロジェクトを PUN アプリに接続する方法

Unityプロジェクトの作成と準備

新しいUnityプロジェクトを作成し、MRTK開発の準備をします。

プロジェクトを作成するには、以下のチュートリアルのデバイスへのデプロイを除いた一連の手順を行います。
docs.microsoft.com

1.適切な名前(例:MRTKチュートリアル)の Unityプロジェクトを作成します。
f:id:bluebirdofoz:20201013230807j:plain

2.Mixed RealityToolkit をインポートします。
f:id:bluebirdofoz:20201013230816j:plain

3.Unity プロジェクトの構成を実行します。
f:id:bluebirdofoz:20201013230830j:plain

4.ビルドプラットフォームを UWP に切り替えます。
f:id:bluebirdofoz:20201013230842j:plain

5.TextMeshPro リソースをインポートします。
f:id:bluebirdofoz:20201013230852j:plain

6.シーンの作成を実行します。
f:id:bluebirdofoz:20201013230903j:plain

7.シーンに適切な名前(MultiUserCapabilitiesなど)を付けます。
f:id:bluebirdofoz:20201013230916j:plain

次に、以下のチュートリアルに従って次の手順を実行します。
docs.microsoft.com

1.MRTK の構成プロファイルを DefaultHoloLens2ConfigurationProfile に変更します。
f:id:bluebirdofoz:20201013230935j:plain

2.空間認識メッシュ表示オプションを"Occlusion"に変更します。
f:id:bluebirdofoz:20201013230945j:plain

追加機能の有効化

[Edit > Project Settings...]を開き、[Player > Publishing Settings]で以下の Capabillities の有効化を確認します。
・InternetClient
・Microphone
・SpatialPerception
・GazeInput
f:id:bluebirdofoz:20201013230956j:plain

次に以下の Capabillities を有効にします。
・InternetClientServer
・PrivateNetworkClientServer
f:id:bluebirdofoz:20201013231013j:plain

組み込みのUnityパッケージのインストール

Unityメニューで、[Window -> Package Manager]を選択して[Package Manager]ウィンドウを開きます。
[AR Foundation]を検索して選択し、[Install]ボタンをクリックしてパッケージをインストールします。
f:id:bluebirdofoz:20201013231027j:plain

注意

次のセクションでインポートする AzureSpatial Anchors SDK に必要なため、ARFoundation パッケージをインストールします。

チュートリアルアセットのインポート

次のUnityカスタムパッケージを以下の順序通りにインポートします。

1.AzureSpatialAnchors.unitypackage
2.MRTK.HoloLens2.Unity.Tutorials.Assets.GettingStarted.2.4.0.unitypackage
3.MRTK.HoloLens2.Unity.Tutorials.Assets.AzureSpatialAnchors.2.4.0.unitypackage
4.MRTK.HoloLens2.Unity.Tutorials.Assets.MultiUserCapabilities.2.4.0.unitypackage
f:id:bluebirdofoz:20201013231042j:plain

docs.microsoft.com

チュートリアルアセットをインポートすると、プロジェクトウィンドウは以下のようになります。
f:id:bluebirdofoz:20201013231103j:plain

注意

MultiUserCapabilities.2.4.0.unitypackage をインポートした後、コンソールにいくつかのCS0246エラーが表示されます。
これは PUN アセットをインポートする次のセクションで解決されます。
f:id:bluebirdofoz:20201013231121j:plain

PUNアセットのインポート

Unityメニューで[Window -> AssetStore]を選択して[AssetStore]ウィンドウを開き、[PUN 2]を検索して選択します。
f:id:bluebirdofoz:20201013231132j:plain

ダウンロードボタンをクリックして PUN 2 アセットパッケージをダウンロードします。
f:id:bluebirdofoz:20201013231144j:plain

ダウンロードが完了したら、[Import]ボタンをクリックします。
f:id:bluebirdofoz:20201013231155j:plain

[Unity Package Import]ウィンドウが開きます。
全てのアセットが選択されていることを確認してから[Import]ボタンをクリックしてアセットをインポートします。
f:id:bluebirdofoz:20201013231207j:plain

インポートが完了すると、[PUN Settings]メニューがロードされた状態で[PunWizard]ウィンドウが表示されます。
この時点では、このウィンドウは無視して閉じます。
f:id:bluebirdofoz:20201013231222j:plain

PUNアプリケーションの作成

この章では RUN アカウントにサインインして新しい PUN アプリを作成します。
dashboard.photonengine.com

使用する RUN アカウントが既にある場合は、Photon ダッシュボードに移動してサインインします。
アカウントがない場合は、アカウントの作成リンクをクリックし、指示に従って新しいアカウントを登録します。
f:id:bluebirdofoz:20201013231244j:plain

サインインしたら、[新しくアプリを作成する]ボタンをクリックします。
f:id:bluebirdofoz:20201013231258j:plain

[新しいアプリケーションの作成]ページで、以下の設定を入力します。

Photonの種別:Photon PUN を選択します。
アプリケーション名:適切な名前を入力します(例:MRTKチュートリアル)。
Description:適切な説明文を入力します(オプション)。
URL:フィールドを入力しないままにします。

入力を行ったら[作成する]ボタンをクリックして、新しいアプリを作成します。
f:id:bluebirdofoz:20201013231310j:plain

Photon が作成プロセスを完了すると、新しい PUN アプリがダッシュボードに表示されます。
f:id:bluebirdofoz:20201013231320j:plain

UnityプロジェクトをPUNアプリケーションに接続する

この章では Unity プロジェクトを前章で作成した PUN アプリに接続します。

Photon ダッシュボードで[アプリケーションID]フィールドをクリックしてアプリIDを表示し、クリップボードにコピーします。
f:id:bluebirdofoz:20201013231337j:plain

Unity プロジェクトを開き、[Window > Photon Unity Networking > PUN Wizard]を選択します。
[PunWizard]ウィンドウが開くので、[Setup Project]ボタンをクリックして、[PUN Setup]メニューを開きます。
f:id:bluebirdofoz:20201013231349j:plain

[App Id]または[Email]フィールドに先ほどコピーした RUN アプリのアプリIDを貼り付けます
[Setup Project]ボタンをクリックして、アプリIDを適用します。
f:id:bluebirdofoz:20201013231403j:plain

セットアッププロセスが完了すると、[PUN Setup]メニューに「Done!」というメッセージが表示されます。
プロジェクトウィンドウで PhotonServerSettings アセットを選択し、[Inspector]ウィンドウで内容を確認します。
f:id:bluebirdofoz:20201013231419j:plain

これで PUN アプリを作成して Unity プロジェクトに接続することができました。
次のステップでは他のユーザーとの接続を許可して、複数のユーザーがお互いを見ることができるようにします。
bluebirdofoz.hatenablog.com