ガジェット通信

見たことのないものを見に行こう

Oculus Touchで対戦じゃんけんする方法 前編  面白法人カヤック VR部ラボ 第2回

DATE:
  • ガジェット通信を≫

こんにちは、面白法人カヤックのVR部です。

この連載は「思いついたものを実際に作って試してみよう」というテーマで、制作者サイドの視点で、あれこれやってみて、ノウハウを共有しようというものです。

VR空間でじゃんけんしてみたい……してみたくない?


今回は、Oculus Rift向けのハンドルコントローラー「Oculus Touchを使った対戦じゃんけん機能」を作ってみようと思います。

これは、VRでプレイヤー同士がコミュニケーションをとるソーシャルVR機能の開発の第1歩のような位置づけと考えています。

ソーシャルVRといえば先日のOculus Connect 3で最先端のソーシャルVRシステムが発表されました。非常に素晴らしいものでしたが、いきなりあのレベルに連載第1回ではなかなか到達できません。かといって、単純な道具共有など、今まで見たことのある機能だとあまり面白くありませんよね。

ということで、じゃんけんです!

VRで対戦じゃんけんは、多分まだ前例がないと思います。(わざわざやろうと思う人が少ないだけかもしれませんが……)

そもそもVRで対戦じゃんけんは可能なのか

VRでじゃんけんという字面はシンプルですが、実際作るとなると気になることは色々あります。まず、「グーチョキパーってちゃんと出せるの?」ということ。Oculus Touchの操作性が、じゃんけんに合うかどうかは検証する必要があります。
次に、タイミングがちゃんと合うかどうかです。対戦はオンライン共有されたVR空間で実施しますが、「多少はラグがあるんじゃないの?」、「じゃんけんってタイミング合わせないといけないけど、オンラインVR空間上でちゃんとタイミング合うの?」というところも気になります。

Oculus Touchでグーチョキパーはできるのか


Oculus Touch(開発者版)はこちら。

Oculus Touchコントローラーの特徴は、このように「自然な手の握り」の状態でコントローラーを持つことができることです。この世で最もVRに適したハンドコントローラーと言えるでしょう。
このハンドコントローラーを持ったまま、グーチョキパーの手にできるでしょうか?


グー


チョキ


パー

できた!
さすがOculus Touch。できますね!

Oculus Touchでグーチョキパーをどうやって入力するか

グーチョキパーの手にできることはわかりました。次に、どのようにすればグーチョキパーの情報を入力できるかを探っていきましょう。

Oculus Touchは、色々な入力ができて、かつかなりシンプルにその値を取得することができます。
ソースコード的には、Oculus側から提供されたプラグインによって、

TrackedController.GetController(OVRInput.Controller.LTouch)
とすれば左手のコントローラー、
TrackedController.GetController(OVRInput.Controller.RTouch)
とすれば右手のコントローラーの情報を、どこからでも呼び出すことができます。(2016年10月上旬現在)


取得されたTrackedControllerのプロパティには、画像のようにそれぞれのボタンの入力情報が割り当てられています。


また、親指と人差し指については、ボタンプッシュに関係なく「指が立っているかどうか」を取得することができます。


検討の結果、最終的にこちらのような入力割り当てとしました。
全部ボタンプッシュの入力を使っています。実際のところ、プッシュではない、「指が立っている」の検知を用いた方がより本来の「じゃんけん」に近いジェスチャーを実現できます。しかし、繊細な検知機能であるために、誤認識が多くなってしまったため、あえなく断念。より確実性の高い、ボタンプッシュによるグーチョキパー入力を落とし所としました。

じゃんけんのタイミングが合うかどうか

次に、実際に2人でじゃんけんしてちゃんとタイミング合わせられるかどうかです。こちらは、Unityのマルチプレイフレームワーク「UNET」を使って同期させてみました。

www.youtube.com/watch?v=0NnXMHww3Ug

できた!
普通にじゃんけんのタイミングは合わせられるみたいです。

VRでじゃんけんは、できまぁす! そして後編へ

とりあえず、「普通にじゃんけんできる」ということはわかりましたね。

でも普通にじゃんけんだけするならリアルでやるのと変わりません。やっぱり、VRという電脳空間なのだから、システムの側からアシストしてほしいですよね。

というわけで、次回はじゃんけんの勝ち負けを判定してくれる仕組み、およびUNETを用いたプレイヤーの同期の仕組みについて解説いたします。

今回よりさらに技術的な内容になるため、ソースコードもご用意いたします。お楽しみに!

カヤックのVR部では Podcast の配信も行っております。
Podcast では、VRに対する情熱や考え方など、ゆるく広く話しておりますので、こちらも併せてお楽しみください。

KAYAC VR部 (SoundCloud)

Podcast用Feed (iTunesなどにドラッグ)

feeds.soundcloud.com/users/soundcloud:users:248938801/sounds.rss

カテゴリー : デジタル・IT タグ :
Mogura VRの記事一覧をみる ▶
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。

TOP