あつしの What's New

技術情報や大学の授業で使用した演習をメモしていきます。このブログは個人のメモで、所属企業や大学の公式情報ではありません。

【ビギナー向け】MRTK v2 チュートリアルの音声認識・翻訳アプリを開発しましょう

ブログをご覧いただきありがとうございます!!

今回は MRTK v2.2.0 と Azure Cognitive Service を使用して翻訳アプリを作成してみたいと思います
f:id:atsushisz:20200210025841j:plain:w200

開発環境の構築がまだの方は、先にこちらの構築手順を参考にして開発環境をセットアップしましょう
blog.atsushisz.jp

はじめて HoloLens 2 のアプリを開発する方は、まずこちらの手順で Hand Interaction Examples を開発して基本的な手順を確認することをお勧めします
blog.atsushisz.jp

それでは頑張って作っていきましょう!

アセットパックのダウンロード

まず、必要なアセットパックをダウンロードしましょう

GitHub にアクセスして以下のアセットパックをダウンロードしてください
Hand Interaction Examples を開発する際に既にダウンロード済みの場合はそのまま使用できます
github.com
Microsoft.MixedReality.Toolkit.Unity.Foundation.2.2.0.unitypackage
f:id:atsushisz:20200210030309j:plain:w400

Azure Speech SDK のアセットパックをダウンロードしてください
Microsoft.CognitiveServices.Speech.1.9.0.unitypackage
https://aka.ms/csspeech/unitypackage

Lunarcom Package という Speech SDK 用のアセットパックをダウンロードしてください
SpeechSDKAssets.unitypackage
https://github.com/microsoft/MixedRealityLearning/releases/tag/Speech_2
f:id:atsushisz:20200210030638j:plain:w400

新しい Unity プロジェクトを作成

Unity で新規のプロジェクトを作っていきましょう

Unity Hub を起動してください
プロジェクトタブで右上の[新規作成]ボタンをクリックしてください
f:id:atsushisz:20191221031610p:plain:w400

※Unityを複数バージョンインストールしている場合はドロップダウンリストから[2018.4.12f1]を選択してください

テンプレートで[3D]を選択、プロジェクト名に任意の名前を入力、保存先を指定したら[作成]をクリックしてください
僕はプロジェクト名を「MRSpeechTranslator」という名前にしました
ここで指定したプロジェクト名は後半の手順でも使うのでわかりやすい名前にしておきましょう
f:id:atsushisz:20200210030857j:plain:w400

少し待つと Unity エディターが起動します

プロジェクトを構成

HoloLens 2 用に Unity プロジェクトを設定していきます

[File]>[Build Settings...]をクリックしてください
f:id:atsushisz:20200210031154j:plain:w400

[Universal Windows Platform]を選択して[Switch Platform]をクリックしてください
f:id:atsushisz:20191221031626p:plain:w400

これで設定できました
Build Settings のウインドウは右上の[X](閉じる)ボタンで閉じておきましょう

Mixed Reality Took Kit アセットパックをインポート

GitHub からダウンロードしたアセットパックをインポートしていきます

[Assets]>[Import Package]>[Custom Package...]をクリックしてください
f:id:atsushisz:20200210031523j:plain:w400

GitHubからダウンロードした Microsoft.MixedReality.Toolkit.Unity.Foundation.2.2.0.unitypackage のアセットパックを選択して[開く(O)]をクリックしてください
f:id:atsushisz:20191221031643p:plain:w400

全ての項目のチェックがオンになっていることを確認して[Import]をクリックしてください
f:id:atsushisz:20191221031647p:plain:w400

インポート中に「MRTK Project Configurator」というウインドウが表示されます
f:id:atsushisz:20191221031650p:plain:w400
インポートが終わってプログレスバーが表示されなくなったら[Apply]をクリックしてください
f:id:atsushisz:20191221031654p:plain:w400

Azure Speech SDK アセットパックをインポート

ダウンロードした Azure Speech SDK のアセットパックをインポートしていきます

[Assets]>[Import Package]>[Custom Package...]をクリックしてください
f:id:atsushisz:20200210031523j:plain:w400

ダウンロードした Microsoft.CognitiveServices.Speech.1.9.0.unitypackage のアセットパックを選択して[開く(O)]をクリックしてください
f:id:atsushisz:20200210032241j:plain:w400

全ての項目のチェックがオンになっていることを確認して[Import]をクリックしてください
f:id:atsushisz:20200210032428j:plain:w300

Lunarcom Package アセットパックをインポート

ダウンロードした Lunarcom Package のアセットパックをインポートしていきます

[Assets]>[Import Package]>[Custom Package...]をクリックしてください
f:id:atsushisz:20200210031523j:plain:w400

ダウンロードした SpeechSDKAssets.unitypackage のアセットパックを選択して[開く(O)]をクリックしてください
f:id:atsushisz:20200210032826j:plain:w400

全ての項目のチェックがオンになっていることを確認して[Import]をクリックしてください
f:id:atsushisz:20200210032956j:plain:w300

Mixed Reality Toolkit (MRTK) を構成

ツールバーから、[Mixed Reality Toolkit]>[Add to Scene and Configure...]をクリックしてください
f:id:atsushisz:20200210033914j:plain:w400

Select MixedRealityToolkitConfigurationProfile のポップアップが表示されたら[DefaultHoloLens2ConfigurationProfile]をダブルクリックしてください
ポップアップが表示されない場合は Hierarchy ウインドウから[MixedRealityToolkit]オブジェクトを選択して Inspector ウインドウの[Mixed Reality Toolkit (Script)]コンポーネントのドロップダウンリストで[DefaultHoloLens2ConfigurationProfile]を選択してください
f:id:atsushisz:20200210033918j:plain:w700

[File]>[Save As...]をクリックしてください
f:id:atsushisz:20200210033921j:plain:w400

「Scene」フォルダーを選択して任意の名前でシーンを保存してください
僕はSpeechSceneという名前にしました
f:id:atsushisz:20200210033925j:plain:w400

Hierarchy ウインドウから[MixedRealityToolkit]オブジェクトを選択して Inspector ウインドウの[Mixed Reality Toolkit (Script)]コンポーネントの[Copy&Customize]ボタンをクリックしてください
f:id:atsushisz:20200210042153j:plain:w400

Clone Profile ポップアップが表示されたら「Profile Name」に任意の名前を付けて[Clone]ボタンをクリックしてください
僕は「CustomHoloLens2ConfigurationProfile」という名前にしました
f:id:atsushisz:20200210042159j:plain:w400

Inspector ウインドウで[Diagnostics]を選択して[Enable Diagnostics System]のチェックをオフにしてください
f:id:atsushisz:20200210042203j:plain:w400

Inspector ウインドウで[Input]を選択して[Clone]ボタンをクリックしてください
f:id:atsushisz:20200210042908j:plain:w400

