2020
05.01

【World MR News】HoloLens2アプリ開発のための公式チュートリアル「Kumamoto HoloLens ミートアップ vol.6」レポートその①

World MR News

HoloLens界隈のエキスパートが登壇し、XR関連の話題を共有するイベント「Kumamoto HoloLens ミートアップ vol.6」が、4月6日に開催された。今回は、昨今の新型コロナウイルスの影響から、オンラインでの開催となりZoomを使用して発表が行われることとなった。

本イベントを主催するKumaMCNは、コアメンバー10名ほどで運営されているコミュニティだ。HoloLensやものづくりを中心に、年間30回ほどイベントを開催している。それぞれのメンバーは普段は異なる会社に勤めており、週末に集まり熊本のテクノロジーを盛り上げるために活動を行っている。

本稿では今回行われたイベントの中から、ちょまどの愛称で知られる日本マイクロソフトのCloud Developer AdvocateでITエンジニア兼マンガ家の千代田まどか氏と、坂元旭氏のセッションをピックアップしてご紹介する。

「HoloLens 2 アプリ開発入門 (公式チュートリアルの紹介)」by ちょまど氏

ちょまど氏からは、「HoloLens 2 アプリ開発入門 (公式チュートリアルの紹介)」というテーマでセッションが行われた。

HoloLensは、マイクロソフトが開発したWindows10搭載の自己完結型ホログラフィックコンピューターだ。HoloLensを通して、リアル空間で物理的な環境にホログラムを配置することができ、その世界を見るほかデジタルコンテンツを操作することができるというのが特徴である。

最新版のHoloLens2ではさらに進化。現実空間に様々なアプリを出現させ、見るだけではなく触ることもできる。手や指も認識できるため、ピアノのようなアプリの操作も可能だ。拡大縮小も、両手を使って行うことができる。また、キーボードを表示させて文字を入力することも可能だ。

ちなみにMRTKはクロスプラットフォームのための構成になっているため、HoloLensに限らずほかのVRやARでも利用することができる。

たとえば、MRTKでプロジェクトを作っておくことでシーンの修正をせずにHoloLens2やHoloLens1、WindowsMRなどにアプリをビルドすることができる。これは、MRTKがデバイスを吸収してくれることから実現しているものだ。MRTKの前身であるHoloToolkitではできなかったこともでもある。

MRTKがXR系のクロスプラットフォーム開発に便利なのはわかるが、HoloLensアプリの開発だけなら関係ないと思われるかもしれない。しかし、そんなことはなく、MRTKならちょっとした動作の開発でも簡単に実現することができるのだ。

たとえば、「ボタンを押す」といった動作を作るときに、MRTKを使わないときはHoloLen2のAPIから直接手の入力イベントを取得。人差し指の位置を取り、アタリ判定を付ける。さらにボタン側にもアタリ判定を付け、ボタンに触れてから10センチメートル押し込んだことをロジックで検出してからイベントを起こすといった一連の流れを実装擦る必要がある。

これがMRTKなら、シーンにPressableButtonのプレハブを置くだけですむのだ。

MRTKでは様々なことができ、Input SystemのほかHand TrackingやEye Trackingなど、HoloLens2を動かすときに必要なものが一通り揃っている。また、MRTKには、UIやインタラクションの部品も多数用意されているのだ。

UnityでHoloLens2のアプリを開発するときに必要な環境は、MRTKのトップページを見るのがいい。そちらでは、Windows SDKやUnity、Visual Studioで必要なバージョンが書かれているほか、実機が手元に無い場合はエミュレータも利用することができることがわかる。この中でも重要なのが、Unityのバージョンだそうだ。 

HoloLens2の開発公式チュートリアルでは、アイトラッキングで色が変わるなどテスト用に様々な部品が用意されている。まだ現時点ではほとんどの人がHoloLens2を入手できていないが、エミュレータが用意されておりそちらでチュートリアルを実施することも可能だ。

公式ドキュメントには、このHoloLens2エミュレータの使い方も書かれている。それらを参考に、開発を進めていくといいだろう。

▲Unityのエディタ上でもチュートリアルを実行することができる。

