【VRChat】ワールドに掴んで動かせるモノを配置する方法

VRChat
スポンサーリンク

はじめに

今回はワールドに掴んで動かせるモノを配置する方法を紹介します。
こちらの話題サイコロを実装します。

https://booth.pm/ja/items/3153673

このように転がせようにする方法や空中で物を静止させる方法を解説します。

Unityやワールド制作の基本操作はこちらをご覧ください。

また、このモデルはマテリアルエラーが出てました。

この修正方法はこちらをご覧ください。

【VRChat】モデルのマテリアルエラー修正方法【ピンク色対処法】
Unityに読み込んだ際、モデルのマテリアルが壊れてるとピンク色の表示になります。こちらは別のマテリアルを割り当て治すことで修正できます。こちらの設定方法について解説。

掴める設定

Hierarchyから掴めるようにしたいモデルを選択。

Inspectorを確認。
Add Componentを選択。

検索欄に「bo」を入力。
Box Colliderを選択。

Sizeを調整して衝突判定を形に合わせます。

Mesh Colliderを使うと形に添った衝突判定を作れるようですが…

色々設定を調整しても突き抜けました。
Mesh Colliderは使わないことをおすすめします。

続いて、Adoo Componentで「ri」を検索。
Rigidbodyを選択。

Object SyncのAllow Collision Ownership Transferのチェックを外します。

同じ要領で「VRC Pickup (Script)」と「VRC Object Sync (Script)」の2つを追加。

Object SyncのAllow Collision Ownership Transferのチェックを外します。
これは、複数プレイヤーが衝突判定がある物を持った際の当たった挙動の設定です。

この状態でVRChatにアップロード。

すると、掴めて動かせます。
重力が自動で入り、サイコロが転がります。

空中で止める方法

空中で止めたい場合、Is Kinematicにチェックを入れます。

この状態でVRChatにアップロード。
すると空中で止まります。

以上で配置が完了です。

まとめ

今回はワールドに掴んで動かせるモノを配置方法を解説しました。

・掴めるようにするには4つのComponentが必要
・Box Colliderで衝突判定を設定
・Rigidbodyで衝突判定で物が当たるように設定
・VRC Pickup (Script)で掴めるように設置
・VRC Object Sync (Script)で他の人と同期して見えるように設定
・空中で止める場合Is Kinematicにチェック

また、VRChat関係の情報を発信してます。

ぜひ、こちらもご覧ください。

コメント

タイトルとURLをコピーしました