Synamon’s Engineer blog

Synamonはリアルとデジタルの融合を加速させるため、メタバース領域で法人向けにサービス提供を行うテックカンパニーです。現在開発を進めている「メタバース総合プラットフォーム」をはじめ、メタバース市場の発展に向けた事業展開を行っています。このブログでは、メタバース技術とその周辺の技術、開発全般に関してエンジニアがお話しします。

HoloLens2をさわってみた [第1回_ひとりで使えるHololens2アプリをつくる]

f:id:kazuyaplus:20220214152337p:plain

はじめに

こんにちは、エンジニアの伊藤(@kazuyaplus)です。
Hololens2すごい!Hololens2を使って一緒にいる人たちと同じARを共有して、物を動かしたりしたい!

そう思ってHololens2で基本的なアプリをビルドしてみました。

この記事ではHololens2で基本的なアプリを作る方法を全4回にわけてまとめていきたいと思います。

  • 第1回 : ひとりで使えるHololens2アプリをつくる ~Unity・VisualStudio・MRTKのインストールからビルドまで ~
  • 第2回 : 他の人と使えるHololens2アプリをつくる ~PUN2を使ってオブジェクトを共有~
  • 第3回 : Tips ~Wi-Fiを使ってアプリをインストール~
  • 第4回 : 他の人と同じ空間で使えるHololens2アプリをつくる ~AzureSpatialAnchorsを使った空間同期~

細かいことは後でいいので、Hololens2でとにかく何かを動かしたい人に向けて紹介していきます。

詳しいことは下のほうにすばらしい参考リンクをまとめていますので、そちらも確認してみてください。

用語集

  • MRTK
    • [Mixed Reality Toolkit]の略で、AR、VRで使えるUIライブラリ
  • PUN2
    • [Photon Unity Networking2]の略で、Unityにオンライン機能を組み込むためのサービス
  • AzureSpatialAnchors
    • 複数のユーザーが同じ物理的な場所にデジタルコンテンツを配置できるようにするためのサービス

検証環境

  • Unity:2020.3.26f1
  • MRTK:2.7.3
  • VisualStudio:2019
  • Device:HoloLens2

手順

Unityのインストール

インストールするモジュールを選択します。

  • Microsoft Visual Studio Community 2019
  • Universal Windows Platform Build Support

f:id:kazuyaplus:20220209183313j:plain

VisualStudioの追加インストール

Visual Studio Installerを起動し[変更]をクリックします。

f:id:kazuyaplus:20220209183537j:plain

[ユニバーサル Windows プラットフォーム開発]と下記の項目にチェックします。

  • USBデバイスの接続
  • C++(v142)ユニバーサルWindowsプラットフォーム
  • Windows 10 SDK (10.0.19041.0) 既に含まれている場合はそのまま

f:id:kazuyaplus:20220209183713j:plain

追加インストールが終わったら、Unityを起動しましょう。

f:id:kazuyaplus:20220209183844j:plain

スクリプトエディターの確認

  1. メニューの Edit > Preferences > Unity Preferences を開きます。
  2. [External Tools] の [External Script Editor] を [Visual Studio 2019] に設定します。

f:id:kazuyaplus:20220209184117j:plain

ビルド プラットフォームを切り替える

  1. Unity のメニューで、[File] > [Build Settings...] の順に設定して、[Build Settings] を開きます。
  2. [Build Settings] で、[Universal Windows Platform] を選択し、次の設定を完了します。

  3. [Target Device] を [HoloLens] に設定します。

  4. [Architecture] を [ARM 64] に設定します。
  5. [Build Type] を [D3D Project] に設定します。
  6. [Target SDK Version] を [Latest installed] に設定します。
  7. [Minimum Platform Version] を 10.0.10240.0 に設定します。
  8. [Visual Studio Version] を [Latest installed] に設定します。
  9. [Build and Run on] を [USB Device] に設定します。
  10. [Build configuration] を [Release] に設定します。

  11. [Switch Platform] を選択します。

f:id:kazuyaplus:20220209184846j:plain

MRTKのインポート

最新バージョンの Mixed Reality Feature Tool を Microsoft ダウンロード センターからダウンロードします。

www.microsoft.com

ダウンロードしたものを展開すると下記のようになっていると思うので、[MixedRealityFeatureTool.exe]を起動します。

f:id:kazuyaplus:20220209185626j:plain

[Start]を押して次へ

f:id:kazuyaplus:20220209185058j:plain

開いたらプロジェクトフォルダーを選択します。

f:id:kazuyaplus:20220213164027j:plain

Mixed Reality Toolkit に関連するパッケージを選択していきます。

  1. [Mixed Reality Toolkit Foundation] がオンになっていることを確認し、そのフィールドに [MRTK 2.7.3] を選択します。
  2. [Mixed Reality OpenXR Plugin] がオンになっていることを確認し、利用可能な最新バージョンを選択します。

