UDP – Real Baby – Real Family http://blog.shirai.la/baby IVRC2016にてLavai Virtual Awardを受賞したチーム「明るい家族計画」です。2人の体験者から未来の赤ちゃんの顔を推定し、リアルフェイス育児体験ができるコンテンツ「Real baby / Real family」を制作しています。 Wed, 28 Feb 2018 23:25:00 +0000 ja hourly 1 https://wordpress.org/?v=5.1.6 HTC Vive ゼロレイテンシー通信!? http://blog.shirai.la/baby/baby-project_07/ Sat, 17 Sep 2016 16:54:29 +0000 http://blog.shirai.la/baby/?p=66 こんにちは。
明るい家族計画の望月です。

HTC ViveのUDP通信に成功しました。

初期の段階では、UNETを使うのかUDPを使うのか決まらず、どちらも試してみました。

UNETを試した際に、SteamVR pluginのGameObjectをそのまま生成すると、1つのシーンで2つ以上のSteamVRが存在してしまいます。
これによりデバイスの取り合いが起こり、そのままでは使用できません。また、この競合を回避しようにも大幅なレイテンシーにより実用とはいきませんでした。

よって、今回はUNETを使用するのではなくUDP通信によりお互いのViveのpositionとrotationを送りあうようにして解決しました。
注意しなければならないのが、お互いにデータを送り付けているだけなので、基本的には同期処理はしていません。
(今回はほとんど同スペックのPCをローカルの有線接続しているので、致命的なエラーは出ないだろうという考えです。ネット経由で使うときにはまた違ったやり方でないとレイテンシー問題があるかもしれません)

これにより送受信におけるデータ量と、受信のタイミングもこちらでコントロールできるので最終段階では100~120fpsで描画することに成功しました。
したがって、遅延は10ms以下となるので「ゼロレイテンシー」といえるのではないかと。

最後にViveコントローラーの位置に手のAssetをつけて、遊んでみました(通称:ゼロレイテンシー芸人)。

補足として、SteamVRのルームセットアップを的確に行うと、現実での位置とVR空間上の位置が一致するのですが、
それをしてしまうと、VR空間上で相手に触れたときに現実でも相手に触れてしまい、デバック中に怪我人が出てしまうので、今回はこんな感じで….

9/19 我妻追記

]]>