バーチャル3Dクリエイター神部まゆみです(*^_^*)
この記事はVRChatワールドのVRCPickupについての記事です。
VRChatワールド作成関連のページは↓にまとめてあるので興味があればどうぞ。

やりたいこと:VRChatワールドに配置したVRoidのヒューマノイドモデルをVRCPickupで持てるようにする
私のワールドで↓こんな感じで私のVRoidモデルを配置しているけど、これをVRCPickupで持って位置調整できるようにしたい。


VRChatワールドだと結構ヒューマノイドのモデルが配置されていたりするけど、そんな感じで持ち運べるようにしてるワールドもありますね。
特に添い寝ができる系のワールドだと、位置調整ができたほうが目線を合わせられるのでQOLが上がるw
やり方
やり方を書いておきます。
VRoidモデルをワールドに配置する
VRoidモデルをUnityにインポートするにはUniVRMが必要です。

VRoidモデルをUnityにインポートできたらワールドのシーンに配置します。
VRoidモデルにVRCPickup、コライダーを追加
VRoidモデルは階層構造があるけど、最上位のモデル名が書かれているオブジェクトにVRCPickupとコライダーを追加します。
VRCPickupを追加すると自動でRigidbodyも追加されます。




ここではボックスコライダーを追加しました。
Rigidbodyの設定をする
質量を100、抗力を20、回転抗力を20に、「重力を使用」のチェックを外した。


質量、抗力、回転抗力はデフォルトのままだと手を離した時に慣性で動いてしまったため、値を上げてピッタリ止まるようにした。
「重力を使用」にチェックを入れると重力が使えるので投げたりできるけど…ちょっと可哀そうな感じになるのでチェック外しましたw
コライダーの設定をする
ボックスコライダーで説明するけど、まぁモデルの中心あたりに来るように中心とサイズを調整します。
「トリガーにする」にチェックを入れるとコライダーに当たってもすり抜けるようになるけど、普通にVRCPickupは作動したのでこれで。


これで動いた!
これで持ち運べるようになりましたね。
Hipsにコライダーを追加したら動かなかった
現状だと動いたものの、キャラが横になってもコライダーが縦のまま。


これを直したくてボーンのHipsあたりにVRCPickupやコライダーを追加してみたりしたけど、コライダーはキャラに追従して横になったけど、VRCPickupは動かなかった。
たぶんHipsの上位にRootとかあるからかな?
同じオブジェクトにVRCPickupやコライダーがないと動かないみたいなので、これは仕方ないかなぁ。
とりあえず割り切ってこれでいきます。
おわりに
案外簡単にできて良かった。
まぁちょっとChatGPT氏に聞いたりしたけど(^_^;)
また何かあれば追記します(*^_^*)


