VRChatで椅子に座ったとき、「ポーズがアバターに合わない」「なんか変な座り方になる」と感じたことはありませんか?
実は座りモーションはUnityで数ステップ変更できます。アニメーションファイルさえ用意すれば、難しいスクリプトは一切不要です。
- VRChat歴:5年
- 総プレイ時間:1500時間以上
- 現在のメイン機材:Meta Quest 3 / RTX 4070
—
まず知っておきたい:VRChatの「座り」は2種類ある
変更方法を説明する前に、VRChatには「座り」に関連するモーションが2種類あることを押さえておきましょう。
| 種類 | 発動タイミング | 変更場所 |
|---|---|---|
| Sitting | ワールドの椅子・座り判定オブジェクトに触れたとき | Playable Layers → Sitting |
| Crouching | コントローラーのスティックで「しゃがむ」操作をしたとき | Playable Layers → Base(Locomotion) |
この記事では最も変更したい人が多い 「Sitting(椅子のポーズ)」 の変更方法を解説します。
—
準備:座りアニメーションを用意する
座りモーションを変更するには、差し替え用のアニメーションファイル(.anim)が必要です。
BOOTHで入手する(おすすめ)
BOOTHで「座りモーション 無料」「sitting animation vrchat」などで検索すると、無料・有料問わず多数のアニメーションが公開されています。
ダウンロードしたファイルは `.unitypackage` 形式が多いので、Unityプロジェクトを開いた状態でドラッグ&ドロップしてインポートしてください。
自作する
UnityのAnimationウィンドウを使えばオリジナルの座りポーズも作れます。ただし初心者には難易度が高いため、まずはBOOTHの既製品から始めることをおすすめします。
—
Unity設定手順:Sittingモーションを変更する
ここからが本番です。Unity上での設定手順を順番に説明します。
1. アバターのSittingコントローラーを開く
1. Hierarchyウィンドウでアバターを選択する
2. InspectorでVRC Avatar Descriptorを開く
3. Playable Layers を展開する
4. Sitting のスロットに割り当てられているAnimator Controllerをクリックする
5. ProjectウィンドウでハイライトされたコントローラーをダブルクリックしてAnimatorウィンドウを開く
Sittingスロットが「None」になっている場合は、VRChatのSDKに付属している `vrc_AvatarV3SittingLayer` をドラッグ&ドロップして割り当ててください。
2. 変更が必要な3つのステートを編集する
Animatorウィンドウを開くと、いくつかのステート(状態)が並んでいます。座りモーションに関係するのは以下の3か所です。
| PoseSpace | 基本の座りポーズ(全トラッキング共通の基準) |
| V2Seated | 3点トラッキング(HMD+両手)の座りポーズ |
| UpperBody Tracked | フルトラ使用時の座りポーズ(上半身) |
#### PoseSpace の変更
1. Animatorウィンドウで PoseSpace をクリックする
2. Inspectorの Motion 欄を確認する(デフォルトの座りアニメーションが入っている)
3. Projectで用意したアニメーションファイルを探し、Motionの欄にドラッグ&ドロップする
#### V2Seated の変更
1. 同様に V2Seated をクリックする
2. Motionの欄に用意したアニメーションをドラッグ&ドロップして差し替える
#### UpperBody Tracked の変更
1. 同様に UpperBody Tracked をクリックする
2. Motionの欄に用意したアニメーションをドラッグ&ドロップして差し替える
3か所すべての差し替えが終わったら、Ctrl+Sで保存してください。
3. VRChatにアップロードする
通常通り VRChat SDK Control Panel からアップロードすれば完了です。ワールドの椅子に座って確認しましょう。
—
椅子から浮く・沈む場合:高さの調整方法
小柄なアバターや足が長いアバターでは、椅子の座面とポーズの高さがズレることがあります。
調整手順
1. Projectウィンドウで差し替えた座りアニメーションファイル(.anim)を選択する
2. Inspectorの Root Transform Position (Y) を確認する
3. Offset の数値を変更する
– 椅子から浮いている → 数値をマイナス方向に下げる
– 椅子に沈んでいる → 数値をプラス方向に上げる
4. 数値を少しずつ変えながらアップロードして確認する
⚠️ 高さはワールドによって異なる場合がある
椅子オブジェクトの高さはワールド制作者が設定します。すべてのワールドでピッタリ合わせることは難しいため、「ほどよく自然に見える」数値を目安にしましょう。
—
Modular Avatar(MA)を使った方法
最近は Modular Avatar(MA) に対応した座りモーションアセットも増えています。MA対応アセットであれば設定がさらに簡単です。
MA対応アセットの導入手順
1. BOOTHでMA対応の座りモーションアセットを入手する
2. `.unitypackage` をUnityにインポートする
3. 同梱されているプレハブをHierarchyのアバターオブジェクトの直下にドラッグ&ドロップする
4. 通常通りアップロードする
Animator Controllerを直接編集する必要がなく、非破壊改変なので後からでも元に戻しやすいのが大きなメリットです。
—
よくある質問
Q. 椅子に座っていないときにポーズが変わってしまった→ SittingのAnimatorを確認してください。`Default State` が座りアニメーションになってしまっている場合、ゲームが待機モーションの代わりに座りを再生してしまいます。通常は `Sitting Entry` から遷移する設計になっているはずです。
Q. フルトラ使用時だけポーズが変わらない→ UpperBody Tracked のMotionが変更されていない可能性があります。3か所すべてを差し替えたか確認してください。
Q. 同じアニメーションを3か所すべてに入れていいか?→ 問題ありません。同一ファイルを3か所に割り当てるのが最もシンプルな方法です。
—
まとめ
| Step 1 | BOOTHなどで座りアニメーション(.anim)を入手してUnityにインポート |
| Step 2 | アバターのPlayable Layers → SittingのコントローラーをAnimatorで開く |
| Step 3 | PoseSpace・V2Seated・UpperBody Tracked の3か所のMotionを差し替える |
| Step 4 | 高さがズレている場合はアニメーションのOffset(Y)で調整する |
| Step 5 | アップロードして椅子に座って確認する |
「Animatorの仕組みをもっと深く理解したい」「座りだけでなくダンスや表情まで自由に作りたい」という方には、Unityアニメーションを体系的に学べる講座がおすすめです。
Unityアニメーション完全マスター:VRChatポーズ&モーション制作
「AnimatorのBoolって何?」「ステート遷移の設定がよく分からない」——そんな疑問を一気に解消できる講座です。座りモーション変更で触れたAnimator Controllerの仕組みを基礎から理解することで、表情・ダンス・ギミックの作成にも応用できます。
※Udemyはセール時に90%OFFになることも。通知をオンにしておくと安く受講できます。
—


コメント