UnityのVRChatのワールド作成で物を持つ・つかむ設定方法

VRCワールドで物を手に持てるようにする設定について。
物をworldに配置しても、物を掴むことができず、テクスチャ表示だけ、そしてアバターがオブジェクトを貫通してしまう。
そんなときは設定を確認してみましょう。

スポンサーリンク

物は作るだけではなく、持てるようにする設定と、周りと同期する設定と、当たり判定を設定しなくてはいけません。

Unityで左のhierarchyの動かしたいObjectを選択の後、右のInspectorの一番下のAdd componetに

VRC_Pickup(持てるようにする)
Rigidbody(VRC_Pickupと一緒に自動追加される)

VRC_ObjectSync(周りの人と物の状態を同期するようにする)
AllowCollisionTransferにチェックが入っている場合、グラブバグが起きる可能性があるので外しておく

Collider(当たり判定。Box ColliderやMesh Colliderを用途に合わせて利用)

を追加します。

そして右のInspectorの一番右上のStaticのチェックを外す。←忘れがち
(Static=静的≒動かないオブジェクトなので)

これで持つことができました!

(参考サイト)

この基本設定以外に細かいことまで、体感的に覚えるにはVRワールドで下の世界に行ってみると良いです。

VRC_Pickup ABC V4.10
https://www.vrcw.net/world/detail/wrld_848b047d-b30a-41fc-bbd4-f38ae5f7cfa8
(VRchatを開いてworldの項目押して右上の検索欄に「yagura」と入れて検索しても可。)

【VRChat】オリジナルワールドを作る【Unity】
http://bibinbaleo.hatenablog.com/entry/2017/11/24/183801

LayersがPickupになってるオブジェクトはAvatarに対しては衝突判定を持たないのでアバターが貫通することがあります。
VRC_Pickupをつけたオブジェクトは自動でLayerがPickupになるからです。

Layers – VRChat 技術メモ帳 – VRChat tech notes
https://vrcworld.wiki.fc2.com/wiki/Layers