VRC_Pickup

挙動・仕様など

  • World HeightによるRespawnをするにはComponentsのVRC_ObjectSyncが必要
  • レイヤー設定を行っている場合はPickupレイヤーに割り当てられ、このレイヤーはプレイヤーと衝突しない。
    (参考: http://vrcprog.hatenablog.jp/entry/data-layers )
  • naqtn: 実行時 pickup のワールドからの検出は、アバターの手の先に見えない棒が出ていて、それとのコライダーの enter/exit のようになっているっぽい。実際の実装がどうであるかは別として、その辺の機構と関連がありそう。他のオブジェクトに埋もれた pickup が取れなくなる(メニューが出なくなる)ことがあったので、アバターの手の先にオブジェクトを探すようになっているのかも。
  • ObjectSyncを付ける場合、このコンポーネントが付いているオブジェクトを親にして、子や孫にはObjectSyncを付けないようにすれば、Ownershipの問題は起きにくい模様
  • Ownershipについて:VRC_ObjectSync
  • DisallowTheft:今現在掴んでいるプレイヤーから横取りできないようにする(フリーの状態では効果がない)
  • 見えないpickupが手に残ってしまったら、pickupのDropメソッドをAnimation使って呼ぶと解消できる
  • DisallowTheftにチェックを付けていても、TakeOwnershipで親の所有権をとった場合、横取りされる
  • 通常、空のOnInteractとPickupを用意し両コンポーネントのProximityを同値にして使用することになる(参考 https://twitter.com/mukaderabbit/status/1031545124507897856 )
  • PickupUseDownした直後にPickUpするとコライダーが自分に当たるようになる

掴める距離、Proximity

  • 現状ProximityがPickup単体では動作しないが、VRC_TriggerのOnInteractと組み合わせることでPickupできる距離を変更できる
  • Pickupできる距離はOnInteractとPickupのProximityの小さい方となる
  • PickupのProximity値がOnInteractの値より小さい場合、差分の距離はPickupできないがOnInteractできる
  • 掴める距離を伸ばしたい時、Triggerと併用しない場合はコライダーを大きくしてもいい

本Compornent特有のAction

  • PlayHaptics : VRコントローラを振動させる。振動が一度のみであり、連続実行させて振動を強くする場合はuGUIのButtonからPlayHapticsを連続で実行させるとよい。
  • Drop : Pickup中のオブジェクトを手から強制的に離す。

Animator変数の同期

  • 同オブジェクトにVRC_ObjectSyncとAnimatorが入っている場合、オブジェクトをPickupしている間中、Animatorの全変数を他プレイヤーに同期し続ける。
  • VRC_ObjectSyncが入っていない場合、Pickupしても変数が同期されることはないが、Animatorの変数が変更された時、勝手に変数が同期される時がある。(挙動が不安定)
  • https://twitter.com/hatsuca_vr/status/1030506186066415616

参考資料


コメント・情報提供

コメントを投稿するには画像の文字を半角数字で入力してください。


画像認証

カテゴリ・タグ: カテゴリ-Components

  • 最終更新:2018-08-30 17:01:09

このWIKIを編集するにはパスワード入力が必要です

認証パスワード