これは、Oculus Rift Advent Calendar 2016の6日目です。前回は、@obaatsu さんの 『ふぉとゆに』をViveからTouchに移行したハナシ でした。
今回は、お題に含んでいただいてたので、VRではなく、MR(Mixed Reality)について書くことにしました。
- 0.はじめに
- 1. Meta1とは?
- 2. Meta1でできること
- 3. Meta1でのアプリの作り方
- 4. Meta2でのアプリの作り方
- 5. Meta1とMeta2のアプリの作り方の違い
- 6. 終わりに
- 参考
0.はじめに
MRといえば、MicrosoftのHoloLensが有名ですが、Metaというデバイスもあります。両者のプロモーションムービーを見ると、コンセプトが似ています。また、Metaは、もうすぐMeta2という新機種が出ます。しかし、Metaについては基本的にムービー以上の情報があまりないのが実態です。
そこで、Meta2の準備をするために、前機種であるMeta1を含めて色々と整理してみました。
1. Meta1とは?
Meta Companyが2013年に発表し、2014年に発売したHead Mount Displayです。こちらにまとめてあります。
20161014 vrarmr勉強会発表資料 slideshare
あるいはだいたい同じ内容ですが、こちらにも一通り書きました。
ARメガネ「Meta1」の概要と動作確認結果をまとめました - CrossRoad
(自分でも忘れてましたが、この時点でHoloLensに期待してたことが書いてありました)
2. Meta1でできること
ToFセンサがついているので、手の動きを認識してCGオブジェクトを操作することができます。以前紹介したものと同じですが、こんなことができます。
2-1. Grab
手でオブジェクトを握ることで、オブジェクトを移動させる
2-2. Pinch Out/In
両手の指でオブジェクトを拡大、縮小させる
2-3. Tap
オブジェクトに触ることで、操作する
また、RGBカメラによりAR表示も可能です(のはずですが、私の環境ではうまく動きませんでした)。
ToFセンサとRGBカメラを組み合わせることで、SLAMという方式も使えます。SLAMとは、「自分の位置を推定しながら周辺の地図を作る方式」のことですが、MetaやHoloLensのようなHead Mount Displayでは、三次元空間に表示したCGオブジェクトに「近づく」、「遠ざかる」ができることです。
ただし、ジェスチャーもSLAMも、認識精度は高くありません。
3. Meta1でのアプリの作り方
大前提として、Unityで開発します。他の開発方法は書かれていませんでした。Developerサイトよりunity package、ドライバーソフトを取得します。ドライバーソフトをインストール後、下記のように接続します。
Unityを起動して、Hierarchy ViewにMeta WorldというPrefabを置きます。立体視のためにCamera オブジェクトが二つ付いているなど、Meta1を動作させるための必須Prefabです。
また、Meta1で操作したいオブジェクトには、Meta Bodyというコンポーネントを追加します。
MetaBodyには、使えるジェスチャが表示されます。実際に起動させたとき、有効にしたジェスチャだけが認識されます。では全部有効にすればよいか、と考えたいところですが、有効にしたものが多いと個別のジェスチャを認識しづらくなるので、ほどほどにする必要があります。
Meta1装着時にジェスチャで操作したいオブジェクトを適当に配置してロジックを作ったら、Unityエディタで実行するか、Windows (exe形式)向けにビルドして実行します。
Meta1は先ほど示した配線図の通り、PCがないと動かず、PCの画面をミラーリングする形で使用します。ちなみに、SDK ver1.3.4でWindows10 Proの環境で使用すると、Unity Editor実行時に100%Unityが落ちます。
Forumに問い合わせをして色々調べたところ、最終的にUnity Editorの32bitを使うことで回避できました。
(Meta2でも類似現象が発生するかもしれないので、参考までに記載しました)
4. Meta2でのアプリの作り方
引き続きUnityで開発する方針は固定とみてよさそうです。Meta2未発売のため詳細は不明ですが、1回だけMeta社がブログでHello World的なアプリの作り方を公開していました。
https://blog.metavision.com/meta2-tutorial-how-to-build-a-cube
この中にはYou Tubeのリンクも貼られており、Unityを使って開発する流れが具体的に解説されています。
5. Meta1とMeta2のアプリの作り方の違い
動画を見ていて、Meta1との違いがいくつかわかったので、整理してみました。
項目 | Meta1 | Meta2 |
---|---|---|
基本となるPrefabの名称 | Meta World | Meta2 |
操作したいオブジェクトに必要な処理 | Meta Body Componentを追加 | 追加不要。Create Objectするだけ |
SLAM機能 | SDKのver1.1.0から使用可能。ただし精度は低く、ドキュメントにもα版の実験的なものだと書かれていた | 最初から使用可能。You Tubeの動画を見る限り、CG上に表示させた両手で、オブジェクトを自在に制御できていた。精度はよさそう |
操作方法 | 規定のジェスチャでのみ制御できる | まるでオブジェクトが実在するかのように、自由に操作できる |
(ブログの内容を元にした考察です。開発状況によって、今後変わる可能性があります)
まだ情報が少ないですが、Meta1よりもアプリ開発が楽になり、精度が上がっていると思われます。
6. 終わりに
これまでのMeta2の情報を見ると、Meta1でうまくいかなかった点が改善されているようです。予定よりも発売日が遅れていることだけが懸念ですが、Meta1の時も1年近く遅れたので気長に待とうと思っています。
2016年は、MicrosoftのHoloLensが発売されたり、LenovoからGoogleのProject Tangoベースのタブレットが発売されたりと、VRだけでなくMR関係の話も盛り上がりました。
また、
- VR向けHead Mound Displayの大手であるHTC VIVEが、Microsoftと一緒にVR/MRのデモを披露して連携をアピール
- IntelがVR/ARを意識したHead Mount Display「Project Alloy」を発表
など、VRとAR/MRの融合も起きつつあります。個人的には、VRとAR/MRは構成する技術が多く、相互に発展していくものと考えています。2017年もブログや勉強会などを通じて広く情報発信しつつ、色々な方と交流できればと思いますので、引き続きよろしくお願いします。
明日は、@nyanko_omori さんによる、Oculus Touchのお話です。よろしくお願いします。