2019
03.26

【World MR News】USBシリアル通信で外部デバイスを動かす&客観的リアリティと主観的リアリティ――「Standalone VR Meetup #01」レポート③

World MR News

3月18日に開催された、スタンドアロンVRに関連した知見やアプリに関する情報を共有するイベント「Standalone VR Meetup #01」。本稿ではその中から、組長氏と桜花一門 代表の高橋建滋氏の2組をピックアップしてご紹介する。

■USBシリアル通信で外部デバイスを動かしてみた

最近はプログラムを書くよりも半田ごてを持って電子工作をしていることが多くなってきたという組長氏(@kumi0708)。同氏がテーマにしたのは、「USBシリアル通信で外部デバイスを動かしてみた」だ。

組長氏が所属している「ゆるunity電子工作部」は、Unityと連携した電子工作を行っているコミュニティで、そこでMirage Solo用のアプリを作っている。それが『腹筋VR』だ。こちらは、踏まれた感触が返ってくるリアルな体験ができるコンテンツで、バーチャル空間で女の子に雑な感じに踏まれながら腹筋を鍛えることができるというものだ。 

女の子にお腹を踏まれている感覚を演出するために利用したのが、肩もみ機だ。こちらを家電ハックし、コントローラー部分にマイコンボードを繋ぎ、シリアル通信で制御。肩もみ機の内部には、モーターと振動する機能、LEDが光ってちょっと暖かくなる程度のヒーター機能があり、それをマイコンボードからの指示で動かせるようにしたそうだ。 

ちなみに、この『腹筋VR』は、元々2018年に行われたノベル系ハッカソン「ノアフェス」で作られたものだ。そのときは、ゲーミングPCとOculusを使用していた。それを2018年のニコニコ超会議に展示するために、諸々の機材を持っていったところ無茶苦茶重かったという。

それをどうにかしたいという意見があり、Mirage Soloへの移植をすることになったそうだ。

スタンドアロンVR のMirage Soloに移植するために、いくつかのハードルがあった。そのなかのひとつが、Unityのバージョンアップだ。最初に作られたのがUnityの5.5で、バージョンアップせずに作られていた。それを、Mirage Soloに対応させるために2017 LTSバージョンに更新している。

シェーダーが一部おかしくなっていたり、外部ライブラリのenum値や関数がなくなっていたりしたそうだが、これらを修正してコンパイルすることができた

また、PC向けUnityエディタ上で起動していたものを、Mirage Solo用にAndroidでコンパイルする必要があった。こちらも一部エラーが出たものの、ifdefで囲むことで対応している。

そもそも、Mirage SoloにUSBシリアル通信ができるのかという問題もあった。実は、Mirage Soloには充電用のUSB Type-Cがあり、それがUSB OTGに対応している。そのため、ケーブルを挿すことでデバイスを認識することができるのだ。ちなみに、Oculus Goでも同様にUSBに挿すことでデバイスを認識させることができるそうだ。

肩もみ機をマイコンで動かすために、Androidでシリアル通信をする必要があった。そのためのプラグインを書く必要があり、それが一番辛かったと組長氏はいう。このAndroidシリアル通信をするには、マイコンボードに乗っているUSBシリアルの石ごとに、すべて初期化を書く必要がある。

今回使用したマイコンボードは、中国製の安い製品を使用したため、USBの石もあまり知られていないものが使用されていた。最終的には、中国語対応サイトで初期化の方法を調べたそうだ。

これらについては、4月14日に開催される「技術書典 6」に「ゆるunity電子工作部」が出店し、そこで詳しい方法が書かれた書籍が販売される予定だ。

ちなみに、Mirage SoloのUSBは充電用であるため、シリアルのために使ってしまうと爆速で電池を消費してしまう。これは、電子デバイスもMirage Soloから給電されるためだ。そこで、現在Mirage SoloのUSBを増やすために、穴を開けることを考えているそうだ。

■客観的リアリティと主観的リアリティ

今回のイベントのトリを務めたのは、桜花一門 代表の高橋建滋氏(@oukaichimon)だ。同氏からは、「客観的リアリティと主観的リアリティ」というテーマで発表が行われた。

桜花一門 代表の高橋建滋氏。

「客観的」は、他人が体験している様子を自分が見ていることを指し、「主観的」は、自分が体験することだ。たとえば「悲しい気分にさせたいとき」に、客観的にどうするかというと、ペットを死んで悲しんでいる姿を見せるだけでいい。その姿を見ることで、自分が悲しくなってくるのだ。

これは、「ミラーニューロン」という人間に備わっている機能で、悲しい人を見ていると自分も同じ感情が湧いてくるためだ。

これと同じ状況を主観でやると、知らない猫が死んでいてもただ気持ち悪いだけになってしまう。それでは、このふたつは何が違うのだろうか。

客観的リアリティに必要なものは、視覚と聴覚、そして悲しんでいる人の情報だ。たとえば美少女が悲しんでいれば悲しくなる。自分の知り合いが悲しんでいると、悲しくなる。しかし、見知らぬ汚いおっさんが悲しんでいてもあまり悲しくならない。つまり、そういうことなのだ。

それでは、主観的リアリティに必要なものはなんだろうか。こちらは、記憶と猫にかけた時間とお金などだ。こちらは、視覚や聴覚、猫の体温などは不要だ。たとえば、実家に電話して「飼っていた猫が死んだ」と言われると、視覚も聴覚も猫の体温も一切なくとも悲しくなってしまうからだ。つまり、主観的にリアリティに必要なものは、最初にあげたものになるということである。

このように、主観と客観では求められているものがまったく異なるのである。

それでは、客観的リアリティを上げるには何をすればいいのだろうか。こちらは、映像をリアルにする、音をよくする、物語などで対象に感情移入するなどだ。主観的リアリティを上げるほうは、主に記憶になる。

記憶の形成に必要なのは、アクションとリアクションや時間、記憶を励起させる視覚情報や聴覚情報などである。このあたりの感覚は、映像を専門としている人たちには伝わらないという。これまではなぜ伝わらなかったのかわからなったが、それが初めて言語化出来た気がすると高橋氏はいう。

現状のVRは制約も多く、主観的リアリティを出すのは難しく感じる。だからこそ、うまく作る必要があるのだ。VRで『ソードアート・オンライン』を作りたいという人は多いが、自分がかっこいいと感じたものは、あくまでも客観だ。客観でカッコイイと感じたように、主観で自分がカッコイイと思うには何が必要なのだろうか?

これは剣を振ったり飛び回ったりすることではなく、本当に必要なのはVRで地元のヤンキーの後輩を作ることだと高橋氏はいう。「パイセンかっけーすよ」と言われ続けることで、主観で自分がカッコイイとうぬぼれることができるのである。

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