HoloLens ホログラフィックアプリケーションを作ってみた(Cube初級編)

【技業LOG】技術者が紹介するNTTPCのテクノロジー

2018.03.30
その他
齋藤 健輔

アプリケーションエンジニア、セキュリティエンジニア、テクニカルマネージャー、上級バーチャルリアリティ技術者
齋藤 健輔

取得資格:情報処理安全確保支援士、アドバンスド認定スクラムマスター、上級バーチャルリアリティ技術者

技業LOG

はじめに

2016年はVR元年と呼ばれ、アミューズメント系を主として仮想現実が拡がりをみせました。2017年はAR、MR等の空間認識技術が向上し、エンタープライズ系にも利用の場を拡張させてきました。(これらの技術を合わせてxRと呼びます)今後の発展が大いに期待されています

このコラムでは、MR(Mixed Reality)系デバイスとしてリリースされているMicrosoft社のHoloLensを使ったホログラフィックアプリケーションの作成についてお話ししたいと思います。MRは仮想空間と現実空間を複合させるもので、HoloLensを通して見ることにより、仮想空間上のオブジェクトを現実空間に投影して見ることが出来ます

実行すると近未来映画に出てくるような世界が目の前に広がるのです。ちょっとワクワクしませんか?そんなアプリケーションをいっしょに(案外簡単)作ってみましょう!

はじめに イメージ画像

ここで出来るようになること

HoloLens上で動くホログラフィックアプリケーションをノンプログラミングで作成してみます。ゴールとしてはHoloLensを通して見たときに空間認識した結果をメッシュで、その空間に浮遊する立方体と床を転がる球体を出現させます

[実行イメージ]
実行イメージ

開発環境

  • HoloLens Development Edition 詳細はこちら
  • 開発用パソコン(インストール要アプリケーション)
    • Windows 10 Pro Fall Creators Update
    • Visual Studio 2017 15.4.4
    • Unity 2017.1.2f1 ダウンロードはこちら
    • HoloToolkit-Unity-v1.2017.1.2.unitypackage ダウンロードはこちら
  • 上記のVersionは現時点(2018/01/20)で動作確認が取れた組み合わせになります。最新の環境の組み合わせについては各自でご確認下さい
  • 環境の構築方法につては下記のMicrosoftのサイト、エバンジェリストの方が公開しているサイトを参考にして作って下さい
  • Windows Developer Center こちら
  • Mixed Reality の開発環境 こちら
  • Windows Mixed Reality 対応アプリ開発環境構築 こちら

やってみよう!

Unityに新規プロジェクトを作成

Unityを最初に起動するときは、アカウント登録等の手続を実施します。その後初期画面になります

[初期画面]
初期画面

まず画面右上にある New をクリックします。

  • Project Nameに作成するプロジェクトの名前を入力
  • Locationにプロジェクトを保存するパスを指定
  • 3D Object を使うので、3Dを選択
  • "Create Project"ボタンを押してプロジェクトを作成します
[Unity画面]
Unity画面

Unityが起動すると上記の画面が表示されます

  • ここではUnityの詳しい使い方は説明しませんので、別途UnityのDocumenntサイトで確認して下さい

Mixed Reality Toolkit-UnityのImport

HoloLens開発用のライブラリパッケージ(HoloToolkit-Unity-v1.2017.1.2.unitypackage)をImportします。このパッケージはHoloLensを開発する際に便利なツールが多数含まれているので、利用することをお勧めします

[Package読込]
Package読込

メニューバーの "Assets" から "Import Package" → "Custom Package" をクリックして事前にダウンロードしておいた"Mixed Reality Toolkit"(HoloToolkit-Unity-v1.2017.1.2.unitypackage)を指定します

[Package Import]
Package Import

Import項目の選択画面が表示されますので、全てチェックされていることを確認して"Import"ボタンを押して開始します
Importに成功したら、メニューバーに"Mixed Reality Toolkit"が表示されます

