Mercari Engineering Blog

We're the software engineers behind Mercari. Check out our blog to see the tech that powers our marketplace.

Magic Leap 初の自社主催カンファレンス L.E.A.P. 参加レポート #LEAPCon

こんにちは。研究開発組織“R4D”のXRチームで、インターンとして主にHoloLensの研究開発などを行なっている、XR Developerの @liketableteninu です。電脳コイルの世界を目指しています。

去る10月9日と10月10日に、ロサンゼルスのMagic BoxにてMagic Leap初の自社主催カンファレンスとなるL.E.A.P.に参加してきました。

L.E.A.P. | Magic Leap



今回は開発者を中心に事前抽選が行われており、限られた人のみが参加できるカンファレンスでしたが、幸運にも参加できました。

XRチームではMagic Leapを2台所有していて、電波暗室環境のもとで検証を行なってきました。今回、L.E.A.P.への参加に先駆け、事前にUE4を使ってサンプルアプリをビルドし、ハンドトラッキングや視線検出などの特筆すべき機能などについては触れておきました。しかし、まだまだ初心者という気持ちでカンファレンスに臨みました。

出発前

参加者にはマイページが用意され、そこから詳細なスケジュールと、デモやセッションの予約などが可能になっていました。スマホアプリからもアクセスでき、初のカンファレンスへの意気込みを感じました。

セッションはDesign & CreativeとTechnicalの2トラック各10セッションが用意されていました。

また、実際に体験できるデモは朝から晩までぎっしりと体験枠が配置されていたものの、予約開始から間もなくすべての枠が埋まってしまうほど注目されていました。中には8つ予約できたけれど、運営から2つに減らしてくれと言われる方もいたそうです。私は3つのデモを予約できました。

f:id:ikkou:20181016191841p:plain

前日

期間中はL.E.A.P.が割引価格で案内していたホテルに滞在しました。ロビーでは早速案内看板による出迎えがあった上、ルームキーまでL.E.A.P.仕様となっていて、長旅で疲れた気持ちを吹き飛ばしてくれました。

f:id:ikkou:20181016191918j:plain

レセプションパーティー

カンファレンス初日は参加証の受け取りとレセプションパーティーが予定されていました。早朝6時から30分間隔でホテルからカンファレンス会場までのシャトルバスが出ていたため、基本的に会場までの移動に困ることはありませんでした。10〜20分で到着しますが、到着時間が大雑把であったため、今後参加される方は時間に余裕を持って乗ることをおすすめします。

人数は少ないものの、日本から他の参加者(@tokufxug)も来ていたようで、連絡を取り合い道中は共に行動する事になりました。7時から受付が始まるようだったので、余裕をもって6時のバスに乗り込みましたが、Magic Leapのスタッフが数人乗車しているくらいでした。

f:id:ikkou:20181016191945j:plain

7時を少し過ぎた頃に開場し、入場パス及びコインのようなものを受け取って受付が終了しました。この入場パスについているコインのようなものは、クリッカーと呼ばれるデバイスです。参加者間で近づけてクリックすると、あらかじめマイページに登録しておいた連絡先が交換されるというすぐれもので、「クリックしませんか」という感じで気軽に話しかけるきっかけにもなりました。

f:id:ikkou:20181016191956j:plain

初日は夜のレセプションパーティ以外のイベントがなかったため、会場をすこし周ってホテルに戻ろうかと考えていましたが、会場で知り合った人たちに、現地のフルボディトラッキング施設に連れて行ってもらいました。また、Magic Leap界隈で有名な人達にMagic Leap開発に関する質問をしていた方へのMagic Leapからのインタビューに同行するなどしました。結果として、あまりゆっくりする間もなくレセプションパーティの時間を迎えました。

Magic Leapはよく月へと向かうシャトルをモチーフにしたデザインを用いていますが、会場となったScience Centerは、そのイメージに沿った最適の場所だと感じました。

f:id:ikkou:20181016192009j:plain

会場で目立ったのが、Magic Leap公式キャラクターのLeaperくんをモチーフにした赤いキャップを被った集団です。彼らは #LeapNation という非公認ながらMagic Leap界隈で最大の開発者コミュニティのメンバーでした。

また、Magic Leap最大の出資者であるAlibaba Groupからも6人の参加者が来ていました。他にもSAPやFacebook、Twitterからの参加者とも出会い、世界中から注目を浴びているイベントであることを感じました。

