以下の内容はhttps://kxn4t.hatenablog.com/entry/2025/12/29/000217より取得しました。


【VRChat】Modular AvatarでExメニューを整理しよう

アバターのExpression Menuの管理、ちゃんとやっていますか?

MA対応の衣装やギミックを追加するたびにメニューが増えていって、気づいたらごちゃごちゃになってたり、使わないメニューが残ったままだったり…。
始めてすぐの頃は自分もExpression Menuを直接編集していたんですが、管理がとても面倒でした。

Modular Avatarを使うと、メニューをオブジェクトとして扱えるようになります。ドラッグアンドドロップで並び替えたり、不要なものを消したりと、自分好みに簡単に整理できるようになります。

以前、泥臭くアニメーションを組んでAvatars3.0やMAの基礎を理解する記事を書きました。

kxn4t.hatenablog.com

当時としては非常に最先端な内容で、このようなドキュメントは他になくUnity公式ドキュメントや動作を確認しながら手探りで1ヶ月程度かけて書き上げました。

これはこれですべてを理解しておく必要があると思いますが、流石に現代においてあまりにも原始的です。

そろそろ満を持して現代的な実装方法について書きたくなってきちゃいました。
みんなリアクティブコンポーネントをうまくつかえるようになってほしい!

というわけで今回から3回に分けて(そのうち3つ以上に増えてる気もしますが)、MAだけで衣装のオンオフや色変更を作る方法を紹介していきます。

いつもは単発の記事ばかりですが、ちょっとボリュームがあるので「知らなきゃ損なMAの使い方」として、初めてシリーズものとして書いてみます。

  1. Exメニューを整理しよう(この記事)
  2. 衣装のオンオフ+シェイプキーも連動させよう
  3. 色変更&最適化にも気をつけよう

まずは前提知識として、MAでExメニューを管理する方法から始めます。

更新日:2026/01/10

このシリーズの対象読者
  • MAで衣装を着せるのは日常的にやっている
  • でも衣装を着せる以外のMAの使い方はよくわからない
  • MAでもっと色々できるらしいけど、どこから手をつければいいかわからない

そんな「もう一歩踏み出してみたい」人向けの内容です。

そもそもExpression Menuとは

Expression Menu(Exメニューと略されがち)は、VRChatでアバターを操作するためのメニューです。

緑色の丸いメニューから開けるやつです。(ちなみにこの緑色の丸いやつはAction Menuが正式名称です。)

衣装のオンオフや表情の変更など、アバターの様々な機能をここから操作します。アバターにギミックを追加するとき、このメニューも一緒に設定することになります。

Exメニューの実体はVRC Expressions Menuというアセットで、アバターのルートにあるVRC Avatar DescriptorのExpressionsから設定されています。

このアセットを直接編集してメニューを追加・変更することもできますが、項目が増えてくると管理が大変になってきます。順番を入れ替えたいときも面倒ですし、衣装ごとに準備するのもめちゃくちゃめんどくさい。

creators.vrchat.com

MAでメニュー管理すると楽

MAでメニューを管理すると、こんなメリットがあります。

  • 非破壊
    • 元のExpression Menuをいじらずにメニューを追加・変更できる
  • オブジェクト化
    • メニュー項目がGameObjectになるので、並び替えや整理が簡単
  • Prefab管理
    • 衣装やギミックごとにPrefabでまとめられる
  • 直感的な編集
    • ドラッグアンドドロップでメニューの並び順を変えられる

MAを使うとExpression MenuやParametersを直接編集しなくて済みますし、MA対応の衣装などについてくるメニューも一緒に管理・整理しやすくなります。


既存メニューをMA管理に移行する

既存のアバターのメニューをMA管理に移行してみましょう。一瞬でできます。

まぁ、公式ドキュメントにもちゃんと書いてくれているので、それを見てもらったほうが確実ですが…。

modular-avatar.nadena.dev

Extract Menuで移行

アバターを右クリックして、Modular AvatarExtract Menuを選択します。

これだけです。

MAで展開されたメニューAvatar Menuオブジェクトがアバターの下に追加されます。

中を見てみると、メニュートップの項目がオブジェクトとして入っています。これで各メニューアイテムを個別に確認・編集できるようになりました。

サブメニューがある場合は、インスペクターの「オブジェクトに展開」ボタンを押すと、そのサブメニューの中身も変換できます。これでメニューの各階層をHierarchy上で見れるようになります。

移行したメニューを編集する