HoloLensアプリ開発環境設定

HoloLensで動作するアプリケーションを開発する際には、複数のパラメータを設定する必要がありますが、"Mixed Reality Toolkit" をImportすることにより、その設定をボタンを押すだけで出来るようになります
(実際に設定する内容についてはMicrosoftのMixed Reality Academy等で確認してください)

[Mixed Reality Toolkit 環境設定]
Mixed Reality Toolkit 環境設定

メニューバーの "Mixed Reality Toolkit" から "Configure" をクリックしてサブメニューの下記3つを行います

  • Apply Mixed Reality Project Settings
  • Apply Mixed Reality Scene Settings
  • Apply UWP Capability Settings
[Mixed Reality Project Settings]
Mixed Reality Project Settings

メニューバーの "Mixed Reality Toolkit" から "Configure" → "Apply Mixed Reality Project Settings"をクリックします
環境設定用のチェック画面が上記の様になっていることを確認して "Apply" ボタンを押します

[Mixed Reality Scene Settings]
Mixed Reality Scene Settings

メニューバーの "Mixed Reality Toolkit" から "Configure" → "Apply Mixed Reality Scene Settings"をクリックします
環境設定用のチェック画面が上記の様になっているのを確認して "Apply" ボタンを押します

[UWP Capability Settings]
UWP Capability Settings

メニューバーの "Mixed Reality Toolkit" から "Configure" → "Apply UWP Capability Settings"をクリックします
環境設定用のチェック画面が上記の様になっていることを確認して "Apply" ボタンを押します

3D Objectを配置

空間に立方体(Cube)と球体(Sphere)を配置します。Cubeは指定した座標に表示させるだけですが、Sphereには物理エンジンを適用させて、重力影響を受けられるようにします

[3D Object 配置]
3D Object 配置

Hierarchyウィンドウ内にある"Create"から "3D Object" → "Cube"、"Sphere"を選択して、立方体、球体をSceneに配置します

[Cube 設定]
Cube 設定

Hierarchyウィンドウ内にある"Cube"を選択します
Inspectorウィンドウ内のTransformのPositionをx:0.3 y:0 z:2 Scaleを x:0.2 y:0.2 z:0.2 に設定します

[Sphere 設定]
Sphere 設定

Hierarchyウィンドウ内にある"Sphere"を選択します
Inspectorウィンドウ内のTransformのPositionをx:-0.3 y:600 z:2 Scaleを x:0.2 y:0.2 z:0.2 に設定します

物理エンジンの適用

Sphereに物理エンジンを適用させて、重力影響を受けられるようにします

[Sphere 設定 Add Component]
Sphere 設定 Add Component

Hierarchyウィンドウ内にある"Sphere"を選択します
Inspectorウィンドウ内にある "Add Component" ボタンを押して、Rigibodyを検索してクリックします

[Sphere 設定 Rigbody]
Sphere 設定 Rigbody

Inspectorウィンドウに追加されたRigibody内の "Use Gravity" にチェックします

これで、Sphere に物理エンジンが適用され重力演算が行われる様になりました。簡単ですね

空間認識の適用

Spatial Mappingを利用することにより、自分がいる空間の壁や床及び物体をHoloLensで認識出来る様になります

[Spatial Mapping 設定]
Spatial Mapping 設定

Projectウィンドウ内の"Assets" → "HoloToolkit" → "SpatialMapping" → "Prefabs" 配下にある "SpatialMapping" をHierarchyウィンドウにドラッグ&ドロップします

[Spatial Mapping 設定]
Spatial Mapping 設定

Hierarchyウィンドウ内にある"SpatialMapping"を選択します
Inspectorウィンドウ内にあるSpatial Mapping Manager内の "Draw Visual Meshes" にチェックが付いている事を確認します

[Project 設定]
Project 設定

