-
Notifications
You must be signed in to change notification settings - Fork 38
ExternalReceiver.cs
デイジーチェーン機構の仕組み上、EVMC4U基本コンポーネントは1GameObjectに1つである必要があります。
1つのGameObjectに複数のEVMC4U基本コンポーネントがセットされている場合、動作は不確定になります。
VMCからデータを受信するには、uOSC Serverが同じGameObjectにアタッチされている必要があります。
ExternalReceiverでのデフォルトのポートは39539です。
uOSC Serverが存在しない場合、ExternalReceiverはMasterモードになります。
uOSC Serverが存在しない場合、ExternalReceiverはDaisyCahinモードになります。
この場合、MasterとなるExternalReceiverが別に必要となります。
操作対象のModelを入れます。
VRM規格、HumanoidかつAnimatorが付いているGameObjectである必要があります。
姿勢同期は下記の通り切り離せるため、あくまでモデルを指定してください。
位置同期系の処理を一切止めます。Status表示も更新されなくなります。
ポーズを固定し、撮影するときなどに便利です。
Root姿勢の同期に関するオプションです。
Root位置を操作する対象を指定します。
nullの場合、Modelが自動で指定されます。
主にVR時に使用します。
Root回転を操作する対象を指定します。
nullの場合、Modelが自動で指定されます。
主にVR時に使用します。
Rootの位置情報を同期するか(既定でtrue:する)
複数体同時に動かしたり、ルームスケール位置を反映せず強制的に制御したい場合はfalseにすると便利です。
ただし、ルームスケールでの移動ができなくなり、オブジェクトの原点に固定されます。
Rootの回転情報を同期するか(既定でtrue:する)
ルームスケールでの回転ができなくなります。
カメラに常に向かせたいときなどはオフにしても構いません
Rootのスケール・オフセット情報を同期するか(既定でfalse:しない)
主にMR撮影用の機能です。現実の体の大きさ・位置と厳密に同じになります。
VMCをMR撮影モードにする必要があります。
VRMのBlendSharp(表情・リップシンクなど)を同期するか(既定でtrue:する)
オンのとき、VRMのBlendSharp(表情・リップシンクなど)を同期します。
VRMじゃないモデルを動かしたいときや、表情などを同期したくないときにオフにします。
ボーンの位置情報を同期するか(既定でtrue:する)
UnityとVMCで全く同じVRMを読み込んでいるときはオンにすると首の位置などの精度が上がります。
一方で、UnityとVMCでちょっとでもボーン位置が違うモデルを読み込むと酷い壊れ方をします。(指が伸びる、首が伸びるなど)
腰が不自然に浮く問題が発生するため、v2.6より既定でオンになりました。
それが気にならない場合はオフにすると違うモデルに同じ動きが適用できるようになります。
通常同期するべき情報を部分的にカットする設定です
手の指のボーン情報をカットします。
これにより、指認識グローブなど別のシステムからの入力と干渉しないようになります。
目のボーン情報をカットします。
これにより、視線認識システムなど別のシステムからの入力と干渉しないようになります。
ローパスフィルターを掛けます。
手ブレ防止、劣悪通信環境下での補助などに利用できます。
ボーンの位置に簡易ローパスフィルタを掛けるか(既定でfalse:しない)
手ブレやガクつきをなくしたい場合にオンにしてください。
ボーンの回転に簡易ローパスフィルタを掛けるか(既定でfalse:しない)
手ブレやガクつきをなくしたい場合にオンにしてください。
簡易ローパスフィルタ係数(0~1:既定で0.7)
1に近いほど過去の影響が強くなる
1.0あるいは以上にすると正常に動かなくなります。
現在の状態が表示されます
デイジーチェーンとしてデータを流す先を設定します。
通常は以下を指定します。
- InputReceiver
- DeviceReceiver
- CameraReceiver
- CommunicationValidator
対象のGameObjectにはIExternalReceiverが実装されたコンポーネントが必要です。
上記に加え
更新されたデイジーチェーンを内部に再読込する
シーンを終了する