Clone Profile ポップアップが表示されたら「Profile Name」に任意の名前を付けて[Clone]ボタンをクリックしてください
僕は「CustomHoloLens2InputSystemProfile」という名前にしました
f:id:atsushisz:20200210042911j:plain:w400

Inspector ウインドウの[Input]>[Speech]セクションを展開して[Clone]ボタンをクリックしてください
f:id:atsushisz:20200210043758j:plain:w400

Clone Profile ポップアップが表示されたら「Profile Name」に任意の名前を付けて[Clone]ボタンをクリックしてください
僕は「CustomMixedRealitySpeechCommandsProfile」という名前にしました
f:id:atsushisz:20200210043802j:plain:w400

[Input]>[Speech]セクションの[General Setting]で Start Behavior を[Manual Start]に変更してください
f:id:atsushisz:20200210043940j:plain:w400

Lunarcom を構成

Project ウインドウで[Lunarcom]フォルダーを展開して[Lunarcom_Base]prefab を Hierarchy ウインドウにドラッグしてください
f:id:atsushisz:20200210044449j:plain:w400

Hierarchy ウインドウのLunarcom_Baseオブジェクトを選択して Inspector ウインドウの「Transform」を以下のように設定してください

項目 X Y Z
Position 0 0 0
Rotation 0 0 0
Scale 0.008 0.008 0.01

f:id:atsushisz:20200210044455j:plain:w400

[Add Component]をクリックして「Lunarcom Controller」を検索してクリックして追加してください
f:id:atsushisz:20200210044804j:plain:w400

ブラウザーでCognitive Services を試すを開いて[Speech API]タブで[API キーの取得]ボタンをクリックしてください
f:id:atsushisz:20200210045431j:plain:w400

「7 日間の使用期間」の[ご利用ください]ボタンをクリックしてください
f:id:atsushisz:20200210045434j:plain:w400

使用条件を確認後、「国/地域」で[日本]を選択して[次へ]をクリックしてください f:id:atsushisz:20200210045438j:plain:w400

サインインして API キーを取得してください
f:id:atsushisz:20200210045442j:plain:w400

Unity に戻って Hierarchy ウインドウの[Lunarcom_Base]オブジェクトを選択してInspectorウインドウの[LunarcomController]>[SpeechSDKCredentials]セクションに先ほど取得した「Speech Service API Key」と「Speech Service Region」を入力してください
f:id:atsushisz:20200210050925j:plain:w400

Hierarchy ウインドウで下記のように[Lunarcom_Base]>[Terminal]と展開してください
f:id:atsushisz:20200210051117j:plain:w400

[Lunarcom_Base]が選択された状態で、下記のように[Lunarcom Text][Terminal][Connection Light]の三つのオブジェクトをInspectorウインドウの[LunarcomController]>[ObjectReference]セクションにドラッグしてください
f:id:atsushisz:20200210051744j:plain:w700

Inspector ウインドウの[LunarcomButton]セクションを展開して「Size」を[3]に変更して「Enter」キーをタイプしてください
f:id:atsushisz:20200210052612j:plain:w400

Hierarchy ウインドウの[LunarcomButton]オブジェクトを展開して下記のように[Mic][Satellite][Rocket]の三つのオブジェクトをInspector ウインドウの[LunarcomController]>[LunarcomButton]セクションにドラッグしてください
f:id:atsushisz:20200210052615j:plain:w700

Hierarchy ウインドウの[Lunarcom_Base]オブジェクトが選択された状態で、Inspector ウインドウの[Add Component]をクリックして「Lunarcom Speech Recognizer」を検索してクリックして追加してください
f:id:atsushisz:20200210053125j:plain:w400

同じく「Lunarcom Wake Word Recognizer」を検索してクリックして追加してください
f:id:atsushisz:20200210053129j:plain:w400

Wake Wordスロットに「Activate Terminal」、Dismiss Wordスロットに「Dismiss Terminal」と入力してください
f:id:atsushisz:20200210053309j:plain:w400

Hierarchy ウインドウの[Lunarcom_Base]オブジェクトが選択された状態で、Inspector ウインドウの[Add Component]をクリックして「Lunarcom Translation Recognizer」を検索してクリックして追加してください
f:id:atsushisz:20200210053640j:plain:w400

デフォルトでは、入力言語は英語、出力言語はロシア語、ドイツ語、中国語から選択できるようになっています
この言語で進める場合は、Inspectorウインドウの[Lunarcom Translation Recognizer]>[Target Language]で出力言語を選択した後で、次の「言語の変更」のステップはスキップして「アプリケーションのビルド」に進んでください
f:id:atsushisz:20200210053946j:plain:w400

言語を変更する場合は、次のステップの「言語の変更」に進んでください

言語の変更

Inspector ウインドウで[Lunarcom Speech Recognizer]のScriptをダブルクリックして Visual Studio で開いてください
f:id:atsushisz:20200210054404j:plain:w400
ここでは音声認識の入力言語が変更できます

「LunarcomSpeechRecognizer.cs」の14行目
private string fromLanguage = "en-US";
を認識させたい言語に変更してください
たとえば日本語にする場合はこのようになります
private string fromLanguage = "ja-JP";
f:id:atsushisz:20200210062724j:plain:w700

使用可能な言語は、音声サービスの言語とリージョンのサポートのページを参照してください

Inspectorウインドウの[Lunarcom Translation Recognizer]のScriptをダブルクリックして Visual Studio で開いてください
f:id:atsushisz:20200210054850j:plain:w400
ここでは音声翻訳の入力・出力言語が変更できます

入力言語を変更する場合は「LunarcomTranslationRecognizer.cs」の18行目
private string fromLanguage = "en-US";
を認識させたい言語に変更してください
変更方法は音声認識の場合と同じです
f:id:atsushisz:20200210062728j:plain:w700

出力言語を変更する場合は「LunarcomTranslationRecognizer.cs」の38行目のswitch(TargetLanguage)のcaseを追加してください
たとえば、英語を追加する場合は
case TranslateToLanguage.English:
toLanguage = "en-US";
break;
となります
f:id:atsushisz:20200210055958j:plain:w400

追加したらLunarcomController.csの7行目
public enum TranslateToLanguage { Russian, German, Chinese };
に追加した言語の定義を追記してください
たとえば、英語を追加する場合は
public enum TranslateToLanguage { Russian, German, Chinese, English };
となります
f:id:atsushisz:20200210060002j:plain:w400

Unityに戻って Inspector ウインドウの[Lunarcom Translation Recognizer]>[Target Language]で出力言語を選択してください
f:id:atsushisz:20200210060735j:plain:w400

アプリケーションのビルド

[File]>[Save]でシーンを保存してください
f:id:atsushisz:20200210061006j:plain:w300

[File]>[Build Settings...]をクリックしてください
f:id:atsushisz:20200210061010j:plain:w300