エミュレータでは両手を使った動作が難しかったりするが、その点についてはホロモン氏が「MRTK v2を使ってUnityEditor内でのシミュレーション機能を操作する」という記事で詳しく紹介しているそうなので、そちらも合わせてチェックして見てほしい。

MRTK v2を使ってUnityEditor内でのシミュレーション機能を操作する – MRが楽しい

https://bluebirdofoz.hatenablog.com/entry/2019/11/08/123324

最初は「概要と目標」で、HoloLens2開発環境の確認を行う章となっている。ひとつ注意が必要で、MRTK公式サイトではUnity 2018.4.xが推奨されているが、こちらのチュートリアルでは2019.2.xが推奨されている。また、MRTKのバージョンはv2.2が使用されている。

第2章は「プロジェクトと最初のアプリケーションの初期化」ということで、いわゆる「ハローワールド」にあたる部分だ。HoloLens2開発用のUnityの設定やMRTKのインポート、デプロイの仕方などが紹介されている。

第3章は、「ユーザー インターフェイスの作成と Mixed Reality Toolkit の構成」として、MRTKを使用したUI作成が学べる。ここでは、ボタンのコレクションを表示させて、押せるものを作っていく。MRTKプロファイルを編集するには、最初に複製を編集する必要があり、そうしたこともこちらで紹介されている。さらに、ハンドトラッキングやインタラクティブなボタンの付け方も学ぶことができる。

第4章は「動的なコンテンツの配置とソルバーの使用」として、オブジェクトをユーザーの手などに追従させる方法が紹介されている。こちらではMRTKのSolverを使い、ユーザーにボタンコレクションを追従させるやり方は、スクリーンショット満載で紹介してくれる。

第5章は「3D オブジェクトの操作」で、3DオブジェクトとUXの紹介がされている。バウンディングボックスの実装で、任意のオブジェクトに対して移動や回転、拡大縮小するほうほうが学べる。また、近距離操作や遠距離操作のやり方もこちらで学ぶことができる。

第6章は「高度な入力オプションの探索」で、音声コマンドのやり方やアイトラッキングでオブジェクトを選択する方法も紹介されている。最後の第7章はこれまでのおさらい的な内容になっており、「月着陸船サンプル アプリケーションの作成」としてアプリの作成をしていく。

公式チュートリアルは日本語だけではなく、もちろん英語版も用意されている。そちらの方が好みの場合は下記のQRコードからアクセスしよう。

「ロービジョン×MixedReality視覚障がいを抱える人と一緒に野外ホロした結果とまだ見ぬHoloLensの可能性」by 坂元旭氏

坂元旭氏からは、「ロービジョン×MixedReality視覚障がいを抱える人と一緒に野外ホロした結果とまだ見ぬHoloLensの可能性」というタイトルでセッションが行われた。

坂元旭氏が最初に質問を投げかけたのは「もしあなたが視力を失ったとしたら、HoloLensで何をしますか?」ということだった。今回は、ロービジョンの人とHoloLensを使用した実験を行ってきたことをシェアしながら、HoloLensで日常を変えることができるのかというテーマで進められていった。

このロービジョンとは、メガネやコンタクトレンズでは矯正することができない視力低下により、日常生活に不便を感じている状態や人のことを指している。社会的失明とも言われており、WHOの定義では全盲の人はロービジョンに含まれないが今回は区別していない。

今回の実験では、2名のロービジョンの人にHoloLensをかけたまま街中を歩いてもらった。いわゆるナビゲーションの実証実験で、2名の中には全盲の人も含まれている。

実験の結果だが、HoloLensからもたらされる情報により、街中を歩くことができた。また、視力が低い人でもHoloLensのディスプレイ(レンズ部分)の持つ重要性が高いことがわかったという。

実験では、HoloLensが持つ機能のうち、空間認識と空間音響を利用したナビゲーションを行っている。空間認識は、周囲の壁や床などの空間情報を認識する機能だ。たとえばCGのキャラクターが実在する木の回りを動いているときに、影に隠れた部分は表示しないようにするといったものに使われている。

この空間認識がHoloLensにおいての目であるとするならば、空間音響は耳に当たる部分だ。周囲の仮想情報(ホログラム)の位置を、ユーザーに伝えてくれる。HoloLensは視野角が狭いが、ゲームなどをプレイしているときに火の玉が飛んできたときに音で認知することができるため、視覚を補ってくれる。