オブジェクト化したメニューは自由に編集できます。

  • 並び替え
    • Hierarchy上でドラッグアンドドロップして並び替えるだけです。上にあるものがメニューでは先に表示されます。
  • 削除
    • 使わないメニューは非表示にしてEditorOnlyにするか、オブジェクト自体を削除すればメニューから消えます。

⚠️メニューを消してもアニメーションは残る

メニューを削除しても、FXレイヤーのアニメーションやパラメーターは消えません。完全に不要な場合は、Animator ControllerやVRC Expression Parametersも編集する必要があります。

よく使うものを上に、あまり使わないものを下に、みたいな感じで整理するだけでもかなり使いやすくなりますね。

サブメニューにまとめる

メニュー項目が多いときは、サブメニューにまとめると整理しやすくなります。

フォルダ分けみたいなイメージで、フォルダとなるオブジェクトにMenu ItemのSubMenuか、後述するMenu Groupをつけて、その下にMenu Itemを並べていきます。

  1. Avatar Menuオブジェクトの下に空のGameObjectを作成して、サブメニュー名をつける(例:「Clothes」)
  2. MA Menu Itemコンポーネントを追加して、タイプを「SubMenu」に設定
  3. 「サブメニューの引用元」を「子オブジェクトから生成」に設定
  4. まとめたいメニュー項目をこのオブジェクトの子に移動する

これで複数のメニュー項目が1つのサブメニューにまとまります。衣装関連を「Clothes」にまとめたり、表情関連を「Face」にまとめたり、用途別に整理すると見通しがよくなります。

Prefab Variantとして保存する

整理が完了したら、アバターをPrefab Variantとして保存しておくか変更を適用しておくと、次回以降も同じメニュー構成を使い回せます。

次に衣装を着せるときには素体として保存したPrefab Variantのアバターを持ってきて着せるだけになりますね。

そもそもアバターをPrefab Variantで管理していなかったり、Prefab Variantとはなんぞや…って方はこちらの記事を見てみてください。

kxn4t.hatenablog.com

kxn4t.hatenablog.com


各MAコンポーネントについて

MAでメニューを扱うときに使う主なコンポーネントを簡単に紹介しておきます。詳しくは公式ドキュメントを参照してください。

MA Menu Item

メニュー項目そのものを定義するコンポーネントです。

modular-avatar.nadena.dev

タイプ

メニューの種類を選びます。

  • Toggle
    • オン/オフを切り替える。衣装のオンオフとかによく使う
  • Button
    • 押したときだけ動作する。全然使わない
  • SubMenu
    • サブメニューとしてまとめるときに
  • Radial
    • 0~100%でパラメーターを操作できるやつ
メニューの配置

Menu Itemを実際にExメニューに反映させるには、同じオブジェクトにMenu Installerを付けるのが基本です。これでそのメニュー項目がExメニューに追加されます。

ただし、以下の場合はMenu Installerを個別につける必要はありません。

  • 「子オブジェクトから生成」モードのSubMenuの子オブジェクトにある場合
  • Menu Groupの子オブジェクトにある場合

これらの場合は、親階層にあるMenu Installerが自動的に使われます。つまり、親のどこかにMenu Installerがあれば、子のMenu Itemには不要ということです。

⚠️Menu Installerの重複に注意

親階層にMenu Installerがあるのにもかかわらず更にMenu Installerをつけてしまうと、メニューが2つできてしまったりします。気をつけましょう。

Extract Menuで生成されたメニューは、Avatar MenuオブジェクトにMenu InstallerとMenu Groupが両方ついているので、子オブジェクトにMenu Itemを追加するだけで問題ないです。

パラメーター

メニュー操作時に変更するパラメーターを設定します。

既存のパラメーター名を入力するか、右の矢印ボタンから検索できます。親にあるMA Parametersコンポーネントのパラメーターも候補に出てきます。

MA Menu Installer

メニューをどこに追加するか指定するコンポーネントです。

  • 未指定
    • ルートメニューに追加される
  • 指定あり
    • 指定したサブメニューの中に追加される

Menu Itemと同じオブジェクトか、その親オブジェクトに付けます。親オブジェクトにMenu Installerがあれば、子のMenu Itemには個別につける必要はありません。

Menu Installerでインストール先を指定すると、その場所にMA Menu Install Targetというコンポーネントがついたオブジェクトが自動生成されます。
インストール先には、Modular Avatarですでにセットアップされている他のMenu Item(SubMenu)を選べるので、既存のメニューの中に追加することができます。