[Add Open Scenes]ボタンをクリックしてシーンを追加してください
f:id:atsushisz:20200210061746j:plain:w400

[Player Settings]をクリックしてください
f:id:atsushisz:20200210061750j:plain:w400

[Publishing Settings]を展開して[Capabilities]セクションの以下の項目のチェックをオンにしてください
・InternetClient
・InternetClientServer
・PrivateNetworkClientServer
・Microphone
・SpatialParception
f:id:atsushisz:20200210061734j:plain:w400

[Build]ボタンをクリックしてください
f:id:atsushisz:20200210061739j:plain:w400

フォルダーの選択画面が表示されるので、「App」という名前の新しいフォルダーを作成して[フォルダーの選択]ボタンをクリックしてください
※フォルダー名は任意です
f:id:atsushisz:20200210061742j:plain:w400

マシンのスペックにもよりますが、ビルドに時間がかかるので一息ついて待ちましょう

ビルドが終わるとエクスプローラーが表示されます
ビルドの際に作成した[App]フォルダーを開いて、Unity プロジェクト作成時に指定したファイル名のソリューションファイル(.sln)をダブロクリックして Visual Studio 2019 で開いてください
僕は Unity のプロジェクト名を「MRSpeechTranslator」にしたので、「MRSpeechTranslator.sln」というファイルを開きます
f:id:atsushisz:20200210061957j:plain:w400

ファイルを開くと少しの間バックグラウンドタスクが実行されます
左下のアイコンのアニメーションが止まるまで少し待ちましょう
アイコンをクリックすると進捗がプログレスバーでわかります
f:id:atsushisz:20191221031739p:plain:w400

ソリューションエクスプローラーでソリューションを右クリックして、[プロパティ(R)]をクリックしてください
f:id:atsushisz:20200210062650j:plain:w400

[シングルスタートアップ プロジェクト(S)]が選択されていて、プロジェクト名が Unity プロジェクト作成時に指定したプロジェクト名になっていることを確認してください
もし違う場合は上記の通り修正して[OK]をクリックしてください
f:id:atsushisz:20200210062655j:plain:w400

構成を[Release]ターゲットプラットフォームを[ARM]緑色の矢印のターゲットを[Device]に指定してください
f:id:atsushisz:20191221031754p:plain:w400

デバイスへの配置

アプリをビルドして HoloLens 2 に配置します
HoloLens 2 の電源を入れて USB-C ケーブルで PC に接続してください

[デバッグ]>[デバッグなしで開始(H)]をクリックしてください
f:id:atsushisz:20200210062659j:plain:w400

初めて HoloLens 2 にアプリを配置する際にはペアリングが必要です
ビルドが終わって PIN の入力画面が表示されたら HoloLens 2 で PIN を確認しましょう
f:id:atsushisz:20191221031803p:plain:w300

HoloLens 2 で[設定]アプリを起動してください
[更新とセキュリティ]>[開発者向け]を開いて[ペアリング]をタップしてください
f:id:atsushisz:20191221031807p:plain:w400

PIN が表示されたら Visual Studio のウインドウに入力して[OK]をクリックしてください
f:id:atsushisz:20191221031811p:plain:w300

これで HoloLens 2 に配置されてアプリが起動します
アプリが起動したらマイクの使用を許可してください
Wake Wordに指定した「Activate Terminal」と言うとウインドウが表示されます
左のマイクボタンで音声入力、右の衛星ボタンで翻訳ができます

これでアプリは完成です
いろいろな言語で翻訳を試してみてください

今回は音声認識と翻訳のサンプルをビルドして HoloLens 2 で実行しました

それでは、今回もお読みいただきありがとうございました

Azure Daikanyama Base で ハンズオンセミナーを開催しました!

ブログをご覧いただきありがとうございます。

先日、マイクロソフトの公式コワーキングスペース Azure Daikanyama Base で Office 365 の トライアル申請と、Dynamics 365 Guides / Remote Assist の環境構築のハンズオンセミナーを開催しました。
f:id:atsushisz:20200208022337j:plain:w250

セミナーで使用したテキストを公開します。
Office 365 のトライアル手順は弊社 O365 製品技術担当さんの作成です。HoloLens を使用しない場合はこの手順書だけでも使えます。
iPhoneやAndroidで動かすことができるRemote Assost for Mobileのインストール手順も記載してあるので、HoloLensをお持ちじゃない方も、Remote Assistを試すことができます。

ぜひご活用ください。

Office 365無料トライアル登録手順書

Dynamics 365 Guides セットアップガイド

Dynamics 365 Remote Assist セットアップガイド

そして、Azure Daikanyama Base はイベント開催時以外は有効な Azure アカウントをお持ちのお客様・パートナー様にコワーキングスペースとしてご利用いただけます。
オープン日程は Web で公開しているのでこちらもご覧ください。
Azure Daikanyama Base
f:id:atsushisz:20200208021249j:plain:w300

Dynamics 365 Guides の新機能 とアップデート方法

今日もブログをご覧いただきありがとうございます!!

Dynamics 365 Guides の新機能がリリースされました。
今回は新機能の概要とアップデート手順を解説していきたいと思います。
f:id:atsushisz:20200129230323j:plain

目次

Dynamics 365 Guides とは?

Dynamics 365 Guides は、HoloLens 1 / HoloLens 2 用の アプリケーションです。
実機に作業手順を重ねて表示をしたり、ホログラフィックで機材を表示することで、いつでも作業の流れを学ぶことができます。
作業ステップごとの所要時間がPower BIのレポートに自動的に集計されるので、自分の習得度合いを見直したりマネージャーが分析をするのにも役立ちます。
f:id:atsushisz:20200129230327j:plain
Guides の詳しい説明はこちらをご覧ください。

2020年1月リリースで提供される新機能

下記の5つの機能が新しく追加されました

  • PC アプリの[ヘルプ]メニューの追加リソース
  • Auther (ガイドの作成者)と Operator (作業者)のロールをユーザーに割り当てる
  • PC アプリ ギャラリーへの複数のファイルのドラッグ アンド ドロップ
  • HoloLens 2 における作成者向けの直感的な対話
  • HoloLens アプリから Web サイトを開く

一つずつ見ていきましょう。

PC アプリの[ヘルプ]メニューの追加リソース
PC の Guides アプリの右上の「?」ボタンをクリックすると新たに下記の情報が表示されるようになりました。
- ハウ ツー ビデオ : ブラウザーで Guides のビデオチュートリアルが開きます
- コミュニティーに質問する : ブラウザーで Dynamics 365 Community の Guides のページが開きます
- サポートへの問い合わせ : サポートコンタクト先のページ (US) が開きます
f:id:atsushisz:20200129230330j:plain

オペレーターと作成者のロールをユーザーに割り当てる
今まで Guides のアクセス権を与えると、Auther (ガイドの作成者)と Operator (作業者)の両方が出来ていましたが、この二つをユーザーごとに分けて設定することができるようになりました。
f:id:atsushisz:20200130000413j:plain

