04.08
【World MR News】「xRLT vol.03 ~オンラインでやってみようスペシャル~」オンライン取材レポートその①
3月6日に開催されたXR関連のライトニングトーク大会「xRLT vol.03」。2018年7月以来、今回で3回目の開催だったが、昨今の新型コロナウィルスの影響で、本来会場に100名が来場して行われる予定であったがオンラインのみで実施されることとなった。
当日は全18名の登壇者が発表を行ったが、こちらではその中から前半6名をピックアップしてご紹介していく。
「VRのUI/UXに関するSomething」by やましん氏
やましん氏からは、「VRのUI/UXに関するSomething」というテーマでLTが行われた。VRのUI/UXを考えるときにどうすればいいか悩むことも多いが、やましん氏は既存のゲームから抽出するのが早いと考えている。
使いやすいと言われているUIはすでに数多くあり、ゲームからUIを探してくる利点としてプロトタイプを作る前に案を共有することができるというのがある。体験がメインであるVRは、企画書だけでは伝わりにくい。そのため、話しをするよりも実際に見せた方が意図を伝えやすいのだ。
やましん氏がVRのUI/UXでおすすめするタイトルは『Vacation Simulator』だ。昨年リリースされたタイトルだが、VRの開発教材としては最強と思えるタイトルだという。ベストなインタラクションの詰め合わせになっており、操作しているだけで楽しく感じる。そのため、企画職や開発職などVRに携わっているならば、間違いなくプレイすべき作品であるとやましん氏はいう。
『Vacation Simulator』のユニークな点は、メニューの出し方だ。後ろからバッグを持ってきて、そこにUIが並ぶスタイルになっている。よくある目の前にUIを並べるのはわかりやすいが、VRとして納得感のあるUIという形で優れているのである。
続いてピックアップしたのは『Rec Room』だ。こちらもソーシャルVRの中では、VRらしいUIやUXがまとまっているタイトルとなっている。ゲームやクリエイティブ部分がいい感じにまとまっており、様々なコンテンツをやるというよりはこれひとつで十分という例だ。
腕時計を見て、そこに表示されているUIを見て押すというインターフェイスはやましん氏の好みだそうだ。
既存のコンテンツは教科書だとやましん氏はいう。コンテンツの質を上げていくためにも、世界的に有名なタイトルはプレイしておくべきである。「ゲームでしょ?」といわれることも多いが、toBでもUI/UXで移植できる部分は多い。こうしたVRゲームのUI/UXは進化が速いため、なるべく2019年以降のタイトルを選んだ方がいいそうだ。
「Oculus Questのパフォーマンス最適化の基本」by こりん氏
こりん氏からは、「Oculus Questのパフォーマンス最適化の基本」というテーマでLTが行われた。この2ヵ月間、『Oculus Quest』に取り組んでいたこりん氏。完全に理解したそうだが、LTの時間が5分しかないということで、今回はその一部の紹介が行われることとなった。
『Oculus Quest』のパフォーマンス最適化に使用できるツールには、以下のようなものがある。公式のドキュメントだけでもこれだけあり、どれを使えばいいのか悩んでしまう人もいるだろう。
(Oculus)OVR Metrics Tool
(Oculus)Oculus Profiler
(Unity)Unityプロファイラー
(OSS)RenderDoc
(Qualcomm)Snapdragon Profiler
『OVR Metrics Tool』をまずインストールしたほうがいいとこりん氏はいう。これにより、ヘッドセット内でCPU・GPUの資料率やフレーム落ちの数などをオーバレイで表示することができるからだ。
Oculusのサイトからダウンロードしてきた.apkファイルを、adbコマンドでインストールすることで起動が可能だ。インストール後、「Enable Persistent Overlay」をオンにして、「BASIC」ボタンをクリックすると使用が可能になる。
予備知識として、『Oculus Quest』のCPUにはQualcomm Snapdragon 835がSoCとして搭載されている。PerfomanceコアとEfficiencyコアを4つずつ搭載。このうち、アプリの実行に割り当てられるのは、3つのPerfomanceコアだ。残りはトラッキングやシステムサービスなどで利用されている。
このアプリで使えるPerfomanceコアが3つだけというのが重要で、多くのツールはコアごとの使用率を確認することができない。『OVR Metrics Tool』などでは、CPUの使用率はひとつだけ表示される。
これは、コアの平均使用率や最大使用率になっているため、100パーセントの表示でないときでもフレーム落ちが発生することがあるのだ。
こちらについては、『Snapdragon Profiler』を使用することで、一応確認することはできる。そのため、Oculusのツールでは原因が分からないときなどには、こちらをチェックしてみるといい。
Qualcomm Snapdragon 835には、CPU・GPUレベルというものがある。『Oculus Quest』は、負荷によってクロック数が変動する。クロック数が変動すると使用率も変動してしまうため、数値を比較する場合は固定しておいたほうがいい。
ただし、レベル4などに上げてしまうと、今度は発熱でサーマルスロットリングが発動してしまうので注意が必要だ。
CPUの処理内容に関しては、Unityのプロファイラーで確認するのが一番だ。タイムライン表示にすることで、『Oculus Quest』実機の、1フレームの処理内容がすべてわかる。
このときの注意点として、GPUの例を表示しているとクエリ待ちが発生して状況がわからなくなってしまう。表示されている緑のラインが、処理オーバーになると暴れるので、そこも注視しておきたいポイントだ。
GPUの処理内容に関しては、RenderDocで確認することができる。これは、『Oculus Quest』実機で使用できるオープンソースのフレームデバッガで、描画コールごとの大まかな処理時間を計測することができる。
とりあえずは、これらを駆使して始めれば大丈夫だとこりん氏は語り締めくくった。
「ARとMRとVRの境界をなくしたい話」by DBK氏
DBK氏からは、「ARとMRとVRの境界をなくしたい話」というテーマで語られる予定だったが・・・・・・、『Nreal』は話せることが少なく『HoloLens2』は手元に来ないということで、今回は開発中で得た知見についてLTが行われた。
まずは、『Oculus Quest』でVulkanをビルドしたときの話題だ。2月初めにリリースされたものだが、その特徴はひと言で表すと「軽い」である。Unity 2019.3.sf1でOculus Integuration 13.0という環境で実施。
VulkanのビルドがOculus Integurationでサポートされていないが、XR Management packageでサポートされている。
開発自体は簡単で、Project settingsでVirtual Reality SDKの中からOculusを追加し、Graphics APIsでVulkanを一番上に追加してビルドすればいいだけだ。ビルドしようとすると、エラーがふたつ出るので、それをコメントアウトすればOKである。
OpenGLE3では約72FPS出ていたが、Vulkanも一応約72FPS出ていたがオーバーヘッドをいっぱい食っている感じであった。そのため、結論的には現状はわざわざVulkanを利用する必要性はなさそうだという。
ふたつ目は、Unityでオープンワールドを試みた話しだ。シーンを大きくしていくと原点から離れるほどZ-fightingが多く発生してしまった。1辺が3キロメートルぐらいなら起きないということで、そのサイズで制作されている。
解決作としては、Z方向のイメージが重なってしまうことがあるので、距離を離すことで上手くいくという。ただし、原点から離れるほどZの方向を離さなければいけなくなるので、見るぐらい隙間ができてしまうのもよくない。いい塩梅のところで調整した結果、先ほどの3キロメートルほどになったそうだ。
3つ目は、Unity 2019.3のすすめだ。これを使うことで、いちいちアンインストールせずに済むようになるとのこと。
「コロナをぶっとばせ! UNC進捗報告」by Satoshi Maemoto氏
Satoshi Maemoto氏からは、「コロナをぶっとばせ! UNC進捗報告」というテーマでLTが行われた。「MWC」で、MRTKの『HoloLens』以外のデバイスへの拡張についてプレゼンを実施しようとしていたSatoshi Maemoto氏だったが・・・・・・新型コロナウィルスの影響でイベントがなくなり登壇自体がなくなってしまった。そこで、このLTでは、UNC進捗報告について紹介が行われた。
同氏の活動テーマは、いろんな面白い技術を子供でも楽しめる形で伝えたいということだ。きっかけは、3Dモデルをもらい、それを『HoloLens』に入れてみたところからスタートしている。
それをきっかけに、渋谷のイベントに参加したりレッドハッカソンひろしま 2018などでも楽しんでもらったりするようになった。また、こちらのネタでリクエストがされることがあり、多数登壇することになったという。
IoTボタンをAzureと繋げて『HoloLens』に通信を送り、ボタンを押すことでUNCが表示されるという連携も行っている。また、AIと繋げるためにAzureのCustom Visionというサービスを使って、ソフトクリームの画像を認識したら出るというものを作っている。通信はしておらず、オフラインで利用することができる。
こうして最新のテクノロジーを全て使い作られてきたが、最新のアップデートでは公序良俗が気になる人のために、モザイクが掛かっているように偽装できるモードを作った。
話題の『HoloLens2』にも対応している。『HoloLens2』ではいろいろと2倍になっているため、両手が使えるようになる連写ができるようになった。
「HoloLens2を用いたコロナウィルス撃退方法の提案」by Denik氏
Denik氏からは、「HoloLens2を用いたコロナウィルス撃退方法の提案」というテーマでLTが行われた。『HoloLens2』でコロナウィルスを撃退するといわれても、今ひとつピンとこない人が多いだろう。その本題に入る前に、最近MRTK v2.3.0がリリースされた。そこれで新たに追加された新機能に空間の物体を殴って飛ばすことができるようになった。
こちらを使い、コロナを撃退するというのが主旨だ。
新たに追加された「Hnad Physics Extension Service」とは、手に当たり判定が付いたことで、AR物体とのインタラクション方法が増えている。たとえばサンドバッグのように殴ることも可能となった。
導入時の注意点としては、拡張機能であるためExtensionsパッケージをImportする必要がある。また、物理演算のため、触れる物体にColliderとRigidbodyをAttachしておかなければならない。Is Kinematicにチェックしてしまうと物理演算が無効になるので外しておくようにする。
実際に作って見たところ、殴っても当たらなかった。これは、高速で移動するRigidbodyをすり抜けてしまうことがあるからだ。この場合は、Collision Detectionの設定を変更する必要があった。
Unity 2018.3から追加された項目に「Continuous Speculative」というものがある。これを利用することで、すり抜けなくすることができるのだ。
しかし、これでも上手くいかなかった。「Continuous Speculative」自体は万能ではなく、どうしてもすり抜けてしまうことがある。そのため、ゆっくり触れることが重要なのだ。
実際にゆっくり触れてみると、コロナを殴って飛ばすという処理を実現することができた。まぁ、手に触れているという突っ込みはあるものの、一応成功した形だ。
「AR草刈り」by tatsuya1970氏
tatsuya1970氏からは、「AR草刈り」というテーマでLTが行われた。先月開催された「Tsukuba Mini Maker Faire 2020」に出展したのが、ハッカソンで生まれた草刈り機でIoT機器を付けて『スプラトゥーン』のように面積を競うゲームだ。しかし、実際の草刈り機は危ないので、おもちゃを持参している。
「Maker Faire」は、子供も多く来場するため、子供用にAR草刈り機を作った。おもちゃの草刈り機にiPadとM5Stack、モバイルバッテリー、カラーセンサーなどを取り付けている。事前準備として、UnityのダウンロードとVuforiaにマークの登録を行った。
まずは、草がないと刈れないため、草を植えるモードで草を植えていく。平面を検知すると草が生える。おもちゃの草刈り機のスイッチを入れるとLEDが光り、LEDをカラーセンサーで認識するとM5Stackにマークが出る。Vuforiaがマークを認識したら、草刈りモードに入る。
こちらは、真ん中にオブジェクトが来たらデストロイするというプログラムになっている。ちなみにツイッターを見ていたら、実は似たようなゲームが存在しており、落ち込んだそうだ。
Photo&Words 高島おしゃむ
コンピュータホビー雑誌「ログイン」の編集者を経て、1999年よりフリーに。
雑誌の執筆や、ドリームキャスト用のポータルサイト「イサオ マガジン トゥデイ」の
企画・運用等に携わる。
その後、ドワンゴでモバイルサイトの企画・運営等を経て、2014年より再びフリーで活動中。