作ったアプリは、UnityのプリミティブオブジェクトにMRTKのManipulation handlerを使って移動できるようにしている。Manipulation handlerとは、ボタンにドラッグ&ドロップするだけでアタッチされたオブジェクトが、エアタップなどのジェスチャーで位置や回転、大きさなどを設定に合わせて変化させることができるものだ。

これだけでは音がわからないため、AudioSourceで音源を付けている。Unityのアプリで音を付けるときにこのAudioSourceを使うのだが、その設定の中にSpatial Blendという項目がある。デフォルトでは2Dになっているのを3Dにすることで、SpatialSound(空間音響)が利用可能になる。

また、Max Distanceという音が現するする最大距離の設定項目を現実よりも激しめにしている。これは、左右の音の差を感じることで物体がどちらかにあるか感じやすくするためだ。

今回用意した5つのボールには、クラッシックやJ-POP、教会の音、鳥のさえずり、電子音など別々の音源を設定している。具体的な実験では、実際の駅の改札外の柱やモノといった現実空間にボールを設置して行われている。そのままの状態で、2名の参加者にHoloLensを装着して歩いてもらっている。

実験は2020年2月7日(金)のラッシュ後の10時頃だ。結果は、HoloLensをかけたままそこからもたらされる音の情報で街中を歩くことができた。それだけではなく、配置されたオブジェクトの位置も正確に把握することができた。

人にもよるが、ロービジョンの人でもモノをモノとして捉えることができなくとも、光を感じることができる人は多い。盲導犬を連れている人には、サングラスをかけている人を見かけることがある。

それは、目が見えないため会話をするときに相手の目を見つけることができないことからコミュニケーションを遠隔にするためというのも理由のひとつだ。また、太陽などの光がまぶしすぎることからサングラスを着用している人もいる。このように、人によってサングラスを着用している理由が異なる場合がある。

今回実験では、SpatialSoundとディスプレイに表示される光によって、現実空間が認識できるようにしていた。

今回の実験は、坂元氏が1年前に偶然高校時代の友人に出会ったことがきっかけとなっている。その友人はロービジョンで、HoloLensの話しをしたところ興味を持ってもらい、かけてもらったところ感動してくれた。その経験を、周囲のロービジョンの人や大学の先生に広めてくれたことが、今回2名の人と実験をすること繋がっている。

失明には、社会的な失明と医学的な失明がある。視力を失った人でも、光を感じることが出来ない人は少ない。手が動いていることは認識できたり、指が何本立っているか認識できたりする人もいる。

このように、視力を失った人のほとんどが社会的失明である場合が多いという。こうした人たちが現在困っている状況が、周囲の状況が想定できない環境下での移動であった。

スマートフォン向けの『Seeing AI』というアプリでは、周囲の状況を見て読み上げてくれる。あらかじめ人を登録しておけば、「○○、2メートル先、笑っている」という感じで読み上げてくれるのだ。ほかにもバーコードを読み上げてくれたり、光や色も読み上げてくれたりするものもある。

そこで、HoloLensで何ができるか考えた。見えないから、見えている情報がとても貴重となる。HoloLensでできることには、画像認識などは昔からあった。それを使い、看板を認識して看板に合わせてホログラムが光っているというだけでも目が見えない・見えにくい人にとって、動きやすさが数十倍にもなる。

HoloLensに『Seeing AI』のような機能が追加されたり、スマートフォンのようにネットワークと繋がり、様々な情報を光や音で適切に表示することができるようになったりすれば、ロービジョンであろうがそうでない人であろうが、動きやすさがかなり変わってくる。

1年ほどこの取り組みを行ってきた坂元氏。HoloLensには、人体拡張の可能性を感じるという。

PhotoWords 高島おしゃむ
コンピュータホビー雑誌「ログイン」の編集者を経て、1999年よりフリーに。
雑誌の執筆や、ドリームキャスト用のポータルサイト「イサオ マガジン トゥデイ」の
企画・運用等に携わる。
その後、ドワンゴでモバイルサイトの企画・運営等を経て、2014年より再びフリーで活動中。