Contents — 7 sections
VRChatのContactギミックを試すとき、最終的には実際のアバター同士で触れて確認したい。
でも開発中に毎回、
- HMDを被る
- 右手を正しい位置へ持っていく
- 相手アバターへ触れる
- タイミングを合わせる
- 同じ条件を何度も再現する
のはかなり面倒だった。
そこでDancelaveの試験では、**人の手の代わりにワールド側からContact Senderを出す「偽の手」**を作った。
これでVR機器を使わず、実際のVRChatクライアント上でContact受信経路を繰り返し確認できる。
欲しかったのは「Unity内の再現」ではなく「実VRChatまで通る中間試験」
Dancelaveは、他人の手が胸元のReceiverへ触れるとダンスを開始するギミック。
Editor上ではAv3Emulatorを使って、
- Animator
- Contact
- State transition
- Remote clone
などをかなり試せる。
ただし、Emulatorは実VRChatクライアントそのものではない。
一方で、本物のVRユーザー2人を用意して毎回試験するのは重い。
そこで試験階段を分けた。
Static / Smoke
↓
Av3Emulator
↓
実VRChat + ワールド側の偽Contact
↓
実VR + アバター同士Contact
「全部自動化」ではなく、人手が必要な最後の段階をできるだけ後ろへ送る。
Test Worldのスポーン地点にSenderを置いた
専用の DancelaveTestWorld を作った。
スポーン地点で、ワールド側の VRCContactSender が周期的に現れる。
当時の設定では、
- 3秒ごと
- 0.4秒だけSenderを出す
という動き。
アバター側のReceiverへ、一定条件で接触を繰り返す。
つまり人間が手を伸ばさなくても、
World Contact Sender
↓
Avatar Receiver
↓
Animator / Parameters
↓
Dance
の経路を実VRChatで通せる。
実クライアントで5/5通った
実際のVRChatクライアントで確認した結果は5 / 5 PASS。
観測した内容は、
- 受信OFFでは触れても踊らない
- 受信ON後、接触から0.59秒でダンス開始
- 触れ続けても延長せず8.00秒で終了
- 5秒Cooldown中は再発動しない
- ダンス中でも受信OFFで0.02秒で停止
だった。
ここで重要なのは、Unity Editor内の疑似Contactではなく、
World Sender → 実VRChat client → Avatar Receiver
が通ったこと。
一方で、これでもまだ「他人の右手で触れた」と同じ試験ではない。
偽の手で確認できないこと
このTest Worldで確認できるのは、Contact受信経路のかなり大きな部分。
でも未確認は残る。
- 実アバターの右手Sender
- 他プレイヤーとのAvatar Interaction permission
- VR内での実際の手位置
- FBT / 3点Trackingによる差
- 人間が接触したときの操作感
- AがBを発動し、Cからどう見えるかという完全な複数人経路
だから「偽の手で5/5 PASS = Contact完成」ではない。
目的は、最後の実機試験へ進む前に、壊れている可能性を減らすこと。
GUI自動化だけでは3D接触を再現しにくかった
別の試みでは、同じPCでVRChatを2クライアント動かし、GUI自動操作から接触試験を回せないか考えた。
ただ、Computer Useのような2D GUI操作で、
「3D空間のこの位置へ手を持っていき、相手のReceiverへ一定時間触れる」
を安定再現するのは難しい。
そこで発想を逆にした。
手を自動操作するのではなく、Receiverの場所へSenderの方を出す。
試験対象がContact判定なら、その方がずっと再現しやすい。
テストは現実を完全再現しなくていい
偽の手は、本番入力そのものではない。
でもそれでいい。
試験ごとに確認範囲を明確にすれば、
- Core logic
- Animator
- Contact path
- Client behavior
- Multi-client sync
- Human interaction
を段階的に分離できる。
毎回すべてを人間がVRで確認するより、壊れた場所を絞り込みやすい。
いまの結論
VR開発は、最後の1mがどうしても実機依存になる。
だからこそ、実機試験をゼロにするより、
「人間が必要な実機試験を最小限まで減らす」
方が現実的だった。
Dancelaveでは、ワールド側の偽の手がその中間層になった。
PicoTowaでは、VRでしか確認できないものを「どこまでVRなしで検査できるか」も引き続き詰めていく。