立食形式のパーティで、一般参加者の他にも、Magic Leapから多くのエンジニアやクリエイターが参加していました。Computer Vision部門のSenior DirectorであるJean-Yves Bouguetさんや、Interaction LabのディレクターであるBrian Schwabさんとも直接お話できました。

パーティ終了後、ホテルに戻ってMagic Leap OneのWorldアプリ(iOSでいうApp Store)を起動しました。すると、前日には確認できなかったアプリが新たに複数追加されていたり、アップデートが入っていたりしました。翌日にデモが予定されているアプリも含まれていたため、急遽被っていたデモを他のものに変更するなどのハプニングも発生しましたが、寝るまでの間しばし楽しむことが出来ました。

Magic Leapのもたらす未来が垣間見えたデモ

9時から始まる基調講演に先立ち、早朝7時からデモ会場がすでに開かれていて、多くの参加者同様、私も寝ぼけ眼をこすりつつ向かいました。

デモ会場入口でのクリッカーを使った予約確認を終えたら、いよいよデモ体験と思いきや、まずは個々人に最適の体験をしてもらうためスタッフによるマンツーマンのフィッティングをする必要がありました。フィッティングは、視力に合ったレンズの選択と鼻の高さに合ったノーズパッドの選択、そしてIPD(瞳孔間距離:左目と右目の瞳孔がどれくらい離れているかを表す数値)計測の順で行われました。

会場には事前に8種類の度付きレンズが用意されていて、自分にもっとも近い度数を自ら選ばせる形でした。レンズにはマグネットがついていて、Magic Leap本体に簡単に装着できるようになっていました。実は度付きレンズは今回初お披露目で、2018年中に自分の度数にあったものを公式に発注できるようになるそうです。

f:id:ikkou:20181017163017j:plain

Magic Leap Oneはメガネを装着しての使用は困難で、コンタクトを付けた状態では焦点調節があまりうまくいかない印象を受けたので、このような対応はありがたいです。

f:id:ikkou:20181017195412j:plain

f:id:ikkou:20181017195155j:plain

ノーズパッドの調節は、最適のパッドの高さを教えてくれる既存の機能が用いられました。ちなみに典型的なアジア人として、最も高いパッドである「5」を当然のように推奨されました。

IPDの計測は、クレジットカードのような黒い線の入ったカードを額に当てた状態で、専用のスマホアプリで撮影すれば完了です。Magic Leap OneにはIPDの異なる機体が2種類存在するため、これによって適した機体を選べることになります。

f:id:ikkou:20181017163242j:plain

フィッティングのオペレーションは順調に進めば3分くらいで終了し、個人のフィッティング情報が記載されたカードを手渡されます。

f:id:ikkou:20181017163435j:plain

フィッティングが終了し、カードを持ってデモブースに赴くと、スタッフがカードに記入された情報を基にMagic Leap Oneのカスタマイズを行い、装着を手伝ってくれました。以下では私が体験できたデモについて紹介します。

Onshape 3D CAD

f:id:ikkou:20181017163923j:plain

Onshapeはクラウドで動くCADソフトです。本デモでは、複数人で現実空間に配置された3Dモデルを共有し、操作する体験をすることが出来ました。

まず、ユーザは表示させたい3Dモデルを選択し、現実に配置させます。この時点で他のユーザにも同じ位置に同じ寸法でモデルが共有されています。それぞれのユーザはコントローラを通してモデルの回転・移動・拡大縮小を行えるだけでなく、特定箇所にメモを書き込むことも可能で、これらの操作も共有されていました。体感では操作に遅延などはなく、共有されているモデルの表示位置にもズレはなかったように思えます。

デモの同時体験人数は3人で、まだ大規模な人数での共有は試していないとのことでした。

CADソフトという視点で見ると、現時点では機能が非常に限定的ではありました。しかし、これが更に作り込まれていけば、いずれはHoloLensのコンセプトムービーにあるようなコラボレーションが実現できるのではないかと期待できるものでした。またHoloLensと違い専用の6DoFコントローラがあることは、このような複雑な操作をする際に、ジャスチャーのみの操作と比べると大きなメリットになると感じました。

SketchUp

f:id:ikkou:20181017164334j:plain

SketchUpは建築を始めとした分野で利用される3Dモデリングツールです。本デモではSketchUpの制作会社であるTrimble社屋のモデルを卓上で確認できました。

