Programming in VRChat

VRChat でのプログラミングについて調べたことの書き溜め

Layers

f:id:naqtn:20180219222128p:plain

Unity メニュー > VRChat SDK > Show Build Control Panel > Setup Layers ボタン を実行すると以下の Layer が追加される。

(pos) (name) note
User Layer 8 Interactive
User Layer 9 Player 自分を除いたプレイヤー(のアバター
User Layer 10 PlayerLocal そのクライアントを操作しているプレイヤー自分自身(のアバター
User Layer 11 Environment
User Layer 12 UiMenu
User Layer 13 Pickup VRC_Pickup コンポーネントを追加すると設定される
User Layer 14 PickupNoEnvironment
User Layer 15 StereoLeft
User Layer 16 StereoRight
User Layer 17 Walkthrough
User Layer 18 MirrorReflection
User Layer 19 reserved2
User Layer 20 reserved3
User Layer 21 reserved4

つづいて Show Build Control Panel で Setup Collision Layer Matrix を押すと次のキャプチャーのように衝突の設定が行われる。

f:id:naqtn:20180127111745p:plain

考察

  • UI と UiMenu は何にも衝突しない
  • 名前からすると Environment がワールド側の標準的なオブジェクトにつけるレイヤーとなる?
  • PlayerLocal はそのクライアントを動かしているプレイヤー
    • (Camera で Layer 設定を変えて観察してみた結果)
  • Player と Player は衝突しない(PlayerLocal も含む)
  • Walkthrough は Player と衝突しない
    • Walkthrough と Environment の違いはこの Player(および PlayerLocal)の部分のみ
    • Player が通り抜けられる Environment ということ
  • PickupNoEnvironment は Pickup に対してのみ衝突する。
    • Pickup を見つけるために内部的に使用されている?
  • Pickup が MirrorReflection から reserved4 に対して外されているのは何故?