プラベのVRChatブログ

VRChatで楽しく過ごすためのTipsをまとめてます。

【2021年11月版】Udon/SDK3ワールドでPickup可能オブジェクトを作る

概要

この記事では、VRChatのUdon/SDK3ワールドでPickup可能オブジェクトを作る方法をまとめています。
何度か仕様変更があったようで、古いやり方しかWebに載っていない場合が多かったため、最新のやり方を書きました。

Pickup可能オブジェクトの作り方

ローカル版(非同期)とグローバル版(同期)の作り方を解説します。

ローカル版(非同期)

  1. Pickup可能オブジェクトにしたいGameObjectに「Udon Behavior」コンポーネントを追加する。そのProgram Sourceに「Empty」を指定する。これはVRCSDK3に初めから同梱されている「何もしない」コードです。
  2. Colliderがない場合は、なんらかのColliderを追加してIs Triggerにチェックをつける。
  3. 「VRC Pickup」コンポーネントを追加する。
  4. (物理が無くて宙に浮くオブジェクトにする場合)同時に追加される「Rigidbody」コンポーネント項目にてUse Gravityのチェックを外し、Is Kinematicにチェックをつける。
  5. (物理法則に従い落下するオブジェクトにする場合)「Rigidbody」コンポーネント項目にてUse Gravityのチェックをつけ、Is Kinematicのチェックを外す。
  6. Layerを「Pickup」に指定する。
コンポーネント追加例
作成例
レイヤー指定
レイヤー指定

グローバル版(同期)

ローカル版と同じように作成した後、「VRC Object Sync」を追加する。
他のプレイヤーからオブジェクトを奪い取れるようにしたい場合は、「Allow Collision Ownership Transfer」にチェックをつける。

コンポーネント追加例2
作成例2

以上