ユーザは縮小されたモデルを卓上に配置し、それを様々な方向から確認できます。コントローラでスケールの変更も可能でした。またモデルを実寸大で表示し、直接歩くかコントローラを使って建物内を移動しつつ、気になった部分の寸法を始点と終点を指定して測定する機能も搭載されていました。

OnShapeのデモと異なり、複数人での体験が共有されなかった上、建築物ほどの大きさのモデルを限られたスペースで見る形になりました。そのため、Mixed Realityとして見せる必要性をあまり感じられず、Virtual Realityとして見せる方がより適しているのではないかと感じました。もし屋外に配置でき、歩き回れたのであればまた違ってくるのではないでしょうか。

Wingnut AR Pest Control

Wingnut ARは初期の頃からMagic Leapと協力関係にあった開発スタジオで、今回はラボに出現した毒蜘蛛を退治する研究員になりきる一人称視点のゲームを用意していました。

このゲームには専用の部屋が用意されていて、この部屋にうまくオブジェクトが配置されるように事前にセッティングされた状態でした。プレイヤーは皮肉めいたガイド音声(Virtual Virtual Realityを体験したことがある方は、そのガイド音声を思い出してください)に従い、様々なアクションを行ないます。それは棍棒や掃除機を駆使して様々な場所から出現する毒蜘蛛の退治であったり、化学薬品を調合してのゴキブリ駆除でした。さらには、床下を突き破って出現する巨大な触手に火炎放射器を手に対峙したりなど、一連の手に汗を握るストーリーを体験できました。

Magic Leapの特徴として、光学透過(Optical See-Through)にも関わらず像がくっきりと見えるが挙げられます。これにより、特に床が壊れてバーチャルな下の階が現れたときは、本当に床に穴が空いたのではと思えるほどでした。もちろんそれまでのストーリー展開で完全にゲームに入り込んでいたことや絶妙に調節された照明環境なども、リアリティを向上させることに一役買っていました。

こうしたSpatial Computingを活用したゲーム体験というのは、流石に長年協力関係にある会社だけあって、一朝一夕では作り上げられない熟練の技のようなものを感じました。ただ先ほどのSketchUpでもそうでしたが、なぜこのコンテンツがMixed Realityデバイス上で動く必要があるのかについて、もう少し説得力が欲しいように感じました。

Air New Zealand Fact or Fantasy Game of New Zealand

f:id:ikkou:20181017170039j:plain

残念ながら私は体験できなかったのですが、Magic Leapと戦略的開発パートナーシップを締結しているニュージーランド航空によるデモもありました。これは最大4人まで同時に体験できるコンテンツで、ゲーム的にニュージーランドを体感できるものとのことでした。

デモまとめ

全体的にスタッフによるオペレーションが徹底されていました。16個ものデモが用意されていた上、フィッティングなどの手間のかかる部分が入っていながら、大きな混乱が発生している様子もなく、綿密に準備されている印象を受けました。

今回は体験できるデモの数が制限されていたこともあり、興味はあるものの断念せざるを得なかったものもありました。例えばBrainLabという医療への応用や、Meow Wolfが作り上げたロボットに搭乗し、ナビゲートシステムをそのロボットに投影するといったデモなどです。今後また体験できる場が用意されることを願っています。

www.engadget.com

未来のビジョンとそこへ至るロードマップを示した基調講演

f:id:ikkou:20181018140433j:plain

デモを体験し終わり、提供された朝食を摂った後、基調講演の待機列に並ぼうかと思って係員に訪ねたところ、どうやらクリッカーの色によって通される会場が決まることを知りました。私は黄色に光っていたのですが、残念ながら本会場には割り当てられず、ライブストリーミング会場で視聴することになりました。スクリーンが小さく、スライドの文字がくっきりと見えなかったことは少し残念でしたが、基調講演自体は非常にワクワクさせるものでした。その中でも印象に残ったいくつかのキーワードやスライドを紹介していきます。

なお基調講演はアーカイブとしても残っているので、気になった方はぜひ直接ご覧になってください。

www.youtube.com

Magicverse

