HoloLens開発入門(1)
MRとは? HoloLensのハードウェア/機能/アプリ動作/ユーザー操作
― HoloLensが未来を連れてきた ―
「MR」とは何か? HoloLensが持つハードウェア概要と機能を紹介し、2DアプリとHoloLensアプリの動作について説明。また、ユーザー操作の方法を解説する。
注意事項
本稿で検証に使用したMicrosoft HoloLens Development Editionのソフトウェアやハードウェア、APIは、暫定的なものであり、正式版では変更される可能性がある。
Mixed Reality(MR:複合現実)という耳慣れない用語とともにマイクロソフトが投入してきた全く新しいWindowsデバイス、それがHoloLens(ホロレンズ)だ(図1)。HoloLensは「Microsoft Holographic」というホログラフィック技術を採用したHMD(Head Mount Display)で、CPUやGPUが組み込まれたWindows 10が動作するPCである。
2016年3月30日、HoloLensの開発者向けキットである「Microsoft HoloLens Development Edition」の出荷が米国およびカナダの開発者向けに開始された。そして、いよいよ2017年1月18日から日本でも入手が可能になった。同時に、起動できるアプリを制限するキオスクモードやMDM(Mobile Device Management)などでデバイス管理ができる企業向け開発キットである「Microsoft HoloLens Commercial Suite」も日本から入手できるようになった。
この両者は開発に利用する分には差異はないので、企業内でも開発用に「Microsoft HoloLens Development Edition」を使い、運用も含めた動作確認用に「Microsoft HoloLens Commercial Suite」を購入するような入手方法ができる。
HoloLens=MRプラットフォーム用デバイス
このHoloLens、マイクロソフト自身はMRプラットフォーム用デバイスと説明している。AR(Augmented Reality)やVR(Virtual Reality)という言葉は聞いたことがある人も多いだろうが、HoloLensの特徴としてうたわれているMR(Mixed Reality)というのは初耳だった人もいるのではないだろうか。
AR/MR/VRの違いを簡単に説明すると次のようになる。
AR | 現実世界にデジタルコンテンツレイヤーを重ね合わせて表示したもの。位置情報やマーカーなどに反応してコンテンツを表示したりする。セカイカメラなどはARの代表的な例 |
---|---|
MR | デジタルコンテンツが現実世界に組み込まれたように表示する。例えば机の脚の向こうにあるデジタルコンテンツは、机の脚の部分だけ隠れて見えないような処理を行う。ARよりも、より現実世界の影響をデジタルコンテンツ側が受けるといった感じだろう |
VR | フルCGまたはビデオ映像などで、ユーザーを別の時空に配置する。つまり、実際の周りの環境を隠ぺいするようにデジタルコンテンツで置換することになる |
つまりMRを実現するには、周りの環境をセンシングするセンサーと、視覚や音などのデジタルコンテンツと現実世界を融合するような透過型ディスプレイ、これら両方をそなえたデバイスが不可欠だ。HoloLensにもMRを実現するためのさまざまな工夫が施されている。まずはその外観から確認してみよう。
ハードウェア概要
化粧箱
「Microsoft HoloLens Development Edition」を申し込むと、HoloLens本体の箱(図2)と、Clicker(クリッカー)と呼ばれる「HoloLensとBluetoothで接続できるクリック用デバイス」の箱(写真は割愛)がセットになって送られてくる。図2では分かりにくいが箱自体に描かれたデザインも、光る線によりホログラフィック風な雰囲気を醸し出しており、開封する前からワクワク感があるつくりになっている。
箱の中にはHoloLens用ケースが収められている(図3)。開封して最初の印象は「湯たんぽ」だ。
「湯たんぽ」の中には、HoloLens、USBケーブル、ACアダプター、予備の鼻あて、ヘッドバンドなどが収められている(図4)。
ハードウェア外観
HoloLensは2つのリングから構成されている(図5)。内側のリングは、ダイヤルでサイズを変えて、装着する人の頭のサイズにフィットさせるのに使う。また、外側のリングは、回転させたり前後に動かしたりして、ホログラフィックと目線の位置を合わせるのに使用する。
項目 | スペック |
---|---|
スピーカー | ビルトイン・スピーカー |
無線LAN | Wi-Fi 802.11ac |
Bluetooth | Bluetooth 4.0 LE |
CPU | Intel 32 bit architecture |
GPU | Custom built Microsoft Holographic Processing Unit(HPU 1.0) |
メモリ | 64GB Flash/2GB RAM |
OS | Windows 10 |
バッテリー | 2~3時間連続稼働 最大待機時間2週間 充電しながらの動作も可能 放熱ファンなし |
電源 | 2.5A/5.2V |
重量 | 579g |
バッテリーの持ちは、スペック上は連続2~3時間ということだが、実際に使ってみると4時間くらいは持つ感じだ。
電源ボタン
外側のリングは後頭部部分が切れていて、上から見るとC
の字に見える。切れた左側の端には電源ボタンがある(図6)。電源ボタンを押せば、少し待ってから起動が始まる。終了するときは電源ボタンを長押しする。
USB端子
図6を見ると、電源ボタンの近くにMicroUSB端子がある。これは充電をしたり開発環境からアプリをデプロイしたりするときに使用する。端子が下側についているので、充電するときはHoloLensをマネキン頭部にかぶせて充電するか、HoloLensを上下逆さまに置いて端子が上にくるようにして充電する。そうしないと、USBケーブル接続部分に負荷がかかって端子を破壊する可能性が高くなるので十分注意が必要だ。
バックライト調整ボタンと音量調整ボタン
左右にあるフレーム部分の左側上部にはバックライトの明るさ調整用ボタンがあり、右側上部にはスピーカーの音量調整用ボタンがある(図7)。どちらも後から無理やり付けたようなシールでボタンの意味を表しているが、このシールはすぐに取れてしまう(余談になるが、こうなっている理由を想像すると、デザイン上は無印だったが、ハードが出来上がった後で「ボタンの意味が分からない」というようなフィードバックを受けて嫌々張り付けたのかもしれない)。
スピーカー
外側リングの左右にあるフレーム部分の下側で、装着するとちょうど両耳がくるところに赤い色をした突起がある(図8)。ここがスピーカーだ。片側3つ、合計で6つのスピーカーから構成され、音の発生源の位置を再現できるようになっている。
機能紹介
HoloLensのハードウェアスペックを紹介する。しかし正直なところ、HoloLensを体験すると、各部品のスペックなどは機能性を判断するための決定的な材料にはならないと思えてくる。それくらい「単なるスペックで分かる機能性」と「そこで得られる体験」とに差があるのだ。これはHoloLensが、各種機能を実現するために視野角や解像度も含めてさまざまな要素をバランスよく、そして補完する形で使っているからだと予想している。
光学系ハードウェアスペック
HoloLensでは、メガネ型のシースルー・ホログラフィック・レンズ(図9の上の写真でメガネ部分の表面を覆っている1枚の湾曲したレンズ)の中に、2つの透過型ディスプレイ(図9の下の写真で前面にある左右2枚のレンズ)が設置されている。
透過型ディスプレイのスペックは次のようになっている。
項目 | スペック |
---|---|
アスペクト比 | 16:9 |
解像度 | 1280×720 |
フレームレート | 60fps (デバイスポータル*1でキャプチャ時は30fps) |
ホログラフ配置可能距離 | 0.5~5m |
ホログラム配置最適距離 | 1.25~5m/映画などは2mが最適距離 |
- *1 デバイスポータルとは、ブラウザー経由でデバイスの状態を確認したり、HoloLensのMR映像をキャプチャしたりできるツールである。詳しくはまだ日本語化されていないが「Using the Windows Device Portal」を参照されたい。なお、デバイスポータルの使い方については次回紹介予定だ。
HoloLensを頭にかぶらずに透過型ディスプレイのみをのぞいてみると、視野の中心付近にある液晶部分にホログラムが表示される(図10)。
一見、投影範囲が視野に対して狭いように思えるが、実際にかぶっていると視界全面にホログラムが表示できているように感じる。これは、周辺視野にホログラムが表示されていないこと自体が気にならないような方向で調整されているからだろう。例えばHoloLensでは、視線は正面に向けたまま顔の向きを動かすことでカーソルを操作することがあるなど、視野は中央付近に固定して使える工夫がなされている。
センサー系ハードウェアスペック
HoloLensにはさまざまなセンサーが組み込まれている。
項目 | スペック(個数) |
---|---|
慣性計測ユニット(IMU) | 1個(加速度、ジャイロ、方位を測定) |
環境認識カメラ | 4個 |
depthセンサー | 1個(ジェスチャー用) |
RGBカメラ | 2MP×1個 |
複合現実感キャプチャ | 1個 |
マイク | 4個(左右2個ずつ) |
周辺光センサー | 1個 |
センサーによる測定は、単独ではなく複数のセンサーの情報を統合して行っている。例えば、頭の位置や向きは、ヘッド・トラッキング・カメラとIMU(慣性計測ユニット)の計測値を総合的に判断して決定している。各種センサーを組み合わせて使うことで、次のような機能が実現できる。
- 1空間音響効果の作成
- 2視線トラッキング(=顔の正面が向いている方向のトラッキング)
- 3ジェスチャー入力(=ジェスチャーによる操作)
- 4音声認識/音声コマンド
HoloLensでのアプリ動作
Windows 10やWindows 10 Mobile上で動作するUWP(Universal Windows Platform)アプリとして作成すると、HoloLens上でもそのアプリが動作する。
アプリをHoloLens上で起動すると、そのアプリを空間上の任意の位置に任意の大きさで配置できる。これは、HoloLensが現在いる空間の特徴点を算出して記憶し、その特徴点のどこにどのような大きさと角度で設置したかを記憶しているからに他ならない。特徴点の計測(図12)は自動的に行われる。
2Dアプリ
通常のUWPアプリの場合、HoloLens上では2Dアプリとして額縁の中でアプリが動くような形で表示される(図13)。この額縁は空間上の任意の場所に設置できる。壁、床、テーブルなどがあれば、そこに張り付けるように設置することも可能だ。設置してしまえば、他の人にHoloLensを渡しても同じ場所に設置されたように見えるし、電源をオン/オフしても設置されている。
Holographicアプリ
Holographicアプリは、Unityで作成したUWPアプリ、または、Direct Xを使ったUWPアプリとして作成する。Holographicアプリは、額縁ではなくHoloLensが計測した空間の特徴点に干渉されながら動作するアプリ(図14)として作成できる。
特徴点に干渉されるため、この例(3Dモデルの「ユニティちゃん」を表示するHolographicアプリ)のように物体の背面に行くと、そのHolographicアプリはその物体に隠されることになる。
HoloLensでの操作
HoloLensの操作は、次の4つがある。
- 1Gaze(ヘッドトラッキング)
- 2Air Tap
- 3Bloom
- 4Voice
それぞれ説明していこう。
Gaze
Gazeは「視線」という意味になるが、HoloLensにおけるGazeは額からまっすぐ正面にビームが出ているようなイメージになる。ビームの先はHoloLensの視界には点として表示される。この点がHoloLensにおけるカーソルになる(図15)。カーソルは、ビームがぶつかった最初のオブジェクト(つまりビーム線上の一番近いオブジェクト)に作用する。
Air Tap
マウスの右クリックやタッチパネルへのタップに相当する操作がAir Tapだ。数字の1
のように人差し指を立てて指を伸ばしたまま素早く倒して戻せばAir Tapとなる。個人的な経験では、「親指と人差し指でL
の字を作り、指を伸ばしたまま親指の先と人差し指の先で物をつまんで素早く離す」というようにすると、確実にAir Tapができる。
人差し指を立てたことをHoloLensが認識すると、カーソルの形状が点から図16のようなドーナッツ状になり、カーソルが見やすくなって操作対象にターゲットしやすくなる。
Bloom
[Windows]キーを押したときのように[スタート]メニューを表示したいとき、または非表示にしたいときに行う操作がBloomだ。グーの形にして手の甲を下にして顔の正面に置いたら、手の中のものを上にトスするような感じで手を開く。「Bloom」という名前からして「花が咲く」というジェスチャーなのだろう。
Voice
最も簡単な音声(Voice)コマンドは「Select」だ。HoloLensに搭載されているOSの言語設定はen-US以外に(執筆時点で)切り替えられないので、きれいな英語発音が必要だが、「Select」と発声すれば、カーソルがある位置でAir Tapを行ったのと同じ操作が実行される。
HoloLensには、音声アシスタント機能のコルタナ(Cortana)が搭載されている。「Hey Cortana」と発声してコルタナを起動することで、「Select」以外にも表5のようなさまざまな操作を行うことができる。
コマンド | 意味 |
---|---|
What can I say? | コルタナ検索メニューを表示する |
Go home | Go to Start | スタートメニューを表示する |
Launch <app> | <アプリ>を起動する |
Move <app> here | <アプリ>を目の前に移動する |
Take a picture | 写真を撮影する |
Start recording | 録画を開始する |
Stop recording | 録画を終了する |
Increase the brightness | バックライトを明るくする |
Decrease the brightness | バックライトを暗くする |
Increase the volume | スピーカー音量を大きくする |
Decrease the volume | スピーカー音量を小さくする |
Mute | Unmute | マイクをミュートする | ミュートを解除する |
Shut down the device | 電源を切る |
Restart the device | 再起動する |
Go to sleep | スリープモードに移行する |
What time is it? | 現在時刻をコルタナに聞く |
How much battery do I have left? | バッテリー残量をコルタナに聞く |
Call <contact> | HoloSkypeを使って<アドレス帳上の相手>に電話をする |
開発環境について
Holographicアプリの開発環境としては、表6のツールが必要だ。Visual Studio Communityも対応しているので、基本的に開発環境は全て無償で構築できる。
ツール | 備考 |
---|---|
Visual Studio 2015 Update 3以上 | カスタムインストールでTools(1.4.1)とWindows 10 SDK(10.0.14393)も導入。 UWPアプリとして作成すれば、2DアプリとしてHoloLensで実行できる |
HoloLens Emulator | |
Unity 5.5.0f3 | Holographicアプリ作成時に必要 |
UWPアプリとして2Dアプリを作成して額縁を配置するのも楽しいし、Cognitive Servicesと連携するだけでも無限の可能性が広がるだろう。しかしながらHoloLensらしい見た目のアプリを組むならば、現時点ではUnityを選択することになる。
UWPには共通のCore以外に各種拡張機能のExtensionsがある。Holographic ExtensionsというHoloLens用のものもアナウンスされているが、執筆時点ではまだ提供されていない。このあたりは今後のアップデートに期待だ。
まとめ
HoloLensは、周りの環境を検知し、映像と音で構成されたホログラムというデジタルコンテンツをその周りの空間に対して配置する。これを実現しているのはWindows Holographicと呼ぶプラットフォームである。マイクロソフトは、Computex Taipei 2016でWindows Holographicをサードパーティにも開放すると発表した。Windows 10が動作する機器がさまざまなメーカーから登場しているように、これからはMicrosoft HoloLens以外にもMRを扱うデバイスがさまざまなメーカーから登場してくることが予想される。
今、HoloLens向けのアプリ開発技術を学んでおくことは、既存のAR/VRデバイスのようにデバイス固有の開発技術ではなく、さまざまなメーカーから登場するWindows Holographic互換デバイスで動作するアプリ開発技術を学ぶことになる。「日本で手に入らないから」と後回しにするのではなく、今できることから始めることで、来るべき発売日に向けて着実な助走ができるだろう。
次回は、SDKを使った基本的な開発やSDKでできること(まだできないこと)についてフォーカスを当てる。ぜひ、表6の開発環境をインストールして記事をお待ちいただきたい。
1. 【現在、表示中】≫ MRとは? HoloLensのハードウェア/機能/アプリ動作/ユーザー操作
「MR」とは何か? HoloLensが持つハードウェア概要と機能を紹介し、2DアプリとHoloLensアプリの動作について説明。また、ユーザー操作の方法を解説する。
2. 初めてのHoloLens開発(2D/Holographicアプリ)[環境準備~実行、HoloToolkit-Unity活用]
正式リリース前にHoloLensアプリ開発の方法や特徴をつかもう。HoloLens向け2DアプリとHolographicアプリ、それぞれの開発のポイントを説明する。