これは「ここにメニューが挿入されますよ」という目印です。このオブジェクトをHierarchy上で移動すれば、挿入位置も変わります。衣装のメニューを好きな順番に並べたいときに非常に便利です。

modular-avatar.nadena.dev

modular-avatar.nadena.dev

MA Menu Group

Extract Menuで生成されるAvatar Menuオブジェクトについているコンポーネントです。

Menu ItemのSubMenuと似たような役割を持ち、このコンポーネントをつけた子オブジェクトのMenu Itemがメニューに配置されます。

Menu ItemのSubMenuと違う点として、複数のメニュー項目をサブメニュー化せずに、そのまま展開して配置できます。メニュー数が少なくてわざわざサブメニューにしたくないときとか、既存メニューに馴染ませたいときに便利です。

自分は結構使います。

modular-avatar.nadena.dev

Tips

メニューアイコンの設定

Menu Itemでアイコンを設定できます。

⚠️注意

メニューアイコンの解像度は256px以下にしないとアップロード時にエラーになります。これが原因でアップロード失敗すると、なかなか気づきにくいんですよね…。

メニューの並び順

Hierarchy上の順番がそのままメニューの並び順になります。上にあるものが先に表示されるので、並び替えたいときはHierarchy上でドラッグして順番を変えるだけでOKです。

衣装付属のメニューのインストール先の変更

MA対応の衣装やギミックをアバターに入れると、付属のPrefabにMenu Installerがついていて、自動的にExメニューに追加されることが多いです。

ただ、デフォルトだとルートメニューに追加されることがほとんどなので、メニューがどんどん増えていくとごちゃごちゃになりがちです。

そんなとき、衣装のMenu Installerの「インストール先」を変更すれば、好きなサブメニューの中に入れられます。

さらにMenu ItemのSubMenuとなっているものをMenu Groupに置き換えると展開された状態で入ってくれるので、Exメニューの操作が1つ減ってちょっと楽です。

例えば、事前に「Clothes」というサブメニューを作っておいて、衣装のMenu Installerのインストール先をそこに指定すれば、衣装関連のメニューが全部まとまってスッキリします。

パラメーター

Menu ItemにMA ParametersコンポーネントやVRC Expressions Parameterアセットで宣言されていないパラメーター名を入れると、パラメーターに自動的に追加してくれます。

今回詳しくは書きませんが、パラメーター名はうまく使うと既存のギミックと連動させたり、複数のメニュー間でトグルさせたりといろいろ応用できます。

自分好みに組み替える

ここまで紹介した機能を使えば、メニューを自分が使いやすいように自由に組み替えられます。

よく使うものを上に持ってきたり、関連するものをサブメニューにまとめたり。Expression Menuを直接いじっていたときは面倒だった作業が、Hierarchy上でいじれるようになるのはめちゃくちゃ楽です。

自分はこんな感じでやってます

参考までに、自分はこんな感じでメニューを整理してます。

  • よく使うものはルートメニューに配置
  • 衣装用のサブメニューを用意しておいて、衣装関連はMenu Installerでここに追加するように
  • あまり使わないものは下の方やサブメニューの奥に

正解はないので、自分が使いやすければそれでOKです。色々試してみましょう。

まとめ

Extract Menuをすれば、既存のExメニューを一瞬でMA管理に移行できます。オブジェクト化されたメニューはHierarchy上でドラッグするだけで並び替えられるようになりますし、サブメニューにまとめて整理することも簡単にできるようになります。

なにもかもModular Avatarに乗っかるようにするととにかく楽です。

まだやってない人はぜひ試してみてください!


次回はObject ToggleやShape Changerなどのリアクティブコンポーネントを使って、衣装のオンオフやシェイプキー連動を実装する方法を紹介します。

シリーズ「知らなきゃ損なMAの使い方」
  1. Exメニューを整理しよう(この記事)
  2. 衣装のオンオフ+シェイプキーも連動させよう
  3. 色変更&最適化にも気をつけよう

ワールドアセット「ヌックのある家」

大きすぎず小さすぎず、ほどよいサイズ感。木の温かみを感じられる、こぢんまり居心地のいい空間。
ミラーで仕切ればオープンな空間からプライベートな空間に早変わりするヌックスペース付きです。


関連記事

kxn4t.hatenablog.com

kxn4t.hatenablog.com

kxn4t.hatenablog.com




以上の内容はhttps://kxn4t.hatenablog.com/entry/2025/12/29/000217より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14