Skip to content

Optimize your ExpressionParameter as NDMF pass.

License

MIT, Unknown licenses found

Licenses found

MIT
LICENSE
Unknown
LICENSE.meta
Notifications You must be signed in to change notification settings

KisaragiEffective/VRChatExpressionParametersOptimizer

Repository files navigation

VRChatExpressionParametersOptimizer

使われていないExpressionParameterのパラメーターを削除するNDMFプラグイン

なぜ生まれたのか?

Modular AvatarのExtract Menu を再帰的に適用したり使わないアニメーションを削除したりした結果、使われないパラメーターが生まれることがあります。 特に、髪の長さや角度はメニューから小数精度で変えたいことがほとんどなく、たいてい消されます。

しかし、昨今はギミックの高度化によって消費される同期パラメーターの割合が増えており、結果としてVRChatにおいて256ビットの壁 を軽く超えることがあります。 当プログラムはアバターを再帰的に走査し、使われていないパラメーターを削除することによってこの問題に対処しようとするプログラムです。

対応環境

プラットフォーム Unity 対応状況
VRChat 2018.x unsupported
VRChat 2019.x unsupported
VRChat 2022.x supported
* * unsuppoered

インストール

VPMには対応していません。

  1. エディタのツールバーから[Window > Package Manager] を開きます
  2. 画面上部の[+▼] を押します
  3. https://github.com/KisaragiEffective/VRChatExpressionParametersOptimizer.git と入力します

Getting started

アバターのルート (VRC Avatar Descriptor コンポーネントがついているゲームオブジェクトと同じゲームオブジェクト) に Expression Parameter Optimizer SettingAdd Component してください。

EPOSはAAO Trace and Optimizeのように、すべてのAnimatorControllerを自動的に走査し、使われていないパラメーターを削除します。

何らかの理由で特定のパラメーターをEPOSから除外したいときは、新規に作成したゲームオブジェクトに Marker ExclusionAdd Component し、そのゲームオブジェクトを Expression Parameter Optimizer SettingExclusions に代入します。

Marker Exclusion は有効化状態を制御する Applies 、パラメーター名に対してマッチさせる正規表現 Exclusion Name Pattern、処理内容に影響を及ぼさない自由記述かつエンドユーザーがメモとして使用することができる Comment からなります。

Exclusion Name Pattern に指定する正規表現は C# の正規表現 として有効な構文にしてください。無効な構文を与えた場合、ツールはエラーを報告しアップロードが阻止されます。

トラブルシューティング

パラメーター超過時の対応

コントロールパネルがExpression Parameterについて同期パラメーターのビット数の制限の超過を報告する場合、以下の手順でビット数の評価を実際のビルド時まで遅延させることで回避することができます。

  1. Modular Avatarをインストールする
  2. Extract Menu で再帰的にメニューを展開する
  3. 呼び出さないメニューを消す
  4. ビルドし直す

もしどうしてもModular Avatarを使うことが難しい場合、さやまめさんが作成したUpload-without-preCheck を使用してください。