ブログ@HoloLabInc

株式会社ホロラボのブログです

初級者向け Windows Mixed Reality アプリ 開発ハンズオンセミナーVol.1 を開催しました

初級者向け Windows Mixed Reality アプリ 開発ハンズオンセミナーVol.1 を開催

2018年6月23日に、日本マイクロソフト株式会社 品川オフィスで、初級者向け Windows Mixed Reality アプリ 開発ハンズオンセミナーVol.1 を開催しました。 主催は Digital DIY さん、協賛に日本マイクロソフト株式会社さん、弊社ホロラボは講師とセミナー コンテンツ内容を担当しました。

参加者18名には、日本マイクロソフト株式会社さんから Acer 製 Windows MR イマーシブヘッドセット AH101 と、Intel 製 Kaby Lake-G搭載 VR Ready NUC キット NUC8i7HVK が用意され、快適な開発環境が整っていました。

f:id:masashieguchi:20180630133312p:plain f:id:masashieguchi:20180630142221p:plain

ハンズオンセミナーは、ホロラボ社員ヒロムが講師を務めました。 内容は、大まかに下記の内容を 140 分に渡り説明、実際にアプリの実装を進めました。

  • Windows Mixed Realityポータルの操作
  • 開発環境説明・構築
  • ペイントアプリの実装

ペイントアプリの機能としては、ペン先の作成、線のプレハブの作成、ライン制御スクリプトの実装、ペンのサイズ変更方法、カラーパレットの作成、消しゴム機能まで含んだものでした。

f:id:masashieguchi:20180630140123p:plain

VRアーティストのせきぐちあいみさんも参加しており、ペイントアプリの実装を完成させていました。 f:id:masashieguchi:20180630135343p:plain せきぐちあいみさんが数十秒でササっと描いた金魚。VR空間で見ると立体的に見えてとてもリアルでした。 f:id:masashieguchi:20180630140330p:plain

ホロラボ担当者

今回のハンズオンセミナーでは、講師のヒロム他、チューターとして、JackMasaki v2.0ヨシポンMasashi Eguchi が参加者をサポートしました。 f:id:masashieguchi:20180630142859p:plain

Digital DIY さんについて

今回主催していただいた Digital DIY さんの詳細はこちらです。 digitaldiy.jp twitter.com

開発機材

Acer 製 Windows MR イマーシブヘッドセット AH101 と、Intel 製 Kaby Lake-G搭載 VR Ready NUC キット NUC8i7HVK の詳細はこちらです。 NUC8i7HVKは、マシンスペックが求められる Windows Mixed Reality アプリの体験や開発を行える VR Ready な NUC キットです。

www.acer.com

www.intel.co.jp

紹介

今回のハンズオンセミナーが、Impress さんの VR Watch 記事になりました! www.watch.impress.co.jp

Unity Editor でも HoloLens でも、 MRTK と SignalR を使いたい

はじめに

かずきさんとたるこすさんがHoloLensやWindows MRなどのUWP環境とUnityエディターでSignalRクライアントを使う方法をまとめてくれています。

blog.okazuki.jp

tarukosu.hatenablog.com

SignalRクライアント単体であればこの方法で動くのですが、MRTKを入れるとビルドエラーが発生します。このエントリではその解決方法について書きます。

なお、以下の方法はSignalR.Clientを自分でビルドしているため、自己責任にて使用してください。ビルドしたファイルは下記にあります。

問題点

SignalRクライアントとMRTKを同時にプロジェクトに入れた場合、それぞれがNewtonsoft.Json.dllを参照しています。しかし、Microsoft.AspNet.SignalR.Client.dllが使用しているNewtonsoft.Json.dllのバージョンが古い(6.0.4)ため、MRTKのNewtonsoft.Json.dllのバージョン(10.0.3)と競合します。これによってUnityエディター上でビルドできない問題が発生します。

どちらかを削除してもお互いのバージョンエラーでビルドができません。

MRTKでNewtonsoft.Json.dllを参照しているのはGLTFのライブラリなので、GLTFフォルダごと削除してみましたが、Immersive用のコントローラーモデルがGLTFを利用しているようでInput系でエラーが出始めました。このため、MRTK側で調整するのも現実的ではありませんでした。

Visual Studioの場合configファイルでバージョンのリダイレクトを行いますが、Unityエディターの場合の方法がわからない(これで解決できるなら一番いいかもしれません)ため、なんとかMicrosoft.AspNet.SignalR.Client.dllの参照しているDLLのバージョンを変更します。

幸いSignalRのコード一式は公開されているので、これをビルドします。

github.com

結果

Unityエディター、UWPビルドともに動作していることがわかります(UWP版はマテリアルはがれてるのはご愛敬)。エディター用の.NET DLLとUWP用のDLLを両方入れているので、どちらの環境でも同じように動作します(サーバーはかずきさんが公開しているものを使用しています)。