Spatial MappingにはUWPの機能許可が必要なので許可設定を行います
メニューバーの "Edit" から "Project Settings" → "Player"をクリックします

[Project Player 設定]

Inspectorウィンドウ内の "Windowsアイコン" をクリックします
"Publishing Settings" をクリックして、その中の "Capabilities" から "SpatialPerception" にチェックをいれます

これによりHoloLensで空間認識が可能になり周囲の状況を判別しメッシュ表示できるようになりました。球体も床で転がるようになりました。

Scenesの保存

[Scenes Save]
Scenes Save

メニューバーの "File" から "Save Scenes" をクリックします

[Scenes Save]
Scenes Save

まだ、Scenesフォルダーを作っていない場合は、"新しいフォルダー"をクリックしてScenesフォルダーを作成します
Scenesフォルダーを指定します。Sceneファイル名を入力して"保存"ボタンを押します

UnityでBuildの実行

[Build Setting]
Build Setting

メニューバーの "File" から "Build Settings" をクリックします

[Build Setting]
Build Setting

最初の場合はBuild Setting画面の"Add Open Scenes"ボタンを押してBuildするSceneファイルを指定します。
"Unity C# Projects"にチェックします
"Build"ボタンを押すとBuildが開始されます

[App 指定]
App 指定

初めてのBuildの場合はAppフォルダーを"新しいフォルダー"をクリックして作成します
Appフォルダーを指定します
"フォルダーの選択"ボタンを押すとBuildが開始されます

Visual StudioでBuildの実行

今回はVisual StudioからHoloLensに接続してアプリケーションをデプロイします。事前にHoloLensを起動してネットワークに接続した状態にしてください

[Visual Studio 起動]
Visual Studio 起動

Buildが成功すると、エクスプローラーが起動します
Appフォルダーの配下に "Project名.sln" というファイルが作成されているのでダブルクリックします
Visual Studio が起動して "Project名.sln" を読み込みます

[Build 設定]
Build 設定

Visual Studioの設定を次のようにします

  • ソリューション構成:Release
  • ソリューションプラットフォーム:x86
  • Device:リモートコンピューター
[リモート接続 設定]
リモート接続 設定

アドレスに リモートコンピューター(HoloLens)の接続先のIPアドレスを入力します
"選択"ボタンを押します

[デバッグ実行]
デバッグ実行

メニューバーの "デバッグ" から "デバッグなしで開始" をクリックします。これでBuildが開始され、成功したら、リモートコンピューター に指定したHoloLensに接続してデプロイします

デプロイも成功するとHoloLens側で作成したアプリケーションが自動的に起動します

[HoloLens:ホログラフィックアプリケーション実行イメージ]

あとがき

いかがでしたか? コードを一切書くこともなく作ることが出来ました。意外と簡単じゃなかったですか?単純な3D Objectを使ったサンプルですので少し地味だったかも知れませんが、3D Objectをキャラクタに置き換えたり、動きを組み込んでみたり、ソースコード(C#)を書いてみたりすることで、もっと未来的で便利なアプリケーションを作れそうですよね。それが出来るようになれば楽しそうじゃないですか?

HoloLensは2017年1月に日本でリリースされました。以来、不動産、建築、医療、教育等のエンタープライズ系の領域に着実に浸透してきています。これを読まれている方の中には既に利用された方もいるのではないでしょうか?

それを支える日本のコミュニティも世界の中で活発に活動しており、優秀なエンジニア・クリエーターが多数存在します。ですから、世界に誇れるアプリケーションを開発するチャンスが目の前に広がっているとも言えます。いっしょに快適な未来を目指して行きましょう!

今回はノンプログラミングで出来る内容で紹介しましたが、HoloLensには他にも色々な機能があります。次回はそんな機能を使いつつ、エンタープライズ用途に近いホログラフィックアプリケーションの作成事例を紹介したいと思います。また、少し先の未来を覗きに行きましょう。

おすすめ記事

    お気軽にご相談ください