アバターの GameObject を指定すると、その Armature 以下にある MA ScaleAdjuster を、 MA Merge Armature が置かれた Armature に対して、それぞれ同名のボーンにコピーします。
Modular Avatar #910 が実装されるまでのつなぎなので、VPM対応とかはしないつもり。
https://x.com/autch/status/1807837123082703199
https://x.com/autch/status/1808168689256354077
Modular Avatar が必要です。
Assets/ 以下のどこかの階層に Editor というフォルダを作って、そこに PSAUtility.cs と PSAMainWindow.cs ファイルを置いてください。
素体と服をセットアップし、Setup Outfit 相当までを済ませてください。 服の Armature に MA Merge Armature がアタッチされているはずです。服の Prefab に設定済みかもしれないし、自力で設定しても構いません。
素体側の Armature に、MA Scale Adjuster を設定しておきます。
エディタの Tools メニュー→Autch→PopulateScaleAdjusters を選んで PopulateScaleAdjusters ウィンドウを開きます。
ウィンドウの「アバターの GameObject」に、素体側のトップレベルオブジェクト(Animatorコンポーネントがアタッチされているはず)を指定します。
「このアバターのArmature直下のScaleAdjuster」には、素体側 Armature に設定されている MA Scale Adjuster がリストされます。 ここに出てこないものは服側にコピーされません。
「このアバターのアイテムのScaleAdjuster」には、服側の Armature に設定されている MA Scale Adjuster がリストされます。 これはすでに服側に設定されているものなので、後述の「既存のものはScaleを更新する」にチェックしていない限り変更されません。 ここに服がリストされるには服の Armature に MA Merge Armature が設定されていなければいけません。
「このアバターのアイテムのScaleAdjuster未適用のボーン」には、素体側のボーンに MA Scale Adjuster がついているのに、 対応する服側のボーンについてまだ MA Scale Adjuster がついていないものがリストされます。 後述の「存在しない場合は作成する」にチェックがついていると、これらについて MA Scale Adjuster をアタッチして 素体側の MA Scale Adjuster のスケールを適用します。
「既存のものはScaleを更新する」オプションは、チェックするとすでに服側に設定されている MA Scale Adjuster に対して、 対応する素体側の MA Scale Adjuster のスケール値を上書き適用します。素体と服のスケールをそろえる場合はこれにチェックします。
非対応服を着せるためなどで服側には素体と異なるスケールを適用する必要があるときは、服側の Armature に手動で MA Scale Adjuster を設定して 必要なスケール値を適用し、本ツールを使うときは「既存のものはScaleを更新する」オプションをオフにして運用します。
「存在しない場合は作成する」オプションは、チェックすると素体側のボーンに MA Scale Adjuster がついているのに、 服側のまだ MA Scale Adjuster がついていないボーンに対して、MA Scale Adjuster を追加してスケール値を素体側からコピーします。 チェックしなければ未設定のボーンはそのままです。
以上の適用対象を確認して「コピーする」を押すと、素体ボーンの MA Scale Adjuster が対応する服のボーンへ適用されます。
PSAUtility.cs の一部は ModularAvatarMergeArmature コンポーネント由来のソース を含みます。
私が書いた部分については CC0 とします。
net.autch.vrchat.populate-scale-adjusters
未設定
0.0.1
2022.3 以降
なし
なし