f:id:kaorun55:20180615232507g:plain f:id:kaorun55:20180615232100g:plain

SignalR.Clientのビルド

GitHubからコードをダウンロードして、プロジェクトを開きます。今回、エディター用DLLは「Microsoft.AspNet.SignalR.Client45」をUWP用DLLは「Microsoft.AspNet.SignalR.Client.UWP」を使用しています。

それぞれのプロジェクトの「参照」メニューからNuGetパッケージの更新を行います。このとき、Newtonsoft.Json.dllの該当バージョンの10.0.3を指定します。パッケージを更新したらビルドを行います。正常にビルドができればOKです。

f:id:kaorun55:20180615234004p:plain

おまけ

エラー画像

Newtonsoft.Json.dllのバージョン

下記がVisual StudioのNuGetで取得したSignalR.Clientが参照しているNewtonsoft.Json.dllのバージョン(6.0.4)。

f:id:kaorun55:20180615233325p:plain

下記がMRTKで使われているNewtonsoft.Json.dllのバージョン(10.0.3)。

f:id:kaorun55:20180615233341p:plain

Newtonsoft.Json.dllのバージョンを削除した場合の動作

どちらかを削除してもお互いのバージョンエラーでビルドができません。 f:id:kaorun55:20180615233533p:plain f:id:kaorun55:20180615233536p:plain

de:code 2018のスライドを公開します

5/22に登壇したde:code 2018のスライドを公開します。 blog.hololab.co.jp

speakerdeck.com

スライドのポイント

HoloLensの業務への適用について

HoloLensを業務に適用する際の考え方の例について解説します。

HoloLensを適用するシナリオの考え方

f:id:kaorun55:20180601182744p:plain

HoloLensを買ってみたもののどこに活用できるかという一つの指針に業務で分ける方法があります。例えば建設業であれば設計、建設、点検などのフェーズに分かれるので、その「現場」で使うシナリオを考えます。また、それぞれの「現場」には「教育」が存在するので、そこへの適用も考えます。「現場」と「教育」の面から考えることで1つの「業務」に対して2つのシナリオが考えられます。

アプリ開発フロー

f:id:kaorun55:20180601182831p:plain

実際にアプリ開発を始める場合、お客様のHoloLensの習熟度に合わせていくつかの段階を踏みます。一番最初の段階ではHoloLensに自社のデータ(モデルなど)を入れて「見る」ことから始めます。これによって他人事から自分ごとに変えます。この段階のアプリを社内で回覧するだけでも様々なフィードバックが得られます。

現在では「Microsoft Layout Preview」を使用することで、対応するモデルならHoloLens実機を準備するだけですぐにこのフェーズを試すことができます。

blog.hololab.co.jp

HoloLensアプリ開発時によくある要件

お客様と会話をするときによく話題になる項目について解説します。 f:id:kaorun55:20180601190911p:plain

位置合わせ

位置合わせはVuoriaなどでマーカーを検出させることが手軽で確実です。とはいえ、マーカーで完全には合わないので微調整は手動で行います。これは現実の車にデータの車モデルをかぶせるFordの事例でも適用させており、現在の限界を示しています。 f:id:kaorun55:20180601190929p:plain

とはいえ、マーカー1つでは傾きの誤差がでるので、2つ以上での位置合わせを試作しています。精度検証はこれから行う段階です。 f:id:kaorun55:20180601191121p:plain

www.youtube.com

モデルの安定化(安定化平面)

モデルの安定化については安定化平面が作用しているかを確認します。Unityのバージョンによって正しく作用しない場合があるので、安定しない動きを覚えておくとよいでしょう。 f:id:kaorun55:20180601191439p:plain

詳しくはこちらを参照してください。

www.tattichan.work

モデルの安定化(WorldAnchor)

もう一つの安定化がWorldAnchorです。これはHoloLensで動く範囲内での表示オブジェクトの安定化およびズレた際の復帰をサポートします。経験則として、移動範囲内でOSレベルのSpacialMappingを取得したうえで、WorldAnchorをその範囲にばらまくようにすると安定、復帰しやすくなります。

講演に先立って下記のパターンを試しました。 f:id:kaorun55:20180601191912p:plain

アンカーを配置しない場合

オブジェクトは少しずつずれて戻らなくなります。 f:id:kaorun55:20180601191940p:plain

www.youtube.com

アンカーを基準点のみに配置した場合

移動している間にオブジェクトはズレていきますが、戻ってしばらくすると元の位置に復帰します。 f:id:kaorun55:20180601192113p:plain

www.youtube.com

アンカーをばらまいた場合

