
HoloLens 向けアプリの開発: Microsoft の「Holographic Academy」の内部

サンフランシスコ発 ― 部屋いっぱいのジャーナリストたちに周囲の家具を爆破させるには特別な才能が必要だが、ブランドン・ブレイはまさにそんな男だ。彼の励ましを受け、目の前のコーヒーテーブルの上に浮かぶ紙のボールを見て「火を噴け!」と叫んだ。ボールがテーブルに落ち、爆発してテーブルに穴が開いた…すると、飛び交う折り鶴と急流が流れるローポリゴンの風景が現れた。
そのシーンは、本日サンフランシスコで開催された約2時間にわたるデモセッションの講師の一人であった、マイクロソフトの主席グループプログラムマネージャーであるブレイ氏の指導の下、私がマイクロソフトのHoloLens拡張現実ヘッドギアにロードしたプログラムの結果である。
私は、マイクロソフトが Build 開発者カンファレンスを開催しているモスコーニ ウエストの隣のホテルで開催している「ホログラフィック アカデミー」セッションの特別短縮版に参加しました。

マイクロソフトのコンピューティングの未来に向けた長期的な計画に期待を抱き、また開発者にとっての短期的な機会にも感銘を受けました。HoloLensハードウェアの最新バージョンを試す機会もありましたが、これはマイクロソフトの幹部がステージ上でデバイスのデモンストレーションを行った際に着用したものと同じモデルです。
各セッションは、PCが備え付けられた会議室で行われ、開発者の皆様にWindows HolographicプラットフォームとHoloLens向け開発の概要をご理解いただくことを目的としています。セッションは通常4時間以上にわたります。ガイド付きデモでは、Unity 5ゲームエンジンを用いた拡張現実(AR)3Dシーンの構築方法、そしてC#スクリプト、オーディオファイル、アニメーションを用いてシーンに命を吹き込む方法について解説しました。

SDKの仕組み
HoloLensソフトウェア開発キットは、スピーカー、センサー、プロセッサがぎっしり詰まったデバイス自体の複雑さを考えると、驚くほど洗練されています。Microsoftが求めるあらゆる処理を担う専用のホログラフィック・プロセッシング・ユニットも含まれています。HoloToolkitフレームワークには、デバイス装着者の周囲の物理空間のマッピングから音声認識、ユーザーのハンドジェスチャーの登録まで、あらゆる処理を実行する様々なクラスが含まれています。
音声コマンドを追加するには、開発者はKeywordRecognizerクラスのAddKeywordメソッドを呼び出し、トリガーフレーズを平易な英語の文字列として渡します。これは非常にシンプルなコードですが、システムの複雑さを裏切るものです。システムはこれらの単語を、HoloLensがユーザーから聞き取れる音声に変換する必要があります。

音声コマンドといえば、HoloLensで一番驚いたことの一つは、マイクの感度でした。設定しておいたキーフレーズをかなり小さな声で話したのですが、ハードウェアはそれをかなり確実に認識してくれました。

HoloLens プロジェクトの代表的人物である Microsoft のテクニカル フェロー、アレックス キップマン氏は、講義の後で、システムのパフォーマンスは HoloLens がユーザーの顔の近くに多数のマイクを備え、デバイスが信じられないほど正確な音声データを拾えるようになっている結果であると語った。
Visual Studioでスマートフォンやタブレット向けのアプリ開発に慣れている方なら、HoloLensへのコードのデプロイも違和感なく行えるはずです。私の知る限り、Microsoftの開発環境はHoloLensを他のモバイルデバイスと同様に扱い、Bray氏によれば、HoloLensとスマートフォン向けの開発体験は非常に似ているとのことです。
もちろん、この2つには明らかな違いがあります。スマホアプリは、たとえAR(拡張現実)に積極的に取り組んでいるものであっても、これほど使い心地がクールだと感じたことはありませんでした。
まだ開発中
MicrosoftはHoloLensの正式版のリリースにはまだ程遠いようです。私が使用したハードウェアとソフトウェアにはいくつか明らかなバグがありました。テストアプリケーションを一度展開した際に、部屋の特定の場所で空間マッピングが機能しなくなり、最初に受け取ったユニットは正常に起動しませんでした。しかし、このデバイスはまだ活発に開発が進められており、非常に集中的な開発が行われていることを考えれば、これは当然のことです。
「このソフトウェアは非常に新しいので、文字通り 1 週間前に構築しました」と、作業開始前にブレイ氏は会場の全員に語りました。
バグはさておき、このデバイスには限界がないわけではありません。ホログラフィックオブジェクトは長方形の帯状に表示され、ユーザーの視野の中心を占めますが、周辺視野では途切れてしまいます。実際には、ホログラフィックオブジェクトが「近い」場所で切り取られてしまうという問題がありました。キップマン氏によると、これは意図的なものであり、HoloLens装着者はデバイスを装着したまま周辺視野を活用できるとのことです。
私のように手を使って話す人は、HoloLensのジェスチャーコントロールを意図せず作動させてしまうことがあるかもしれません。私も、参加していたメンターの一人と会話中に、何度か意図せずコマンドを発動させてしまいました。とはいえ、このシステムはジェスチャーの検出に関して非常に広い視野角を持っています。手を体に近づけ、腰より少し上の位置に持っただけで、HoloLensは従来のマウスとキーボードのパラダイムにおけるクリックにほぼ相当する、空中でのタップジェスチャーを検出できました。
最初はヘッドバンドを頭にフィットするように調整し、HoloLensバイザーを下げて装着する必要があるため、セットアップが少し面倒に感じるかもしれません。装着後は、デバイスが重量を鼻に負担をかけることなく、頭の中央にしっかりと固定してくれるので、とても便利です。
毎日使用しなければならないとしたら、おそらく私はヒップスター風の巨大なメガネをコンタクトレンズに交換するでしょうが、私にとってはOculus RiftよりもHoloLensの方がメガネをかけているときよりも快適でした。
プログラマーなら誰でも言うように、丁寧にガイドされたコードデモで何かを作ることと、実際にゼロから何かを作ることは全く別物です。人々が使いたくなるようなホログラフィックアプリを開発するには、開発者が数時間で作るだけでは到底足りませんが、今日の経験から、挑戦したい人なら誰でも達成可能な目標だと確信しました。