PC アプリ ギャラリーへの複数のファイルのドラッグ アンド ドロップ
PC の Guides アプリで 3D パーツ、画像、ビデオ などを複数のファイルまとめてドラッグアンドドロップでインポートできるようになりました。
f:id:atsushisz:20200129230339j:plain

HoloLens 2 における作成者向けの直感的な対話
HoloLens 2 を使用している場合、Auther 画面でグラブやハンドレイによる操作が可能になります。
Operator 画面の操作は従来と同じです。
Gaze による選択は Auther 画面 / Operator 画面ともに従来通り使用可能です。アイトラッキングには対応していません。

HoloLens アプリから Web サイトを開く
ガイドの各ステップに Web サイトのリンクを埋め込むことができます。
Operator がリンクをクリックするとブラウザーが起動してページが表示されます。

更新方法

2020年1月リリースの更新を行うためには、
「PC の Guides アプリの更新(303.2001.21001.0)」
「HoloLens の Guides アプリの更新(303.2001.21001.0)」
「Guides ソリューションのアップグレード (300.0.3.137)」
が必要です。

PC の Guides アプリの更新手順
1. PC で Microsoft Store アプリを起動
2. 右上の「・・・」ボタンから「ダウンロードと更新」をクリック
f:id:atsushisz:20200129230343j:plain
3. Dynamics 365 Guides を更新
4. アプリを起動してサインイン後に「設定」ボタンをクリックして、アプリバージョンが 303.2001.21001.0 になっていることを確認

HoloLens の Guides アプリの更新
1. HoloLens で Microsoft Store アプリを起動
2. 右上の「・・・」ボタンから「ダウンロードと更新」をタップ
3. Dynamics 365 Guides を更新
4. アプリを起動してサインイン後に「設定」ボタンをタップして、アプリバージョンが 303.2001.21001.0 になっていることを確認

Guides ソリューションのアップグレード
1. Power Platform 管理センターに移動して Dynamics 365 Guides の管理者権限を持つユーザーでサインインしてください。
2. 更新する環境のチェックマークを選択してください。
f:id:atsushisz:20200129230348j:plain
3. 「・・・」ボタン(環境に関するその他のアクション)で「ソリューションの管理」をクリックしてください。
f:id:atsushisz:20200129230351j:plain
4. ソリューション名の一覧からDynamics 365 Guides を選択して、右側の「アップグレードボタン」をクリックしてください。
(クリック後少し無反応なことがありますが連打せずに待ちましょう)
f:id:atsushisz:20200129230355j:plain
5. サービス利用規約を確認して、「アップグレード」ボタンをクリックしてください。
f:id:atsushisz:20200129230246j:plain
6. ソリューションの状態が「インストール保留中」に変わり、しばらく待っていると「インストール済み」になります。
f:id:atsushisz:20200129230251j:plain
これで更新は完了です。

Auther と Operator の権限の設定方法

  1. Power Platform 管理センターに移動して Dynamics 365 Guides の管理者権限を持つユーザーでサインインしてください。
  2. 更新する環境のチェックマークを選択してください。
  3. 「・・・」ボタン(環境に関するその他のアクション)で「設定」をクリックしてください。
    f:id:atsushisz:20200129230256j:plain
  4. 「ユーザーとアクセス許可」を展開して、「ユーザー」をクリックしてください。
    f:id:atsushisz:20200129230301j:plain
  5. 権限を設定するユーザーのチェックボックスをチェックして、「MANAGE ROLES」をクリックしてください。
    f:id:atsushisz:20200130000418j:plain
  6. Auther または Operator のチェックボックスをチェックして「OK」ボタンをクリックしてください。
    (Operator にチェックした場合は、Operator 画面のみアクセスできます。Auther にチェックした場合は、Auther 画面と Operator 画面の両方にアクセスできます。)
    f:id:atsushisz:20200130000512j:plain

ガイドへの Web サイトリンクの設定方法

  1. PC の Guides アプリで新しいガイドを作成するか、既存のガイドを開いてください。
  2. リンクを追加するステップを表示してください。
  3. 「アクション」タブの Web サイトのリンクをステップカード右下のアクションにドラッグしてください。
    f:id:atsushisz:20200129230314j:plain
  4. Webサイトの URL を入力して「保存」ボタンをクリックしてください。
    f:id:atsushisz:20200129230319j:plain

今回は Dynamics 365 Guides の 2020年1月リリースの新機能と設定方法を解説しました。
今回のアップデートでは、特に Auther / Operator 権限の割り当てと、Web サイトのリンクを開く機能は有効に活用できると思います。
例えば、IoT Central や Power BI のダッシュボードを表示することができるようになるので、リアルタイムにデータを見ながら作業をするシーンが考えられます。アップデートして新機能を体験してみてください!!

それでは、今回もお読みいただきありがとうございました。

【ビギナー向け】MRTK v2.2.0 がリリースされたので Examples をビルドしてみました

今日もブログをご覧いただきありがとうございます!!

今回は MRTK v2.2.0 のサンプルをビルドして HoloLens 2 や Unity で動かしてみたいと思います。
f:id:atsushisz:20191217201134p:plain

これから HoloLens 2 の開発を始めようという方は参考にしてみてください!
HoloLens 2 が手元になくても Unity で動かすところまではできます。
既に HoloLens 1、HoloLens 2 の開発をしている方にはおなじみの手順ですね。

開発環境の構築がまだの方は、先にこちらの構築手順を参考にして開発環境をセットアップしましょう。
blog.atsushisz.jp

ちょっと長いけど頑張って作っていきましょう!

目次

アセットパックのダウンロード

まず、MRTK v2.2.0 のアセットパックをダウンロードしましょう

GitHub にアクセスして以下のアセットパックをダウンロードしてください
github.com

Microsoft.MixedReality.Toolkit.Unity.Examples.2.2.0.unitypackage
Microsoft.MixedReality.Toolkit.Unity.Foundation.2.2.0.unitypackage
f:id:atsushisz:20191221031606p:plain:w400

新しい Unity プロジェクトを作成

Unity で新規のプロジェクトを作っていきましょう
ここで指定したプロジェクト名は後半の手順でも使うのでわかりやすい名前にしておいてください

Unity Hub を起動してください
プロジェクトタブで右上の[新規作成]ボタンをクリックしてください
f:id:atsushisz:20191221031610p:plain:w400

※Unityを複数バージョンインストールしている場合はドロップダウンリストから[2018.4.12f1]を選択してください

テンプレートで[3D]を選択、プロジェクト名に任意の名前を入力、保存先を指定したら[作成]をクリックしてください
僕はプロジェクト名を「MRTKv2Examples」という名前にしました
f:id:atsushisz:20191221031614p:plain:w400
Unity を初めて起動する場合、ファイアウォールの警告が表示される場合があります
[アクセス許可する(A)]をクリックして Unity に通信を許可してください
f:id:atsushisz:20191221031618p:plain:w400