移動中もあまりズレることがなく、元に戻ってもオブジェクトはそのままの位置にあります。

f:id:kaorun55:20180601192259p:plain

www.youtube.com

おまけとして、アンカーをばらまい場合にトラッキングがロストした場合にも、しばらくすると元の位置に復帰します。

www.youtube.com

精度

精度について、公式のデータはありませんが、おおよそ1mで1cm前後はズレる前提で考える必要があります。 試しに距離を計測してみました。マーカー位置などでもう少し追い込みはできると思いますが、おおよそ1mで1cm前後を考えるとよいでしょう。 f:id:kaorun55:20180601192504p:plain

www.youtube.com

次のステップに向けて

HoloLens用のSpring 2018 Updateがリリースされました。これによって機能、API含めて多くの追加がありました。また、マイクロソフトからのアプリもリリースされ、HoloLensを購入後にすぐできることが増えてきました。 f:id:kaorun55:20180601192735p:plain

下記の記事を参考にしてください。

blog.hololab.co.jp

blog.hololab.co.jp

blog.hololab.co.jp

blog.hololab.co.jp

blog.hololab.co.jp

まとめ

HoloLensはさまざまな業界で使われています。昨年の後半からは建設業のお客様が増えてきて、年度が明けて最近は製造業のお客様からのお問い合わせが増えてきています。PoCではなく、実導入を目指したお客様も出始めており、市場が急速に立ち上がる可能性を感じています。

HoloLensのソフトウェアも進化しており、次のハードウェアの話題も見え隠れするなか、いまできることを順々に取り組んでいくことが大切だと感じています。

合わせて読みたい

「Microsoft Layout Preview」を試してみた

f:id:kaorun55:20180529163817p:plain

先日のBuildで発表された2つのHoloLens用アプリ「Microsoft Remote Assist Preview」と「Microsoft Layout (Preview)」がストアで配信されているとのことで試してみました。

mspoweruser.com

「Microsoft Remote Assist Preview」についてはこちら

blog.hololab.co.jp

Microsoft Layout Preview

概要

www.youtube.com

Microsoft Layout Previewは3Dモデルの配置シミュレーションアプリです。HoloLens, PC(Immersive), PC(Import Tool)から構成されています。

下記のシナリオで構成されています。

  • HoloLensを使って現場で配置シミュレーションを行う
  • PCでWindows MR Immersive ヘッドセット(Immersive)を使いVR内で配置シミュレーションを行う
  • PCで配置したいモデルや現実の図面をHoloLens、Immersive用に変換、配置する

PCのImport Toolを使うことで外部のモデルや図面をインポートできます。

モデルでサポートされているファイルフォーマットは下記になります。

  • FBX, OBJ, GLFT, GLB, SKP, JT, STEP, ZIP(おそらくOBJ、マテリアル、テクスチャをZIP圧縮したもの)

f:id:kaorun55:20180529164539p:plain

図面については、Visioで作成したものをLayout用にエクスポートしたものを使用します。エクスポート用のアドインはImport Toolからインストールできます。

f:id:kaorun55:20180529164509p:plain

ドキュメントはこちら

docs.microsoft.com

セットアップのドキュメントはこちら

アプリのインストールはこちらから

HoloLens

www.microsoft.com

PC

www.microsoft.com

なお、HoloLens用のアプリにはApril 2018 Updateの適用が必要です。適用方法は下記を参照してください。

blog.hololab.co.jp

April 2018 Updateが適用されていないHoloLensの場合はインストールできませんでした。

f:id:kaorun55:20180529165447p:plain

HoloLensアプリの基本

アプリの流れとしては下記になります

  • レイアウトの選択
  • モデルの配置
  • レイアウトの保存

youtu.be

PCアプリ(Import Tools for Microsoft Layout)

Microsoft LayoutはPCアプリで真価が発揮されると感じています。

PCアプリの機能は下記になります。

  • 外部モデルのインポート
  • 間取りファイルのインポート
  • 配置データのエクスポート

外部モデルのインポート

外部モデルはFBX, OBJ, GLFT, GLB, SKP, JT, STEP, ZIP(おそらくOBJ、マテリアル、テクスチャをZIP圧縮したもの)がサポートされており、3D CGのみならずJTやSTEPのような3D CADにも対応しています。

HoloLensへの転送はUSBケーブル経由で行います。HoloLensをUSBケーブルでPCに接続するとImport ToolにHoloLensが表示され、アプリ上から転送できます(HoloLensがApril 2018 Updateでメディア転送のプロトコルがサポートされたので、このフローがOSバージョンに依存してるのかなとも思っています)。

f:id:kaorun55:20180529170929p:plain

間取りファイルのインポート

Visioで作成した間取りデータをImport Toolを通してHoloLens内に展開します。Visioからは専用のアドインを使って.vilというファイルで出力します。