※ Azure Spatial Anchorsを使う予定の場合は追加で [Azure Spatial Anchors SDK Core]と[Azure Spatial Anchors SDK for Windows(プラットフォーム固有のパッケージ)]を追加します。

f:id:kazuyaplus:20220213164129j:plain

Unityプロジェクトを構成する

Mixed Reality Feature Tool で機能の追加が終了したらUnityを起動します。

パッケージがインポートされたら、Unity エディターを再起動し、新しいプラグインのバックエンドを有効にします。 起動時に警告が出ますが[はい] を選択します。

f:id:kazuyaplus:20220213164454j:plain

起動時にMRTKが立ち上がります。

[Unity OpenXR Plugin] を押して次のページに進みます。

f:id:kazuyaplus:20220213164536j:plain

[Show XR Plug-in Management Settings] を押すとプロジェクト設定が立ち上がります。

f:id:kazuyaplus:20220213164613j:plain

[XR Plug-in Management] でユニバーサル Windows プラットフォーム設定 がアクティブになっていることを確認し、[Initialize XR on Startup]、[Open XR]、[Microsoft HoloLens feature set] がすべて有効になっていることを確認します。(チェックボックスがオンになっている)

※警告マークはクリックして [FixAll]

f:id:kazuyaplus:20220213164635j:plain

OpenXR 構成を検証するには、[XR Plug-in Management] で [OpenXR] を選択し、次の項目がオンになっていることを確認します。

  • Depth Submission Mode : Depth 16 Bit
  • Interaction Profiles : Microsoft Hand Interaction Profile

f:id:kazuyaplus:20220213164804j:plain

設定を有効にするには、Unity を再起動する必要があります。 メッセージが表示されたら、[Apply] を選択して Unity エディターを再起動します。

f:id:kazuyaplus:20220213164827j:plain

  1. 再起動が終わったら、Unity のメニューで、[Edit] > [Project Settings...] を選択して [Project Settings] ウィンドウを開きます。
  2. [Project Settings] で、[Player] > [Publishing Settings] の順に選択し、[Package name] フィールドに適切な名前を入力します、適当な名前を付けたら、保存しましょう。

f:id:kazuyaplus:20220213164903j:plain

シーンを作成してMRTKを作成する

Unity メニューで、 Mixed Reality > Toolkit > Add to Scene and Configure を選択して、MRTK を現在のシーンに追加します。

f:id:kazuyaplus:20220213165025j:plain

[Hierarchy] ウィンドウで MixedRealityToolkit オブジェクトを選択した状態で、[Inspector] ウィンドウで [MixedRealityToolkit] 構成プロファイルが DefaultMixedRealityToolkitConfigurationProfile に設定されていることを確認します。

f:id:kazuyaplus:20220213165059j:plain

f:id:kazuyaplus:20220213165112j:plain

次にヒエラルキーにキューブを作ります。

  • 位置: X = 0、Y = -0.1、Z = 0.5
  • 回転:X = 0、Y = 0、Z = 0
  • スケール: X = 0.1、Y = 0.1、Z = 0.1

追跡対象の手でオブジェクトを操作してつかむには、オブジェクトに次のコンポーネントが必要です。

  • Object Manipulator (Script) コンポーネント (ConstraintManagerは自動でセットされる)
  • NearInteractionGrabbable (Script) コンポーネント

f:id:kazuyaplus:20220213165235j:plain

プロジェクトをビルドする

Unity メニューで、 [File] > [Build Settings...] を選択し、[Build Settings] からプロジェクトをビルドします。 ビルドが完了したら下記のフォルダのようになります。

f:id:kazuyaplus:20220213165517j:plain

[MRTK Tutorials.sin] をVisual Studioで開きます。

ビルド設定を [Release] 、[ARM64] 、[デバイス] にします。

f:id:kazuyaplus:20220213165544j:plain

設定が終わったらホロレンズ本体とパソコンを接続しましょう。 初回のみVisual StudioとHoloLens 2のペアリングを求められます。

HoloLens2本体の設定内の[更新とセキュリティ] > [開発者向け]にある[ペアリング]ボタンを押すとPINが表示されます。

f:id:kazuyaplus:20220213165621j:plain

ビルドが終わったら、ホロレンズでアプリを起動します。 下記の画像はUnityで実行した画面になりますが、アプリを実行するとキューブを掴むことができるようになっているかと思います。

f:id:kazuyaplus:20220213212427j:plain

おわりに

これでキューブを動かしたり回したりすることができるようになりました。

次回は、このアプリケーションを他の人と一緒に使えるようにする方法を紹介します。

参考リンク