はじめに
手順通りに真似するだけで、アバターに Sit 判定を簡単に仕込めます!
仕組みから解説した詳細な記事は既にありますが、
- 楽に入れたい
- とりあえず実装できればいい
- 詳細な説明はちょっと何言っているか分からない
という方向けに、実装だけを簡潔に解説した記事です!
実装例の UnityPackage は、以下で配布しています。参考にしてください
GitHub
Booth
メインの実装
前提として、Modular Avatar (以下、MA) を導入してください
Game Object とコンポーネントの追加
空の Game Object を追加して、3 つのコンポーネント
- VRC Station
- Box Collider
- MA Bone Proxy
を追加してください。

(Game Object「アバター椅子」に 3 つのコンポーネントをデフォルト状態で追加しただけ)
追加した Game Object の子に新たに空の Game Object を作ってください。

(空の Game Object「座る位置」を追加しただけ)
新たに追加した子オブジェクトの位置が、アバターの座る位置を表します
コンポーネントの設定
VRC Station

Player Mobility を Immobilize For Vehicle にして、
Player Enter Location に先ほど追加した子オブジェクト (画像では「座る位置」) をドラッグアンドドロップしてください。自動的に Transform コンポーネントとしてアタッチされます
Box Collider
Edit Collider の
を押して、「座るときにポインターを向けてハイライトされる Sit 判定の大きさ」を調整してください
Scene に緑色で表示される
をドラッグすれば Box の大きさを調整できます。
多くの場合、Is Trigger はオフ▢でも機能します。
しかしアバターによっては、コライダージャンプと干渉して、アバターが空中にいるとき、明後日の方向に高速移動したりその場で高速回転したりする可能性があります。
Is Trigger はオン✅でも座る機能に差は無いので、念のためオンにすることをお勧めします
MA Bone Proxy
コンポーネント設定のまとめ
座る位置の調整
今回は「おんぶ」の位置で座るように調整します。
肩車や手に座らせたいときは、座る位置や MA Bone Proxy のターゲットを適宜変更してください
子オブジェクトをドラッグして、座る位置を調整してください。

z 座標が正 (青) の矢印の先にかかとが来て、y 座標が正 (緑) の矢印の先に腰が来ます。
画像の赤い丸で囲った Sphere が子オブジェクトの位置を表しています。

画像のように、Sphere の右にかかとが来て、Sphere の上に腰が来ます
このとき何度かアバターをアップロードして、ゲーム内で座ってみて微調整することをお勧めします。
その際、この記事で解説している方法を使えば、一人で満足いくまで微調整できます!
以上でアバター椅子の実装は終了です。この時点で他のプレイヤーがあなたに快適に座ることができます。
ここからは追加的なギミックを作っていきます
椅子の有効・無効を切り替える (オンオフする)
新たに空の Game Object を追加して、3 つのコンポーネント
- MA Menu Installer
- MA Menu Item
- MA Object Toggle
衣装オンオフのトグルを実装するときのように、新たに追加した Game Object を MA Object Toggle にアタッチしてください。
同様の方法は MA の公式ドキュメント でも解説されています
MA Object Toggle を使うこの方法では、
「椅子をオフにしたら座っていた人を強制的に降ろし、誰も乗れない状態にする」
という設定のみできます。
これは、Sit 判定を実装した Game Object を丸ごと無効化するしかないからです
次回解説する Animator Controller を使う方法では
「既に座っている人は降ろさず、その人が自分で降りた後に誰も乗れないようにする」
という設定ができます!
また、次回の記事では MA だけでは実装できないギミックも実装していきます!
フォローしてお待ちください!
(次回記事 URL 追加場所)
終わりに
MA Bone Proxy より VRC Parent Constraint の方が好きなんだよォーーー!!!
でも MA Bone Proxy の方が解説も読む側も楽なんだよォーーー!!!





