ばーちゃるなれっじ Unityのエラー、アバター改変、イベントを検索 アプリで開く
‹ 戻る#アバター

Expression Menuの基本 アバターのメニューを理解する

VRChatでアバターの表情や衣装を切り替えるときに開く、あのメニュー。正体はExpression Menu(アバター独自のメニュー)です。仕組みを知ると、改変の幅が広がるだけでなく、「メニューに出てこない」といった不具合の原因も自分で追えるようになります。

Expression Menuの基本 アバターのメニューを理解するの本文画像

ボタンを押してから見た目が変わるまで

Expression MenuはUnity上で作るメニュー定義で、ボタンやトグル、サブメニューを自由に組めます。動作の流れは4段階です。

1. メニューのボタンを押す → 2. パラメータの値が変わる → 3. Animatorがその値に反応してクリップを切り替える → 4. 見た目が変わる

この流れを覚えておくと、不具合の切り分けが一気に楽になります。「メニューに項目自体が出ない」なら1、「押しても何も起きない」なら2〜3、というように、どこで止まっているかを推測できるからです。Animator側の仕組みは別記事「アニメーションとAnimatorの基礎」で解説しています。

引用記事アニメーションとAnimatorの基礎技術・制作

よくある使いみち

表情の切り替え、衣装・小物のオン・オフ、色のバリエーション切り替え、エフェクトの発動などが定番です。

販売アバターは最初からメニューが組まれているので、まずは既存のメニュー構成をUnityで眺めてみると仕組みがつかめます。自分で一から作るより、動いているものを読むほうが理解が早い部分です。

Expression Menuの基本 アバターのメニューを理解するの本文画像

パラメータ容量の上限に注意

アバターに持たせられる同期パラメータの容量には上限があります。ギミックを盛りすぎると上限に達してビルドできなくなることがあるので、使っていない機能を整理する意識も必要です。

知っておくと役立つのが、パラメータは型によって消費量が違うという点です。オン・オフだけを扱う型は軽く、細かい数値を扱う型ほど容量を使います。同じ機能でも、型の選び方で容量の使い方が変わります。

また、他人に見せる必要のない切り替え(自分の視界だけに関わるものなど)は、同期しない設定にすることで容量を節約できる場合があります。

上限に達したときの対処

・使っていない衣装やギミックを削除する(非表示にするだけでは残ります)
・同期が不要な項目を洗い出す
・似た機能をまとめられないか検討する

「増やす前に減らす」が基本方針です。盛るほど楽しくなる反面、容量は有限だと意識しておきましょう。

自作せずに済ませる方法

メニューの自作は少し難しいですが、Modular Avatarのメニュー生成機能や、ギミック導入ツールを使えば、手作業でメニューを組まなくても機能追加できることが多いです。

衣装トグルなどは、衣装側がメニュー付きで配布されていることも珍しくありません。まずは配布物のメニューをそのまま使い、仕組みが分かってきてから自作に進むのが挫折しにくい順番です。

つまずきやすいポイント

メニューに項目が出てこない
メニュー定義に追加されているか、またはメニューの項目数が上限を超えていないかを確認します。

押しても何も起きない
パラメータ名の綴りがAnimator側と一致していない可能性があります。名前は完全一致が必要です。

他の人には切り替わって見えない
同期の設定を確認してください。同期しない設定のパラメータは自分にしか反映されません。

ビルドが通らない
パラメータ容量の超過が典型的な原因です。エラーメッセージに情報が出るので、内容を読んで整理しましょう。

よくある質問

Q. メニューは何個まで作れる?
A. 1つのメニューに置ける項目数には上限があります。超える場合はサブメニューに分けて階層化します。

Q. 表情だけ増やしたい
A. 既存の表情レイヤーに追加する形になります。シェイプキーの仕組みは別記事「シェイプキーと表情の仕組み」で解説しています。

引用記事シェイプキーと表情の仕組みアバター

Q. 削除した機能のパラメータが残る
A. パラメータ一覧から手動で削除する必要があります。容量を圧迫する原因になるので確認しましょう。