Magicverseというキーワードが初めに登場したのは、基調講演でMagic LeapのCEOであるRony Abovitzと、SVP兼Creative Strategy、Chief Futuristの対談においてでした。Spatial Computingの到達点として紹介されたこの単語の解説は、まずは三者のVerseという言葉に対する認識から語られました。ただ、すごく抽象的な言葉が用いられていて、そのうちの一言を引用するなら、“Verse can be anything” が挙げられます。Magicverseはそれらの集合体、つまりは世界そのものだと言いかえることもできそうです。Spatial Computingによって世界を認識し、新たな世界Magicverseを作り出すことがビジョンであるように感じられました。

そしてこれを実現するために4つのNorth Star-永遠の理想として追い求め続けるべき目標-を初公開しました。

  • Sensory Field Computing
    • 機械を通して五感に伝わる世界の情報をよりリアルに近づける
  • Life Stream
    • 機械を通して装着者個人の行動や感情を正確に捕捉する
  • Human Centered AI
    • Sensory FieldとLife Streamから得たデータを基にDeep Learningを用いて個人に最適化されたAIを構築する
  • City Scale
    • 限られた環境の部屋内だけではなく、より複雑で広大な外部都市環境へと拡張する

その後、さらに踏み込んだMagicverseの説明がされました。

現実の物理世界(Physical World)はただ1つ(講演では“Singleton”と表現)であるように、電脳世界(Digital World)も唯一のものとして捉えています。しかしそれは電脳世界が静止していることを意味するわけではなく、絶えず更新され・動き続け・敏感な、いわば物理世界の魂であると考えるのが妥当だそうです。これは明確にViratual Realityとは異なっていて、あくまで現実の物理世界に根ざしていることが重要です。この1つ魂の上で、様々な新しい世界を作ってもらうことが、現在Magic Leapが開発者やデザイナーに求めていることのようです。このような更新される世界は、5G通信がもたらされた後により現実味を増すことでしょう。

f:id:ikkou:20181018160052p:plain

新しい世界の構築と言いましたが、それらは複数のレイヤーに分けられます。図に記されているレイヤーはあくまで一例であって、これら以外にあっても構いません。それぞれのレイヤーにはそれぞれの役割と目的があり、どのレイヤーの情報を表示するかは最適化されたAIによって選択されます。こうやって複数のレイヤーの情報が複合的に現実世界に重畳されている世界というのが、Magicverseが考えているものなのだと理解できました。

スマートフォンで動作するARCloudに挑戦している6D.aiのCEOであるMatt Miesnieksさんも、この図を引用して「これはまさに私が目指しているARCloudだ」とツイートしていました。

このように、当然Magicverse以外にも同様のコンセプトのもとで動いている企業はあります。そういった“Xverse”ともうまく融合できるよう、オープン且つ非集権的な形で構築していきたいと、Magic Leap CEOは話していました。

今後のロードマップ

f:id:ikkou:20181018160108p:plain

壮大なコンセプト紹介のあとに、より現在に即した直近のロードマップが発表されました。

この詳細については、MoguraVRさんの「Magic Leap、ソフトウェア強化の見通しを明かす マルチプレイ対応など」で分かりやすくまとめられているため、参考にしてください。

www.moguravr.com

先ほどの4つの目標に照らし合わせると、まずLive Stream、次にSensory Field ComputingやCity Scaleに関するアップデートが予定されていることがわかります。

Human Centered AIに関しては、ロードマップには明記されていません。しかし、Micaという精緻な人型のAIや、環境やユーザについて理解してアシスタントのような役割を果たしてくれる個人に最適化されたAIであるAYAなどの開発が行われているそうです。Micaに関しては会場でデモもあり、それについてまとめた「SiriやAlexaの人間化を予感 現実に現れるAIアシスタント」という記事が詳しいです。

www.moguravr.com

基調講演では他にもMagic Leap One上のブラウザであるHelioに関する新情報や、今回デモを開発したパートナーによる発表など、合わせて3時間にも及びました。

基調講演まとめ

電脳コイルの世界を目指している者として、Magicverseは非常に共感できるコンセプトでしたし、このようなビジョンを掲げている企業を信頼したいという気持ちが強くなりました。しかし理想が高いほどそこへの道のりは険しくなるのも当然で、どのような道筋をたどってそこに到達しようとしているのか、今後も継続的に注視していきたいです。

またプラットフォーマーだけでは到底実現できる世界ではないと思っていて、クリエイターにより魅力的だと思ってもらえるよう、講演中にあったようなクリエイター支援の様々な取り組みを継続してほしいです。

昼食

f:id:ikkou:20181018140947j:plain