少し待つと Unity エディターが起動します

プロジェクトを構成

HoloLens 2 用に Unity プロジェクトを設定していきます

[File]>[Build Settings...]をクリックしてください
f:id:atsushisz:20191221031622p:plain:w400

[Universal Windows Platform]を選択して[Switch Platform]をクリックしてください
f:id:atsushisz:20191221031626p:plain:w400

[Player Settings...]をクリックしてください
f:id:atsushisz:20191221031631p:plain:w400

インスペクターウィンドウ (Inspector) の[XR Settings]で[Virtual Reality Supported]のチェックをオンにしてください
[Enable Depth Buffer Sharing]のチェックを外してください
[Stereo Rendering Mode*]のドロップダウンリストから[Single Pass Instanced]を選択してください
f:id:atsushisz:20191221031635p:plain:w400

これで設定できました
Build Settings のウインドウは右上の[X](閉じる)ボタンで閉じておきましょう

Mixed Reality Took Kit アセットパックをインポート

GitHub からダウンロードしたアセットパックをインポートしていきます

[Assets]>[Import Package]>[Custom Package...]をクリックしてください
f:id:atsushisz:20191221031639p:plain:w400

GitHubからダウンロードした Microsoft.MixedReality.Toolkit.Unity.Foundation.2.2.0.unitypackage のアセットパックを選択して[開く(O)]をクリックしてください
f:id:atsushisz:20191221031643p:plain:w400

全ての項目のチェックがオンになっていることを確認して[Import]をクリックしてください
f:id:atsushisz:20191221031647p:plain:w400

インポート中に「MRTK Project Configurator」というウインドウが表示されます
f:id:atsushisz:20191221031650p:plain:w400
インポートが終わってプログレスバーが表示されなくなったら[Apply]をクリックしてください
f:id:atsushisz:20191221031654p:plain:w400

Examples アセットパックをインポート

GitHub からダウンロードしたサンプルのアセットパックをインポートしていきます

[Assets]>[Import Package]>[Custom Package...]をクリックしてください
f:id:atsushisz:20191221031658p:plain:w400

GitHubからダウンロードした Microsoft.MixedReality.Toolkit.Unity.Examples.2.2.0.unitypackage のアセットパックを選択して[開く(O)]をクリックしてください
f:id:atsushisz:20191221031702p:plain:w400

全ての項目のチェックがオンになっていることを確認して[Import]をクリックしてください
f:id:atsushisz:20191221031706p:plain:w400

シーンを開く

今回はハンドインタラクションのサンプルシーンを使用します
他にも様々なサンプルシーンが用意されているので試してみてください

プロジェクトウインドウ (Project) で [Assets]>[MixedRealityToolKit.Examples]>[Demos]>[HandTracking]>[Scenes]>[HandInteractionExamples]をダブルクリックしてシーンを開いてください
f:id:atsushisz:20191221031710p:plain:w400

[Import TMP Essentials]ボタンをクリックしてください
f:id:atsushisz:20191221031715p:plain:w400

インポートが終わったら TMP Importer のウインドウは右上の[X](閉じる)ボタンで閉じておきましょう

Unityでテスト

ハンドインタラクションのサンプルシーンを Unity で試してみましょう
HoloLens 2 の実機がなくても一通りの動きは確認できます

[Play]ボタンを押すとゲームビューにハンドインタラクションの画面が表示されます
f:id:atsushisz:20191221031719p:plain:w400

キーボードとマウスを使用して以下のように操作ができます

【シーン内の移動】

操作 キー 説明
カメラ前後左右移動 f:id:atsushisz:20191221171755p:plain:w150 W / A / S / D キーを使用してカメラを 前方 / 左 / 後ろ / 右 に移動
カメラ上下移動 f:id:atsushisz:20191221171759p:plain:w150 Q / E を使用してカメラを垂直方向に移動
カメラ回転 f:id:atsushisz:20191221171803p:plain:w150 マウスの右ボタンを押したままにしてカメラを回転

【手の入力をシミュレート】

操作 キー 説明
右手の有効化 f:id:atsushisz:20191221171806p:plain:w150 スペースバーを長押しすると右手が有効になります
手を動かす f:id:atsushisz:20191221171810p:plain:w150 スペースバーを押したままマウスを動かして手を動かします
奥行方向に手を動かす f:id:atsushisz:20191221171814p:plain:w150 マウスのスクロールホイールを使用して、手の奥行きを調整します
ピンチジェスチャ f:id:atsushisz:20191221171818p:plain:w150 マウスの左ボタンクリックでピンチジェスチャを行います
手を常時表示 f:id:atsushisz:20191221171822p:plain:w150 T / Yキーで手が常時表示されます
手を回転 f:id:atsushisz:20191221171826p:plain:w150 Ctrl キーを押しながらマウスを動かして手を回転させます

アプリケーションのビルド

アプリをビルドして Visual Studio のソリューションを作成していきます
ここからの手順では Unity のプロジェクト名、Visual Studio のソリューション名、Visual Studio のプロジェクト名 が出てきます
同じ名前なので紛らわしいですが、スクリーンショットを見ながら設定個所を確認してください

[File]>[Build Settings...]をクリックしてください
f:id:atsushisz:20191221031723p:plain:w400

[Add Open Scene]をクリックしてシーンを追加してください
f:id:atsushisz:20191221031727p:plain:w400

[Build]ボタンをクリックすると、フォルダーの選択画面が表示されます
「App」という名前の新しいフォルダーを作成して[フォルダーの選択]ボタンをクリックしてください
※フォルダー名は任意です
f:id:atsushisz:20191221031731p:plain:w400

マシンのスペックにもよりますが、ビルドに時間がかかるので一息ついて待ちましょう

ビルドが終わるとエクスプローラーが表示されます
ビルドの際に作成した[App]フォルダーを開いて、Unity プロジェクト作成時に指定したファイル名のソリューションファイル(.sln)をダブロクリックして Visual Studio 2019 で開いてください
僕は Unity のプロジェクト名を「MRTKv2Examples」にしたので、「MRTKv2Examples.sln」というファイルを開きます
f:id:atsushisz:20191221031735p:plain:w400

ファイルを開くと少しの間バックグラウンドタスクが実行されます
左下のアイコンのアニメーションが止まるまで少し待ちましょう
アイコンをクリックすると進捗がプログレスバーでわかります
f:id:atsushisz:20191221031739p:plain:w400

ソリューションエクスプローラーでソリューションを右クリックして、[プロパティ(R)]をクリックしてください
f:id:atsushisz:20191221031745p:plain:w400

[シングルスタートアップ プロジェクト(S)]が選択されていて、プロジェクト名が Unity プロジェクト作成時に指定したプロジェクト名になっていることを確認してください
もし違う場合は上記の通り修正して[OK]をクリックしてください
f:id:atsushisz:20191221031750p:plain:w400

