衣装に Modular Avatar を使ったギミック追加方法を紹介します。
衣装製作者だけでなく、ガチ改変をされる方にも参考になるかと思います。
ここで紹介するのは便利ツール “AvatarMenuCreater for Modular Avatar” を使った方法で、ギミックの細かい知識がなくても大丈夫です!
本記事では
A. パーツの ON/OFF ギミック
B. パーツのダイヤル拡大 ギミック
C. A ,B をメニューグループにまとめる
の実装方法を紹介します。
“AvatarMenuCreater for Modular Avatar”

1. やりたいこと
ラジアルメニューで、下記 3つの操作をできるようにする。
- 帽子を ON/OFF
- リボン ON/OFF
- リボンのサイズ調整

ラジアルメニュー構成は下記の用にする。
- トップレベルにグループを作る
- 各操作を入れ子にする


2. 準備
2.1 プロジェクト設定
下記、3つをプロジェクトに追加します。
- Modular Avatar 1.8.4
- AvatarMenuCreatorForMA 1.3.2 (*1)
- Gesture Manager 3.8.8
- Unity 2022.3.61f1
*1 : 本記事で使った範囲では問題有りませんでしたが、該当バージョンでは Unity 2022 に正式対応していません。
2.2 サンプルモデル
A, B, C の解説に使うモデルを Booth で配布しています。
本稿では下記 RibbonBeret.prefab を使うことを前提に解説します。


A パーツ ON/OFF ギミック
A.1 準備
作業用アバターをシーンに置いてモデルを入れ子にする。
ツールの仕様上、アバターが必要になるため。

A.2 帽子の ON/OFF
下記手順で MA ギミックプレハブ作成し、gimmick/Beret_body_toggle.prefab に保存。
①. 作業用アバターを設定
②. 設定するオブジェクトを指定
③. 『ON/OFF』 を選択
④. 『ON=表示』を選択
⑤. 『Create!』 を実行
⑥. ファイル保存

A.3 リボンの ON/OFF MA
下記手順で MA ギミックプレハブ作成し、gimmick/Beret_ribbon_toggle.prefab に保存
②, ⑥ 以外は上記と同じです。

A.4 動作確認
①. 作ったプレハブを RibboneBeret 以下に配置する
②. ジェスチャーマネージャーをシーンに置いて、『Enter Play-Mode』を実行
③. ラジアルメニュートップレベルのトップレベルに ON/OFF ギミックが追加されます


B. リボンのダイヤル拡大 ギミック
下記手順で MA ギミックプレハブ作成し、gimmick/Beret_ribbon_large.prefab に保存。
③、④ だけ変えて、A と同様にギミックプレハブを作ります。
動作確認も A 同様にやってみてください。

C. A ,B をメニューグループにまとめる
A, B の動作確認をするとわかりますが、ラジアルメニューのトップレベルに 3つの操作タブはあるのはちょっと邪魔です。
グループ化してトップレベルのタブを一つにしてみましょう。

C.1 メニューグループ作成
①. 『Create Empty』で空オブジェクトを作り名前を『MenuGroup』にする
②. ①に『MA Menu Installer』を追加
③. ①に 『Menu Item』 を追加
④. ③の “Type” を “Sub Menu” に変更
⑤. “Submenu Source” を “Children” に変更

C.2 ON/OFF系(Beret_ribbon_toggle, Beret_body_toggle) の設定変更
①. MA Menu Installer を削除
②. MA Menu Item を 追加
③. MA Menu Item の Type を Toggle
④. MA Menu Item の Parameter名を MA Parametersの名前と同じにする
⑤. Default value にチェックを入れる


C.3 ダイヤルを使った拡縮(Beret_ribbon_large)
ON/OFFと同様に設定するが、 Type を Radial Puppet にする。

C.4 設定がメニューグループに反映されているかチェック
C.1 で追加した MenuGroup の Items が下記の用になっていればOK。

4. 動作確認
GestureManager で無事動いていれば作業完了です!
編集した RibbonBeret プレハブは必ず Overwrite して保存してください。
名前を変えると、Modular Avatar の設定が無効になります。
※Unity のアニメーション仕様に起因します。
※動画だと RibbonBeret の名前が RibbonBeret_PB_only になっていますが気にしないでください!(汗
補足: ギミックの使いまわし
下記条件さえ満たせば、C で作ったMenuGroup は使いまわしできます。
うまくやれば、衣装を複数アバター展開する場合でも、ギミックプレハブは 1つで済みます。
– プレハブ名が同じ
– FBX のメッシュ名が同じ
名前を変更するとギミックが正しく操作できません。
※Unity のアニメーション仕様に起因します。
Modular Avatar のオススメ情報
- MA 公式ドキュメント: https://modular-avatar.nadena.dev/ja
- MA解説(げーまー 様): https://usualgamer.fanbox.cc/posts/7131600?utm_campaign=manage_post_page&utm_medium=share&utm_source=twitter
- MA解説(₺ƾ₺ƾけせら 様): https://note.com/kesera2_vrc/n/nddd969f0abcb
- MA解説(加藤かな 様): https://kxn4t.hatenablog.com/entry/2023/10/05/195500
いじょ!