読者です 読者をやめる 読者になる 読者になる

hogehoge, world.

米国カリフォルニアから日本に一時帰国中のソフトウェアエンジニアがIT・自転車・音楽・天体写真・語学などについて書く予定。

HoloLensがやってきた

HoloLens IT

Microsoft HoloLensをゲットしました!ヽ(´ー`)ノワーイ

f:id:tomoto335:20170129174004j:plain

以前Kinect, Oculus Rift DK2, Google Glass, ...といったモーションセンサー・VR関連技術をフォローしていたのですが、最近HoloLens界隈が妙な盛り上がりを見せている様子だったので、久しぶりに祭に乗ってみるか!と腰を上げた次第。値段が高いのでかなり迷いましたが、どうせ乗るなら今でしょ、ってことで日本リリース1/18の直前に注文、1/19の午前中にさくっと配達されました。

というわけで所感を書いてみます。

HoloLensとは何か

ちょっと前にGoogle Glassというスマートグラスがあって、これは戦闘機のHUDのようにリアルな視界に平面映像を重ねて表示できるものだった。HoloLensはこれを進歩させて、リアルな視界に立体映像を重ねて表示できるものである…と敢えてシンプルに言うとそうなるのだが、これでは何がすごいのかさっぱり通じないだろう。

もう一歩踏み込んで言うと、リアルな空間に(例えば実際に目の前にある机の上に)仮想的なオブジェクトが実際そこに存在しているかのような体験を作り出せる。これをMicrosoftはVR (Virtual Reality)でもAR (Augmented Reality)でもなく、MR (Mixed Reality)と呼んでいる…と言っても、まだピンと来ないだろう(少なくとも私は来なかった)。

とどのつまりはHoloLensの何がすごいのかを言葉で伝えるのはけっこう難しくて、腑に落ちる・インスピレーションを得るためには実際に体験してもらう必要があると思うのだが、まあ自分のための情報整理も兼ねて、とにかく心に引っかかったことを書いていくことにする。

HoloLensのすごいところ

  • 実空間の物体をリアルタイムで認識する。HoloLensはリアルタイムで実空間をスキャンして、その3Dモデルを生成する。このおかげで、仮想オブジェクトをリアルの床や机の上に乗せたり、壁にぶつけたり、物の後ろに隠したり、といったことができる。この動画みたいな感じ。

    この実空間認識技術は、立体映像投影技術とともに「仮想的なオブジェクトが実際そこに存在しているかのような体験」を実現するための車輪の両輪(なはず)で、Kinectで培った技術をしっかり次段階に進化させたな、という感じがする。
  • 仮想オブジェクトがしっかり空間に固定され、「そこにある」感が自然。例えば白い壁にブラウザや動画のウィンドウを貼り付けてみると、プロジェクターで写してると錯覚できるレベル。3Dオブジェクトの場合は若干の作り物感(向こう側が透けて見えたり)が否めないが、少なくとも空間への固定はすばらしい。加速度センサーやジャイロセンサーで位置や姿勢をトラッキングするだけではこうはならないはずで、実空間を認識してそれを基準に位置決めしてるからできることだ。
  • 実空間モデルをうまく活用したアプリが新鮮。例えば RoboRaid というゲームがあって、自分の部屋の壁(仮想的な壁ではなく!)に大穴が開いて敵が出て来て、そいつらが壁を這って襲ってきたりするのだが、この臨場感は今までになかった。また、VRだと周りが見えない=動けないが、MRだと動き回って実空間内で立ち回れるのも大きな違い。
  • 3Dデスクトップを持ったWindows機として仕事に使える。ブラウザ等のアプリを3D空間にぱかぱか開いて、いい感じに未来な3Dデスクトップ体験ができる。解像度が結構高く文字はクリアに読めるし、上の方にYouTubeの動画をでっかく開いておいて、チラ見しながら仕事したりできる。ウィンドウを移動したときに壁に沿って向きが変わるのもおもしろい。
    なお、3Dデスクトップは理論的にはVRでもできるはずなのに、(少なくとも私は)VRではそんなことをする気にならないというのは興味深い。おそらくMRは普段の活動の延長として脳が自然に受け入れられるとか、VRだと視界が遮断されて作業上困るとか(キーボードが視界に入らない、コーヒー飲みながら仕事できないなど)、MRの方がこのユースケースに向く理由があるのだろう。
  • 思いのほかコンパクトで軽い。579gらしいが、これだけの3D処理を常時走らせるPCとバッテリーが入ってると考えれば、かなり頑張ってると思える。もちろん長時間付けてると疲れるし、もっと軽くなって欲しいけど。
  • 特別な開発環境が要らない。HoloLensアプリを少しだけ書いてみたところ、HoloLens向けの特別なコンセプトがほとんど登場しなかったのにはほほぅと感心した。Kinectの場合にKinect SDKが必要だったのとは異なり、ビルドするのは普通のUWPアプリで、Unity上でVirtual Reallity Supportにチェックを入れるだけ、といったノリ。これは開発環境がちゃんと次の技術を見ながら設計されており、HoloLensをその上の一バリエーションとしてちゃんと乗せていることが見て取れ、基盤屋視点でGood Job!と言いたい。

HoloLensのすごくないところ

誤解を避けるために言っておくが、二元的にHoloLensの技術的評価を下したいわけではない。何をすればHoloLensならではと言えるのか、将来的にどんな伸びしろがあるか、現状の技術的限界を回避していいアプリを作るにはどんな工夫ができるか、を考えるためのネタである。

  • 視野(仮想オブジェクトが投影される範囲)が狭い。これは既に多くの人が指摘しているところだろうが、仮想オブジェクトはリアルの視野(これはけっこう広い)の中央の限定された範囲にのみ投影される。例えば等身大の人間を目の前に置いても体の一部しか目に入らないのでガッカリである。一方スターウォーズレイア姫のメッセージのように視野の中心にミニチュアの人を置くのはまったくOKだし、ユーザの意識が視野の中央に向くようにアプリを設計することで緩和できるものだと思う。
  • 仮想オブジェクトにあまり近づけない。どうやら85cmが表示限界のようで、それより近くにものは表示できない。つまり、目の前の机の上に仮想オブジェクトを置いて作業するアプリは作れないだろうし、猫と遊ぶアプリを作っても「わーかわいいー」と近づいたら消えてしまって(´・ω・`)ショボーンな体験になってしまう。
  • 手で仮想オブジェクトに触れるインタラクションが作りにくい。自然に手が届く範囲にものが表示できないので必然的にそうなる。例えば猫と遊ぶアプリを作っても撫でられない(手をうーんと伸ばせば届かないこともないが、それは得たい体験ではない)。個人的には仮想空間との手でのインタラクションはすごくやりたいことだと思うのでこれはかなり残念な弱点だと思う。とは言えすぐに解決できそうにもないので悩ましい。
  • 3Dコンテンツ表示系は(一人だと)面白くない。これは先述の「実空間モデルをうまく活用したアプリが新鮮」の逆と言える。宇宙や人体の3Dコンテンツ表示系アプリを試したら、「これ部屋の電気消した方がいいね…あれ、それってVRの方がいいってことやん!」ってなったので。ただし、複数の人がHoloLensを付けて同じ仮想空間を共有し、指差しながらあーだこーだ議論するならMRの意義が出て来るだろう。仮想空間共有はまだやったことないので是非試してみたい。

なおHoloLens開発を始めるにあたり、中村薫さんの資料 https://docs.com/kaorun55/4557/hololens を大いに参考にさせていただきました。今後もトップランナーの皆さんのお知恵を拝借することになると思いますので、よろしくお願いします!