構成を[Release]ターゲットプラットフォームを[ARM]緑色の矢印のターゲットを[Device]に指定してください
f:id:atsushisz:20191221031754p:plain:w400

デバイスへの配置

アプリをビルドして HoloLens 2 に配置します
HoloLens 2 の電源を入れて USB-C ケーブルで PC に接続してください

[デバッグ]>[デバッグなしで開始(H)]をクリックしてください
f:id:atsushisz:20191221031758p:plain:w400

初めて HoloLens 2 にアプリを配置する際にはペアリングが必要です
ビルドが終わって PIN の入力画面が表示されたら HoloLens 2 で PIN を確認しましょう
f:id:atsushisz:20191221031803p:plain:w300

HoloLens 2 で[設定]アプリを起動してください
[更新とセキュリティ]>[開発者向け]を開いて[ペアリング]をタップしてください
f:id:atsushisz:20191221031807p:plain:w400

PIN が表示されたら Visual Studio のウインドウに入力して[OK]をクリックしてください
f:id:atsushisz:20191221031811p:plain:w300

これで HoloLens 2 に配置されてアプリが起動します
アプリが起動したらUSBケーブルを抜いても大丈夫なのでいろいろなハンドインタラクションを試してみましょう!!

ハンドインタラクションのコントロールの説明はこちらを参考にしてください
hololabinc.github.io

今回はサンプルをビルドして HoloLens 2 で実行しました
サンプルに含まれている他のシーンもいろいろと試してみてください!

それでは、今回もお読みいただきありがとうございました。

【ビギナー向け】初めての HoloLens 2 アプリ開発環境の準備

今日もブログをご覧いただきありがとうございます!!

HoloLens 2 のアプリ開発を行うための SDK、Mixed Reality Toolkit v2.2.0 (MRTK v2.2.0) がリリースされましたね。
f:id:atsushisz:20191217201134p:plain
これから HoloLens 2 の開発を始めようという方のために、基本的な開発環境の準備方法をまとめました。
HoloLens 1 のころから開発している方にはおなじみの環境ですが、初めての方にはどのコンポーネントを使用するか悩むこともあると思うので参考にしてみてください。 この環境で、MRTK v2.2.0 の Examples をビルドして HoloLens 2 や Unity 上で動かせるようになります。

※ 公式サイトのインストール手順には各ツールごとの注意点も記載されているので、このブログに記載した手順を始める前にこちらも一度目を通しておいてください。
docs.microsoft.com

目次

Windows 10 の準備

HoloLens 2 のアプリ開発には Windows 10 搭載の PC が必要です
[設定]>[更新とセキュリティ]>[Windows Update]で最新バージョンにアップデートしましょう
開発者モードを有効にしていない場合は、
[設定]>[更新とセキュリティ]>[開発者向け]から「開発者モード」を選択して有効にしておいてください

HoloLens 2 の準備

HoloLens 2 も最初に
[設定]>[更新とセキュリティ]>[Windows Update]で最新バージョンにアップデートしておきましょう
開発者モードを有効にしていない場合は、
[設定]>[更新とセキュリティ]>[開発者向け]から「開発者向け機能」をオンにしてください

Visual Studio 2019 のインストール

まず Visual Studio 2019 (16.2 以降) をインストールしましょう
visualstudio.microsoft.com

無料版の Community でも、有料版の Professional / Enterprise でも開発できます

ここでは無料版の Community を使った手順を記載しておきます (Professional / Enterprise でも手順は同じです)

こちらのサイトから Visual Studio のインストーラーをダウンロードしてインストーラーを起動してください
visualstudio.microsoft.com

初めて Visual Studio をインストールする PC の場合は、インストーラーの更新が必要な場合があるので、画面の指示に従って更新してください f:id:atsushisz:20191217223428p:plain
再起動が必要な場合は再起動後にもう一度インストーラーを起動してください

ワークロードの選択画面が表示されたら以下の指定をします
- [ユニバーサルWindowsプラットフォーム開発]のチェックを付ける
- インストールの詳細で[C++ (v142)ユニバーサルWindowsプラットフォーム ツール]のチェックを付ける
f:id:atsushisz:20191217223609p:plain

[インストール]をクリックしてインストールを開始してください

インストールが完了すると自動的に Visual Studio が起動してきます
サインイン画面が表示されるのでマイクロソフトアカウントをお持ちの方はサインインしてください
[後で行う]をクリックしていったんスキップしても大丈夫です
f:id:atsushisz:20191217223436p:plain

開発設定は[全般]でいいと思います
配色テーマはお好みで選択して、[Visual Studio の開始(S)]をクリックしてください
f:id:atsushisz:20191217223441p:plain
Visual Studio 2019 のウインドウが表示されたらインストール完了です

Unity のインストール

つぎに Unity をインストールします
unity.com

Unity は用途や企業の規模に応じて必要なライセンスが異なるので、適切なライセンスを選択して使用するように注意しましょう
ゲームやモバイルアプリのクロスプラットフォーム開発用の強力な 2D、3D、VR、AR ソフトウェア。

PC のストレージの空きに余裕があれば Unity Hub をインストールしておくことをお勧めします
Web で様々なサンプルが公開されていますが、Unity のバージョンが異なると動かないことがあるので、Unity Hub を使用すればサンプルに合わせたバージョンの Unity をインストールして使用することができます

バージョン互換を自分で直せる方や、ストレージの空きが少ない方は、MRTK v2.2.0 で推奨されている Unity 2018.4.x をインストールしましょう
2019/12/11 時点で LTS(長期サポート) の Unity 2018.4.14f1 がリリースされています
unity3d.com

ここでは Unity Hub のインストール手順を記載しておきます
こちらのサイトから Unity Hub をダウンロードしてインストーラーを起動してください
unity3d.com

ライセンス条件を確認して[同意する(A)]をクリックしてください
f:id:atsushisz:20191217223445p:plain
インストール先はデフォルトのまま[インストール]をクリックしてください
f:id:atsushisz:20191217223451p:plain
インストールが完了したら[Unity Hubを実行]にチェックを入れたまま[完了]をクリックしてください
f:id:atsushisz:20191217223455p:plain

ファイアウォールの警告が表示されるので[アクセス許可する(A)]をクリックして Unity Hub に通信を許可してください
f:id:atsushisz:20191217223459p:plain

初めて Unity Hub を起動すると「有効なライセンスがありません」と表示されると思います
[ライセンスを管理]をクリックしてライセンスを持ったアカウントでログインするか、新規ライセンスの認証を行ってください
f:id:atsushisz:20191217223504p:plain

ライセンス認証が完了したら[インストール]タブの[インストール]ボタンをクリックしてください
今回は MRTK v2.2.0 で推奨している Unity 2018.4.14f1 をインストールしていきます
f:id:atsushisz:20191220115952p:plain