アドオンのインストールはImport Toolの「About」から取得できます。「Get the Visio add-in」からVisioのアドインをダウンロードします。なお、Visioは英語版をインストールする必要があります。

f:id:kaorun55:20180529171455p:plain

Visioを開きレイアウトを行って「Layout」メニューからExportを選択して.vilを出力します。

f:id:kaorun55:20180529171610p:plain

これをImport Toolの「Layouts」タブから「Add layout」から追加します。

f:id:kaorun55:20180529171738p:plain

このファイルを選択すると右上に「Export to GLB」というボタンがあるので押してみると、このレイアウトをGLB形式でエクスポートできます。

f:id:kaorun55:20180529171806p:plain

エクスポートされたGLBファイルを開く(Widows 10に標準でインストールされている3D Builderで開けます)とVisioで作成したレイアウトが表示されます。

f:id:kaorun55:20180529171921p:plain

これをHoloLensでLayoutから取り込みモデルを配置して保存します。

f:id:kaorun55:20180529141726j:plain

再度Import ToolでLayoutsを開き、HoloLens側のLayoutからGLBをエクスポートすると、モデルの配置を行った後のモデルが取得できます。これを見ながら配置モデルを共有することもできます。

f:id:kaorun55:20180529172131p:plain

まとめ

ストーリー、アプリケーションともに非常によくできています。ファイルの使い方、データの行き来の仕方が非常に簡単になり、HoloLens利用の最初の一歩である「自分たちのモデルを見ること」については、このツールで十分だと思います。開発会社としてもこの先をどう考えるかということが重要になってきました。

HoloLensのWindows 10 April 2018 Update(RS4)がリリースされています

Windows 10 April 2018 Update (RS4)がリリースされています。バージョン番号は 10.0.17134.80になるようです。

リリースノートはこちら

docs.microsoft.com

解説動画はこちら

主な変更点はプレビュー時点でのこちらの記事を参照してください。

blog.hololab.co.jp

このバージョンをインストールすることで、先日発表されたMicrosoft Layout Previewのインストールが可能になります。

www.microsoft.com

www.microsoft.com

Remote Assistはいままでのバージョン(Anniversary Update / RS1)でもインストール可能です。

www.microsoft.com

Remote Assist Previewについてはこちら

blog.hololab.co.jp

インストール

Windows Update経由で行います。Updateされない場合にはWindows Device Recovery Tool (WDRT)を使用してインストールすることも可能です。WDRTを使用する場合にはHoloLensとPCをUSBケーブルで接続し、WDRTの指示にしたがいます。

f:id:kaorun55:20180528221457p:plain

前のバージョンに戻す

いままでのバージョンに戻したい場合には HoloLens Anniversary Update recovery package を下記からダウンロードすることで戻ると思います(未確認)。

f:id:kaorun55:20180528221959p:plain

その他:複数アカウント運用

解説動画を見て不思議に思ったことが、HoloLensのログインで複数ユーザーがいるんですね。

f:id:kaorun55:20180528223525p:plain

RS1でのHoloLensは1デバイス1アカウントでPCのようにユーザーを切り替えることはできませんでした。リリースノートを見返してみると「For commercial customers」の項目に「Use multiple Azure Active Directory user accounts on a single device」というものがありました。

f:id:kaorun55:20180528223836p:plain

解説ページはこちらになります。

docs.microsoft.com

条件としては下記2つになります

  • アンロックされたCommercial Suite(Windows Holographic for Business)
  • セットアップ時のアカウントをAzure Active Directory (Azure AD)にする(Office 365などの組織アカウントも可能)

この設定でHoloLensをリセットするとログイン時にユーザーの選択を求められます。ここで「Other User」を選択すると別のユーザーでログインが可能です。現状ログイン後のSettingsでユーザーの追加はできないようで、ログイン時にユーザーを選択するようになります。

f:id:kaorun55:20180528224148p:plain

複数ユーザーが可能な状態でログインすると、スタートメニューにログインユーザーのアイコンがでるようになります。

f:id:kaorun55:20180528224311p:plain

組織アカウントやパスワードの入力が非常に手間なので、デバイスポータルからの入力をすることが増えました。また、複数アカウントが有効になってる場合、再起動やスリープ後に必ずパスワード入力を求められるのがツライです。

まとめ

HoloLensのWindows 10 April 2018 Update(RS4)はプレビュー時代と比べてもいくつかの変更点があり、よりビジネスユースに適した形になってきたと思います。

同時にリリースされたMicrosoft Remote AssistとMicrosoft Layoutによって、遠隔支援やモデルの配置シミュレーションも簡単にできるようになったので、HoloLensの業務利用の間口が広がった感じがします。