基調講演がライブストリーミング会場だったことに加えて非常に寒かったこともあり、途中退室したところ、ちょうど昼食のサービスが始まっていました。サラダやブリトーなどが用意されており、ドリンクは自販機から自由に取れました。基調講演から次のセッションまで1時間の猶予はあるのですが、基調講演が終わったあとの昼食待機列の後方にいた方たちは多分セッションに遅刻したのではないかというくらい混雑していました。

f:id:ikkou:20181018180448j:plain

また会場内外にはコーヒーなどを提供する屋台も設置されていて、余裕があったので私は抹茶フラペチーノを頼み、次のセッションへと向かいました。

セッション

セッションはDesign&Creative Trackと、Technical Trackの2つが用意されており、各トラックの中でも2つほど並列でセッションが入っていました。

10/18現在、まだセッション動画は公開されていませんが、Magic Leapの方に聞いたところ、いくつかはアップロードされるとのことでした。実際セッションにはMagic Leapの人がカメラで撮影をしていました。また更新があればリンクを載せるようにします。(2018年11月5日更新)一部セッション動画はMagic Leapの公式YouTubeチャンネルにて公開されています。

www.youtube.com

A Practical Guide Getting Started with Magic Leap and UE4 

f:id:ikkou:20181018141305j:plain

1つ目はUE4を使ったMagic Leapの開発に関するセッションに参加しました。私は事前にUE4が公開しているMagic Leapのサンプルをビルドして臨みました。

普段扱っているUnityでの開発と比べたときのメリット・デメリットについての内容を期待したのですが、実際はサンプルプログラムの解説が中心となりました。相変わらずスクリーンが小さいため、解説をされてもあまり見えずに終わってしまい、消化不良気味でした。しかし、今後UE4に取り入れられるMagic Leap One関連の機能のロードマップについての話があったので紹介します。

HelioでのWebXRに対するアップデートを反映してか、Vulkanの対応が多く見られます。個人的にはOcclusionが一番試してみたい機能です。

OcclusionといってもHand Occlusionを指しているようでした。これが実現すればLeap MotionのProject North Startのような表現がMagic Leap One でも出来るようになる可能性があります。

Experimenting With Inputs

www.youtube.com

2つ目は、Magic Leap Oneに搭載されている入力システム周りを一通りおさらいする、そんなセッションでした。既に開発に没頭している開発者からすると新しさはあまり感じられなかったようですが、まだまだ開発経験が乏しい私からすると、いろいろ新しい知見やTipsが得られる有意義なセッションとなりました。

セッションは、Internal inputs、Experimental AppsとExternal inputsの3つのパートに分かれていました。

Internal inputs

視線やジェスチャ、コントローラなど、既にAPIに組み込まれていて、Magic Leap One内で完結する入力を取り扱ったパートでした。

f:id:ikkou:20181018141558j:plain

視線を使った入力はMRデバイスのHoloLensには搭載されていないもので、個人的には人がどこに注目しているのかを探ったり、感情を推定する際に有用な情報なので積極的に活用していきたい入力の1つです。

セッションでは頭を固定した状態で視線のみでブロックを選択するデモ動画が流されたので、視線の方向が取れるだけではなく、その強度も取れることが分かりました。また視線を入力として使う際のTipsとして、なめらかな視線移動のために線形補間するほうがいいこと、カーソルを隠して視線とのフィードバックループを防止することが挙げられました。2番目は言われてすごく納得したのですが、もしカーソルが表示されていた場合、視線はどうしてもカーソルに向いてしまいます。せっかく視線であるポイントを見ようとしたので、カーソルの追従が遅くてついついカーソルを見てしまったりなどしたら、視線入力は正しく機能しなくなってしまうということです。

f:id:ikkou:20181018141942j:plain

f:id:ikkou:20181018141949j:plain

次にコントローラによる入力ですが、タッチパッドが実は押し込み可能で、なおかつ0から1の小数値をとれることは驚きでした。コントローラのジャイロとタッチパッドを利用した「6DoFの物体移動」も作ろうとしているようです。バイブレーションによるフィードバックを得られるし、ジェスチャと違い、手を前にかざさなくても操作できます。そして、複雑な操作に適していることも強調されていました。