「Unity バージョンを選ぶ」と表示されたら Unity 2018.4.14f1(LTS) を選択して[次へ]をクリックしてください
f:id:atsushisz:20191217223514p:plain
モジュールのインストールで以下の指定をします
- Visual Studio Community 2017 のチェックを外す
- UWP Build Support (IL2CPP) のチェックを付ける
- (お好みで) Language Pack で日本語のチェックを付ける
f:id:atsushisz:20191220115949p:plain

[実行]をクリックしてインストールを開始してください

インストールがスタートすると Unity Hub に「インストールしています」と表示されます
f:id:atsushisz:20191217223522p:plain
この表示が消えたらインストール終了です (通知は出ないので画面を見ておきましょう)

これで環境構築は完了です!

と、ここまで書いてから、
Takahiro Miyaura さんが、もっと詳しく手順を書いてくれているのを発見してしまいました。。。( ̄▽ ̄)
MRTK V2開発環境構築

こちらの手順も参考にしてみてください!!

次回は MRTK v2.2.0 の Examples をビルドして Unity 上で動作を確認した後、HoloLens 2 にインストールする手順を書きたいと思います!

それでは、今回もお読みいただきありがとうございました。

『CINEMA Q Episode0 映画制作の視点と体験の拡張』登壇レポート

ブログをご覧いただきありがとうございます!!

ついにマイクロソフト本社のニュースリリースで、HoloLens 2 の出荷開始がアナウンスされました。
The making of the HoloLens 2: How advanced AI built Microsoft’s vision for ubiquitous computing

これから様々なイベントでも HoloLens 2 を紹介していきますのでお楽しみに!!

目次

今回は HoloLens 2 の話ではなく、11/1 に東京ミッドタウン日比谷で開催された『CINEMA Q Episode0 映画制作の視点と体験の拡張』のトークセッションにパネラーとして参加してきましたので、その内容をレポートしたいと思います。
(写真は一部を除き CINEMA Q イベント事務局にご提供いただきました)

会場は東京ミッドタウン日比谷の多目的スペース BASE Q の Q KITCHEN で行いました。
オープンな空間でお客様との距離も近いので、一体感があっていい会場でした。こういうインタラクティブなイベントは良いですね。

f:id:atsushisz:20191108015035j:plain

トークセッションには、東宝のゴジラルーム ルームリーダーの吉川さん、ソニーPCL デジタルソリューション課 課長の伊藤さん、そして 僕が登壇しました。

ゴジラナイト 2019

今回のイベントはゴジラナイト 2019 とも連動していました。
ゴジラナイトは昨年日比谷、今年4月には名古屋、そしてまた日比谷に戻ってきて再び開催されたイベントです。

シン・ゴジラの世界観を HoloLens を使用した Mixed Reality で体験することができます。
完全予約制でしたが 11/2,3 の二日間開催していたので、ご覧になった方もいらっしゃるんじゃないでしょうか。

f:id:atsushisz:20191108015051j:plain

トークセッションではまず吉川さんからゴジラナイトの企画について紹介がありました。
シン・ゴジラのゴジラって体長どれくらいかご存知ですか? 118.5 メートルあるそうです。
かなりデカいので、HoloLens を使用してゴジラを表示するのにどこから登場させてどう歩かせるのかを緻密に計算されているそうです。
こんな巨大なものが突然現れたら違和感がありますし、映画の世界観も壊してしまいますからね。

f:id:atsushisz:20191108015007j:plain
この写真はゴジラナイト紹介用の参考映像です。今回のイベントの映像とは異なります。

ゴジラナイトのシーンではビルの合間から煙が立ち込めて、大きな破壊音とともに背後ではゴジラのテーマソング、緊張が高まったところで雄叫びとともに登場!
こんな演出はまさに映画さながらです。実際に体験してみると、HoloLens をかけなれている僕でさえ日頃見慣れた日比谷の景色が一変して映画の登場人物になった気分で、ここで一気に緊張感が高まりました。

HoloLens での立体音響

映画の世界に引き込むためには、音も非常に重要な要素です。
HoloLens では Spatial Sound を使用してリアルな立体音響を再現することができます。
HoloLens のスピーカーは本体両側の耳元についていて、映画館の音響やホームシアターと違ってスピーカー位置が固定されません。
かけている方の動きに合わせて移動しますし角度も変わるので、それを意識した音の設計が必要になります。
HoloLens での音の扱いは、こちらのページのビデオがわかりやすいので参考にしてみてください。
https://docs.microsoft.com/ja-jp/windows/mixed-reality/spatial-sound-design

3D データの活用

日比谷の街の中にゴジラが登場して攻撃しながら歩くために、事前に 3D スキャンしたビル群のデータを HoloLens 内でビルと重ね合わせて、その中をゴジラが移動するように作られているそうです。
HoloLens のセンサーではビル全体の形状をスキャンすることはできませんが、3D データを組み合わせることで建物への回り込みを処理するというのは、今回のようなエンターテインメント以外のアプリでも活用できる手法ですね。

f:id:atsushisz:20191108015111j:plain

体験の共有

複数の方が同時に体験できるのもHoloLensを使用したこのイベントの特徴です。
司令官と隊員とのブリーフィングで作戦を確認した後は、参加者同士も会話をしながらゴジラ討伐に向かいます。
単に映像を見ているだけではなく、体験の共有が可能になるわけです。

f:id:atsushisz:20191108015100j:plain

これからエンターテインメント領域での HoloLens の活用にますます期待が高まります。

ルパン三世AR

ソニーPCLの伊藤さんからは、日比谷シネマフェスで実施された「ルパン三世AR」の紹介がありました。
CINEMA Q の会場内でも特設のシアターで体験することができました。

f:id:atsushisz:20191108015041j:plain

スマホを使ったARではマーカーを使うことが多かったと思います。
「ルパン三世AR」では映画フィルムのようなスクリーンの模様がマーカーになっていて、スクリーンの枠の歪みから立っている位置を計算してキャラクターを表示しているそうです。

f:id:atsushisz:20191108015031j:plain

スクリーンで流れる映画とスマホの映像が連動しているので、マーカーの読み取りで中断してしまうと体験の雰囲気が損なわれてしまうので、スクリーンそのものがマーカーになっているのはとても合理的ですね。
マーカーの読み取りと3Dキャラクターの表示には PTC さんの Vuforia を使用しているそうです。
これをHoloLensで見てみたいですねー!

Inter BEE 2019

11/13~15 に幕張メッセで開催される 音と映像と通信の展示会 Inter BEE 2019 のマイクロソフトブースで、HoloLens 2 のプレゼンテーションを実施することが決まりました!!
http://www.inter-bee.com/ja/

