AvatarPoseLibrary(HhotateA)のメニューを、好きな場所へ設置できるようにする NDMF プラグイン。
APL 本体には一切手を入れない。
APL のメニューは既定でアバターメニューの最上位に出る。位置を変える手段は APL にもあるが、Avatar Pose Library コンポーネントそのものをメニュー階層の中へ動かす必要があり、MA Menu Install Target は効かない。
たくさんのアバターを 1 プロジェクトで構造化して管理していると、コンポーネントは自分の階層に置いたまま、メニューだけメニューツリーへ入れたい。これはその 2 つを切り離す。
APL は ModularAvatarMenuInstaller をビルド中に生成する。MA Menu Install Target は既存の Installer を参照する仕組みなので、編集時に参照先が存在しない。さらに APL は生成ツリー内の Installer を無条件でアバタールートへ移動するため、階層で位置を指定しても捨てられる。
SubMenu / メニューソース 子オブジェクト)か MA Menu Group を用意するAdd Component > Kie > kieAplMenuTarget を付ける以上。Avatar Pose Library コンポーネントはどこに置いたままでもよい。
kieAplMenuTarget は入れ物と同じ GameObject に置くこと。子オブジェクトへ置くと効かない。判定はコンポーネント自身が乗っているオブジェクトしか見ない。
Avatar Pose Library が 2 つ以上あり、それぞれ違う場所へ出したい場合は、設置先を出したい数だけ置き、各設置先の 対象ライブラリ 欄へ、そこへ出すライブラリの GameObject を入れる。欄に何か入っている設置先は選択制になり、指定したものだけが来る。
**欄を空にした設置先は「受け皿」**で、どこにも指定されなかったライブラリを全部受け取る。一部だけ場所を決めて残りはまとめたい、という使い方ができる。受け皿を 2 つ以上置いた場合は階層順で最初だけが効き、警告が出る。指定を持つ設置先はいくつ置いてもよい。
欄を空のままにすれば、設置先 1 つで全ライブラリを受ける従来どおりの動きになる。
APL のメニュー階層は Avatar Pose Library のメニュー名欄(スラッシュ区切り)で決まる。つまり APL は自分の名前のフォルダを自分で作る。
| 付けるもの | 結果 |
|---|---|
MA Menu Item (SubMenu) | 段が 1 つ増える。 APL 側にも同名の階層があると AvatarPoseLibrary > AvatarPoseLibrary > … と二重になる |
| MA Menu Group | 段を増やさず親メニューへ流し込む。通常はこちら |
既定では MA Menu Group を選ぶこと。Menu Item が要るのは、APL のメニュー名が階層を持たず、フォルダを 1 段作りたい場合だけ。
両方を同じ GameObject に付けないこと。MA 側で競合する。
ビルドすると Console にこの行が出る。移したライブラリの件数と、移した先のパスが入る。この行が無ければメニューは移っていない:
[kieAplMenuTarget] AvatarPoseLibrary 1 件を 'Menu/ポーズ' の下へ移しました
付ける先がメニューの入れ物でない場合は何もしない。インスペクタが赤く警告し、その場で MA Menu Item / MA Menu Group を足すボタンが出る。
設定が正しくないときは Console に [kieAplMenuTarget] から始まる警告が出る。ビルドは止まらないので、メニューが出ないときは Console を先に見ること。
APL には元から位置指定の経路がある — Avatar Pose Library コンポーネントの親が MA Menu Group か 子オブジェクト ソースの SubMenu Menu Item なら、生成メニューをその親の中へ置く。
このプラグインは NDMF の Generating フェーズで APL より前に走り、その条件を満たすようコンポーネントを付け替えるだけ。生成物の形に依存しないので、APL がメニューの作り方を変えても壊れにくい。
Avatar Pose Library がアバターのルートに付いているAvatar Pose Library の子孫にある(親子が循環する)VRCExpressionsMenu アセット参照)とは併用しないこと。APL のソースに「削除予定」と書かれている機能なので、こちらもそれには乗っていない。MIT
com.kie.kie-apl-menu-target
Undefined
1.0.0 (Changelog)
2022.3 or later
No dependencies
No legacy packages