コントローラを使ったターゲティングをする際のTipsとして、ConeCastingを使うことが推奨されました。ConeCastingというのは、あるオブジェクトを一度ポインティングしたら、コントローラを多少移動しただけではそのポインティングが外さないようにしておく方法です。コントローラが向いている方向を直接ポインティングに使うと、選択時の手ブレなどによって体験を阻害される恐れがあるからだそうです。

f:id:ikkou:20181018142243j:plain

f:id:ikkou:20181018142248j:plain

現時点のMagic Leap Oneでは、8種類のキーポーズが予め検出できるようになっています。ただコントローラ入力と比べ、認識精度は落ちてしまいます。例えばCのポーズのつもりが、Pinchポーズだと誤認識されるといった具合です。誤認識率を下げることは体験の向上につながるため、以下の3つのTipsに従うと良いとのことです。

  1. 限定した数のキーポーズのみを検出する。
  2. キーポーズ検出結果を毎フレーム反映させるのではなく、一定のウィンドウサイズ中の変化がある閾値を超えたらキーポーズが変化したと捉えるようにする。
  3. FOVの境界付近でのポーズ変化は無視する。

ジェスチャーは、これらのキーポーズの遷移によって定義されます。そのため、人差し指を曲げるだけの動作をクリックと定義できるし、人差し指と親指をくっつけたらクリックだと定義もできます。ジェスチャを使う際は、ユーザの疲労と、社会的にその動作が受容されるのかどうかを考慮した上で実装するべきだと話していました。

ただ、後者についてはMagic Leap Oneを被っている時点で、少なくとも現時点での社会的受容性は低いと思いました。

Experimental Apps

このパートでは、まだ正式なインプットとして取り込むか迷っている、あるいはまだまだ実験段階のインプットについて取り上げていました。

1つ目は公式のスマホアプリMagic Leap Appを使った文字入力です。現状、他の文字入力手段としてはコントローラを使うものがありますが、やはりスマホでの文字入力と比べ多くの手間がかかるため、スマホを使うというのは意味のあることです。ちなみにこのアプリはまだアメリカのApp Storeでしかダウンロードできないため、日本からダウンロードする場合は少し工夫する必要があります。

次に、音声情報を利用した入力が紹介されました。1つ目はちょっと珍しいですが、吐息検出機能がMagic Leap Oneには備わっています。たとえば、息を吐いたら火を吹ける、といったことが実装できます。技術的に新しいわけではありませんが、吐息を検出するということを今まで私はあまり考えたことがなかったので、新鮮で面白いなと感じました。もちろんSpeech Recognitionも実装されていて、これによって特定のオブジェクトを移動させることも可能です。

Image TrackingやObject Recognitionも紹介されましたが、これらはまだプロトタイプの域を出ず、まだまだ実用レベルではなかったです。(2018年11月5日消去)

Image Tracking 機能は既にAPIが用意されていて、簡単に試すことができ、より自然なARマーカーとしての活用が期待されます。 ロードマップに載っていたObject Recognitionについても紹介されましたが、まだプロトタイプの域を出ず、実用レベルではなかったです。

External input

f:id:ikkou:20181018142705j:plain

このパートでは、Magic Leap Oneに何かを入力するというより、入力デバイスとして他のIoTデバイスを操作するというニュアンスでいくつかのプロトタイプが紹介されました。例えばLEDアレイの上で手を動かすとその軌跡上にあるLEDだけが光るものや、Smart Lightに手をかざして上下に動かすとそれに応じて色が変わるといったプロトタイプがありました。基本的にそれらのデバイスにはWi-Fi経由で接続するのが一番手っ取り早いということも話されていました。

入力の方法は他のMRデバイスと比べても種類が豊富で豪華に映る一方、どれが本当に作りたいアプリケーションにフィットしているのか、ここで紹介されたTipsなどを参考にして試行錯誤が必要になると感じました。

LuminOS Perception

最後に紹介するのは、Magic Leap Oneの外界の知覚を司る、Computer Visionチームによるセッションです。大別すると、環境の知覚とユーザの知覚に分かれていました。環境の知覚には自己位置姿勢のトラッキングと空間マッピング、ユーザの知覚にはアイトラッキング、ハンドトラッキング、6DoFのコントローラが含まれています。

このセッションでは、主に環境の知覚が取り扱われていましたが、少しだけアイトラッキングがどのレベルで行われているかを示す動画を確認します。瞳孔をトラッキングし、眼球の中心から視線が正しく予測されているのが分かります。これはMagic Leap Oneの内側にIRカメラが取り付けられていて、その映像から予測しているようです。