毎日 12:30~12:45 の 1 回のみのステージなので、会場にお越しの皆さん是非お立ち寄りください。
『HoloLens 2 と Azure で実現する映像体験の未来』と題して、HoloLens 2 の新機能の解説をはじめ、ゴジラナイトで活用された様々な技術、さらに Azure Spatial Anchors の活用例を解説します!

ブースでお待ちしています。

それでは、今回もお読みいただきありがとうございました。

CEATEC『HoloLens 2』プレゼン解説

ブログをご覧いただきありがとうございます!!

今回は CEATEC のマイクロソフトブースで実施した Hololens 2 のステージプレゼンを振り返ってみたいと思います。
f:id:atsushisz:20191022233206j:plain:w200

今回は前編で、HoloLens 2 のハードウェアの進化を中心にご紹介していきます。
後編では、Dynamics 365 ビジネスソリューションとの連携で進化する HoloLens 2 の業務利用をご紹介します。

目次

Overview

マイクロソフトは 10/15-18 に幕張メッセで開催された CEATEC に出展しました。
今年の CEATEC は従来の家電見本市から大きく変わって、超スマートシティの実現に向けた Society 5.0 がテーマになっていました。

マイクロソフトブースでは、Intelligent Edge、Smart Space、Intelligent Manufacturing、Smart Store、Financial、Agriculture などのソリューションを体験できる展示コーナーと、ミニステージのプレゼンテーションを実施しました。
f:id:atsushisz:20191022230736j:plain:w300

僕のミニステージのプレゼンでは、HoloLens 2 の進化のポイントと新しい働き方を実現する活用例を、デモを交えてご紹介しました。

HoloLens 2 のデモは声優でベストカラアゲニストの有野いくさんに担当してもらいました。有野さんは HoloLens だけではなく xR 界隈での活躍の場が多いので、ご存知の方も多いですよね。
f:id:atsushisz:20191022230907j:plain:w180

HoloLens は 3年前に世界初のホログラフィックコンピューターとしてマイクロソフトが発売しました。Windows 10 Holographic という OS を搭載した All in One 型のデバイスで、バッテリーを搭載して完全なワイヤレスで使用することができます。
現実の空間を 3D スキャンして、透明なレンズの中に映像を立体的に表示することができます。表示された映像は自由に操作することができます。
f:id:atsushisz:20191022230656j:plain

今年、新バージョンの HoloLens 2 が発表されて、2019年後半に出荷を予定しています。
CEATEC のステージでは発売前のデバイスを使用して HoloLens 2 の進化を解説しました。
f:id:atsushisz:20191022230700j:plain

快適性の向上

1 つ目の進化のポイントは『快適性の向上』です。
HoloLens 2 の 重量は 566 グラム、HoloLens 1 が 579 グラムなので数字だけを見るとそこまで大きな違いはありません。
HoloLens 1 Hardware
HoloLens 2 Hardware
それでも HoloLens 2 を初めてかけるとその安定感に驚く方が多いと思います。

HoloLens 1 は重心がかなり前に寄っていて、フロントのレンズから約 12mm のところに重心点がありました。HoloLens 2 ではこれが約 70mm の位置に変わってほぼ頭の中心に来るようになりました。
f:id:atsushisz:20191022230728j:plain
CEATEC のステージで有野さんも話していましたが、デモの時にはステージ上を動き回ることが多いですが、ずり落ちてくる感覚が無く安定しているので安心して動くことができるようになりました。

HoloLens 2 は単一サイズで、後頭部のダイヤルでサイズを調整します。どのような頭の形状にもフィットするように、世界中の様々な国の方の頭の形状をスキャンしてデザインされました。これによって 14 歳以上の約 95% の方の頭にフィットするユニバーサルフィットを実現しました。
f:id:atsushisz:20191022230704j:plain

没入感の向上

2 つ目の進化のポイントは『没入感の向上』です。

視野角

HoloLens は透明なレンズに映像を映し出す仕組みなので、かける前も後も現実の世界はそのまま見えています。そのため、VR (バーチャルリアリティー) のように高い没入感を追及したデバイスではありません。しかし、現実の世界とデジタルの世界を融合するためには映像が表示される範囲 (視野角) が重要になってきます。

HoloLens 2 では視野角が対角線で 2 倍大きくなって、従来のように HoloLens 内の立体映像 (ホログラム) が途中で切れてしまうことが少なくなりました。
f:id:atsushisz:20191022230709j:plain

ハンドトラッキング

HoloLens 2 では操作も大きく変わりました。
従来は HoloLens の先の空間に見えるカーソルを合わせてエアタップというジェスチャーで操作をしていました。

HoloLens 2 は両手の指を認識していて、表示されているホログラムを直接つかんで動かすことができるようになります。
f:id:atsushisz:20191022230713j:plain

CEATEC のデモで使用したアプリでは、HoloLens 2 の基本的な操作をご覧いただけるように、有野さんに 3 つの操作をしてもらいました。
- 人差し指 または 手のひらでボタンを押す
- ノブをつまんでスライダーを動かす
- キューブをつかんで回転させたり、大きさを変える
指との距離に合わせて映像と音を変化させることで、実際には無い触覚的なフィードバックを補うようにしています
f:id:atsushisz:20191022232523j:plain
(CEATEC のブースはお客様が多すぎてステージの写真が撮れなかったので、別のイベントのデモの様子です)

詳しく知りたい方はこちらの『API リファレンス』をご覧いただくとして、簡単に書くと Joints(指の関節位置) の Position(位置) と Rotate(向き)を取得することができます。両手の人差し指の先の Joint にコライダー(映像と接触する部分)を設定して、指先での操作ができるようになっています。

複数の指を使用する今回のアプリでも、コライダーは左右 1 つずつしか設定していません。
すべての指にコライダーを設定することも不可能ではないですが、操作中に他の指が触れて誤動作を起こしやすいので、各指の干渉やボタン等の押し間違いを回避するように開発するか、人差し指にのみコライダーを設定することをおすすめします。
また Bounding Box を使用することで、映像と音で触覚的フィードバックを補うことも考慮してください。
詳しくはこちらの設計ガイダンスを参考にしてみてください。

アイトラッキング / ボイスコマンド

操作は指だけではなく、視線や音声でも行うこともできます。
HoloLens 2 は内側に取り付けられた赤外線カメラで黒目の動きを計測しています。これをアイトラッキングと呼んでいます。
また、フロント部分にある 5 チャネルのマイクアレイで音声コマンドも使用することができます。
これによって視線や声による操作が可能になっています。
f:id:atsushisz:20191022230723j:plain

例えば、作業しながら手順書を見る場合、指での操作では一度作業を中断する必要がありますが、アイトラッキングや音声コマンドなら手はそのままで手順書の必要な個所を表示することができるようになります。


今回はここまで CEATEC のブースステージで実施したプレゼンから、HoloLens 2 の進化をハードウェアの観点を中心にご紹介させていただきました。

今回もお読みいただいてありがとうございました!