はじめに
今回はModular Avatar(MA)でExpressions Menuを作る方法を紹介します。
下記の3つを前提に進めます。
・UnityやModula avatarが導入済みである程度使える
・Modula AvatarでMenuを自作できる
・Gesture Manager導入済み
↓前提知識はこちらをご覧ください。

下準備
ヒエラルキーにアバターを配置。

「▶」で中の階層を開きます。
右クリック → 空のオプジェクトを “階層内” に作成。

Ctrl+Dで複製しながら名前を変えつつ下記の階層になるよう空のオプジェクトを作ります。
Exp Menu
→ 「中身」
→ ボタン
→ トグル
→ ラジアルのパラメーター
「中身」にMA Menu InstallerとMA Menu Itemを配置。
MA Menu Itemのタイプを「Sub Menu」にします。

そして「ボタン、トグル、ラジアルのパラメーター」タイプをそれぞれ変更します。
・ボタン → ボタン
・トグル → トグル
・ラジアルのパラメーター → ラジアル

これでサブメニュー内に下図の項目を生成。

2Axisと4Axsiも「パラメーター」を設定できますが…
開いて閉じる際になぜか2段階戻るという不具合があります。
なので使わないことをおすすめします。

そしたら動作確認用に適当なモデルを作ります。
ヒエラルキーを右クリック。
3Dオプジェクト → キューブを作成。

生成したキューブを適当に配置。

以上で下準備が完了です。
表示/非表示ギミックを作る
ヒエラルキーのボタンを選択。
MA Object Toggleを追加します。


MA Object Toggleを追加した場合…
MA Menu Itemのパラメーター名は空白で動きます。
右下の「+」ボタンを選択。

ヒエラルキーから表示/非表示を切り替えたいオプジェクトをドラッグ&ドロップ。

初期状態でオンの場合はMA Object Toggle側は「OFF」にします。
これで正しい動作になります。

Gesture Managerなどで動作確認。
ボタンを押すと押してる間だけ消える挙動になります。

次はラジアル「パラメーター名」で操作する方法を見ていきます。
ラジアル「パラメーター名」で操作する
ExpMenuにMA Parametersを追加。
「ラジアル操作用」と「パラメーター名用」の2つのパラメーターを設定。

こちらにMA Object Toggleを追加し「OFF」に設定。
するとラジアルを表示したらオブジェクトが消える挙動になります。

非表示 → 表示ギミックを作る
非表示 → 表示は下記のように設定します。
・オプジェクトを初期状態で非表示
・MA Object Toggleの設定を「ON」に設定

これで正しい動作になります。

初期状態でオン+Toggleでオンだと常時表示になります。
何も起きないので初期状態では忘れずにオフにしてください。

以上が表示/非表示ギミックの作り方です。
衣装切り替えを作る上での注意点
先ほど表示/非表示で2通りの作り方を紹介しました。
・初期状態で「オフ」 → 信号があると「オン」
・初期状態で「オン」 → 信号があると「オフ」

VRChatなどのシステムは何らかの理由で信号が届かないことがあります。


ネットワークの遅延、ギミックの動作不良などが原因です。
この不具合が起こった場合、初期状態でオフだと意図せずに服が消えたりするリスクがあります。
なので重要な衣装は「初期状態でオン → 操作でオフ」が無難です。

以上が衣装切り替えを作る上での注意点です。
条件の反転について
MA Object Toggleには「条件の反転」という項目があります。
これは「インスペクター」と「MA Object Toggle」の挙動を入れ替えます。
↓オフ時はこれまで紹介した挙動になります。

↓オンだと下図にようになります。


頭が混乱するので基本的に使わなくてOKです。
以上が条件の反転についての解説です。
まとめ
今回はMAでモデルの表示/非表示ギミックの作り方を紹介しました。
・MA Object Toggleを使うとBool信号が着たらオプジェクトの挙動を操作できる
・ボタンとトグルでMA Object Toggle利用する時はパラメーター名登録が不要
・ラジアル、2Axis、4Axisのパラメータ名を設定すると選択したら使える
・2Axis、4AxisはMenuが2層戻るので注意(バグ?)
・衣装は通常時に表示 → 操作で非表示が安全
また他にもModula AvatarやVRChatについて解説してます。
ぜひ、こちらをご覧ください。
コメント