www.ifixit.com

自己位置姿勢のトラッキング

トラッキングというのは、自己位置姿勢が現実世界の座標に追いてどのように変化したかを追跡するための技術になります。通常マッピングと並行して行われる処理で、こういった自己位置推定とマッピングを同時に行う手法のことをSLAM(Simultaneous Localization And Mapping)と呼びます。ここではSLAMの詳細は省きますが、#AR輪読会 で「ARの教科書」第4章を解説したスライドを参考にしてもらえると幸いです。

www.slideshare.net

マッピングを同時にするメリットとしては、自己位置がロストした際に自己位置姿勢の再同定(Relocalization)が可能になることと、トラッキングの誤差を訂正することが可能になることが挙げられます。

単一のカメラだけでもトラッキングは可能です。しかしMagic Leap Oneでは4つのカメラを使用した上で、IMUの情報も使用し、さらに正確なトラッキング(正しくは絶対スケールの推定)をしているようでした。

特徴点を使ったマッピングを行っているらしいので、カメラから得られた全てのフレームを利用するのではなく、キーフレームという特徴がはっきりしているものを利用してマッピングをするのが一般的になります。

Magic Leap Oneにおいてはキーフレームを少々独特なPCF(Persistent Coordinate Frames)と呼称しています。(2018年10月22日削除) Magic Leap Oneにおいてはキーフレームの持っている役割を果たしつつも、それ以上の機能が持たされているPCF(Persistent Coordinate Frames)が用意されています。PCFは現実空間と同じ座標系に固定されているいるため、配置したいオブジェクトをPCFに紐づけることで、オブジェクトにも正しい現実空間における座標を保持させることができます。PCFは自動で生成され、オブジェクトをPCFに紐付ける処理もプラットフォーム側で行われるため、普段利用するときは気にする必要はなく、オブジェクトは配置された場所に居続けることができます。HoloLensを触ったことがある方であればワールドアンカーのようなものだと思っていただければ問題ありません。

より詳細は公式ページの Persistent Coordinate Frame を確認してください。ちなみに閲覧するためにはMagic Leap Creatorのアカウント登録が必要となります。

また、PCFは生成されたマップに紐付いています。そのため、一度スキャンしたことがある環境であれば、新たに生成されたPCFと以前のマップのPCFが正しくマッチングされれば、Relocalizeをすることが可能になります。これは自分に限った話ではありません。このマップを他のユーザと共有してPCFによるマッチングが成功すれば、お互いが見ている世界が重なり、小さなMagicverseが実現することになります。

まとめると、自己位置推定と疎なマッピングによって、バーチャルなコンテンツを現実に配置できる上、以前のセッションへの復帰が可能になって複数ユーザ間のシェアリングが実現されます。

世界の3次元再構築

f:id:ikkou:20181018143052j:plain

Magic Leap Oneには赤外線を利用するデプスカメラが備わっています。そこから取得したデプス画像と先ほどのトラッキングによる位置姿勢を組み合わせることで、3次元再構築が行われ、世界の表面を覆うメッシュが作られます。

このようにメッシュが作られることは、現実環境のバーチャル世界におけるコピーが作られることとほぼ等しいです。例えばバーチャル世界でバーチャルな球を投げたときに、このメッシュにぶつかることで、まるで本当に現実世界の環境にぶつかったかのような挙動が再現できるのです。また、バーチャルな球がソファなどの遮蔽物の裏に回り込んだ場合、メッシュがないと球はソファの前に描画されてしまいます。しかし、メッシュがあることで隠蔽(オクルード)され、本当にソファの裏に回り込んだかのように見えます。

再構築の品質を最高に高めるためには、現時点では日光が差していない屋内環境でしっかりと環境内を動き回って、かつ各表面をゆっくりと見て回る必要があります。鏡やガラスのような透明のものがあったり、黒色や光沢のある物体が無い状態を保証することが望ましいです。それに加えて、変化が少ない環境、例えば歩行人がいないなどであればなお良い結果となります。

では変化が起きた場合に、よりすばやく変化を反映させるためにはどうすれば良いのでしょうか。その答えの一つとして、メッシュブロックを活用する方法があります。本来は環境につき1つのメッシュを持っていますが、この場合、環境の1箇所が変化するとメッシュ全体を編集して変化を反映する必要があるため、処理が遅くなってしまいます。その代わりにメッシュを1辺1mの立方体ごとに分割し、変化に影響される範囲を限定でき、処理の高速化を期待できます。

もちろんその分ドローコストが上がるなどのデメリットも発生します。やや見にくいですが、以下の図がメッシュブロックにしたときの状態で、色は単に異なるブロックであることを示すために付けられています。

f:id:ikkou:20181018202549j:plain

メッシュの精細さLoD(Level of Detail)はMeshing APIを通して調整できます。精細さを増すことで再構築されたモデルはより正しく現実の環境の凹凸を表現できるようになります。しかし、トレードオフとして、センシティブになりすぎるため、本来平面であるべきところがガタガタするデメリットも発生します。

f:id:ikkou:20181018202600j:plain

最後に、環境の面が持つ意味を読み取る取り組みについても発表がありました。現時点ではまだ床か壁、あるいはそれ以外の面の3種類でしか分類が出来ません。しかし、例えば材質なども特定できるようになれば、ソファに球が当たったときは沈み込むような表現が可能になってきます。

f:id:ikkou:20181018202612j:plain

まとめると、世界の3次元再構築により、オクルージョンがもたらされます。そして、現実世界とバーチャルなオブジェクト間の物理的なインタラクションが可能となり、環境の持つ意味を把握できます。

セッションのまとめ

Magic Leap Oneの外界の知覚を司る部分についてのセッションは、原理などの難しい部分が省かれた説明をしていました。しかし、事前知識を持って聞くとそこまで特別なことをしているわけではなく、ただ1つ1つの処理を丁寧にこなしたことで実現できたものだという印象を受けました。

もちろんまだまだ改善すべき点は多く、例えば現時点ではまだ動き出しの原点から10m四方までしかトラッキングや再構築は出来ないのですが、これでは到底City Scaleのものを実現することは出来ません。また屋外での再構築は赤外線に頼っている以上精度が下がってしまうのですが、これをどうやって乗り越えるかも今後注目していきたいです。

Closing Party

f:id:ikkou:20181018115300j:plain

全てのセッションが終わり、外会場ではClosing Partyが開催されました。初のカンファレンスが無事終了したことを祝して、主催者、参加者が入り混じり、飲んで食べて語り合いました。

会場ではMagic LeapのSVP DesignであるGary Natsumeさんと出会いました。Magic Leap Oneが今のような形になった経緯や、レンズ周りの話を教えていただき、そして基調講演で発表されたMagic Leap One専用ケースの外観を見せてもらうことができました。しかし、残念ながら内部はまだ秘密とのことです。

私の方からは個人的に好きな「電脳コイル」について、Magic Leapが唱えたMagicverseという概念に非常に近い世界を表現しているとして猛プッシュしておきました(笑)

f:id:ikkou:20181017193124j:plain

最後に

Magic Leapとして、自分たちのビジョンやこれからのロードマップを広く発信し、開発者やクリエイターに向けた多数のデモや多くのセッションによって刺激を与えることには成功したのではないでしょうか。

まだまだコンテンツ不足のMagic Leapとしては、いかに今後パートナーに興味を持ってもらい高品質のアプリを作ってもらうか、に対しての取り組みが本格化させていくのではないでしょうか。

私も今回のカンファレンスで様々な人と出会い刺激を受け、デモやセッションでワクワクさせてもらったので、この黎明期にスタートダッシュを決められるよう今後も開発に取り組んでいこうと考えています。

ノベルティ

ホテルのルームキーやクリッカーの他、TシャツやリュックサックなどMagic Leap印の様々なノベルティをいただきました。

ノートとペンは無料配布、リュックサックは入場時に渡されるコインのようなものと引き換えで、Tシャツはクロージングパーティーでゲリラ的に配布されました。また、シールとバッジはイベントの模様をSNSに投稿することで、自動販売機から出てきました。

f:id:ikkou:20181017192626j:plain

MagicLeap Meetup vol.0に登壇します

10月20日(土)に日本初Magic Leap MeetupことL.E.A.P.報告会が開催されます。

connpass.com

Magic LeapのSenior DirectorであるLeonid ZolotarevさんとSenior ManagerであるPraveen Babu J Dさんが登壇します。L.E.A.P.に参加した縁もあり、私も登壇します。ここに書ききれなかったL.E.A.P.の話やMagic Leapに興味をお持ちの方はぜひお越しください。