[SDK3.10.1] Meaningless "VRCExpressionsMenu uses a parameter that is not defined." warning triggered for a parameter not used in the Expressions Menu during avatar upload
Ci_ren
アバターのアップロード時に、Expression Parameters には登録されておらず、実際にそのパラメーターが一切使われていないにも関わらず、Alertsの欄で「VRCExpressionsMenu uses a parameter that is not defined.」という警告を受ける場合があります。
以下の手順で再現出来ます。
・警告を発生させたいパラメーターを、アバターの Expression Parameters に登録する
・この Expression Parameters を参照して動作する Expressions menu 内の項目を "RadialPuppet" "TwoAxisPuppet" "FourAxisPuppet" のいずれかで作り、警告を発生させたいパラメーターを割り当てる(RadialPuppetであれば回転させて操作出来るパラメーターの方に割り当てる)
・その作った項目を "Button" "Toggle" "Submenu" のいずれかに切り替える
・警告を発生させたいパラメーターをそのアバターの Expression Parameters から消す
結果として、メニュー内で実際はそのパラメーターを使う要素が存在しないにもかかわらず、アップロード時にそのパラメーターが存在しない事を警告されるようになります。
Inspector を Debug 表示にして Expressions menu 内の先ほどの操作した項目を覗くとパラメーターの情報が残留しており、これは警告されるパラメーター名と一致している為このせいで警告されているようです。実際に取り除く事で警告は消えます。
また、この時残留する要素はパラメーターだけでなく Submenu も同様らしく、もし参照していた Submenu の中で更に登録されていないパラメーターが存在していた場合にも、そのパラメーターに関する警告が出ます。
そしてこれらの残留する要素は Expressions menu の一番下の項目として存在していた場合、プラスアイコンを押して新規の項目を作った時にも全く同じものが割り当てられます。
これらの残留している情報は Expressions menu を作っている時には何も問題にならないように見える上に、実際に警告を無視してアバターをアップロードしても問題になった事はありませんが、警告自体が実際には意味が無いものとして振舞っているのは問題があるように思えます。
~以下機械翻訳による英文~
When uploading an avatar, I sometimes receive an alert in the Alerts panel stating:
"VRCExpressionsMenu uses a parameter that is not defined."
This occurs even though the parameter in question is not registered in the avatar's Expression Parameters and is not used anywhere in the menu.
Reproduction steps:
- Register the parameter that should later trigger the warning in the avatar's Expression Parameters.
- In an Expressions Menu that references that Expression Parameters, create an item of type RadialPuppet, TwoAxisPuppet, or FourAxisPuppet, and assign the parameter you want to cause the warning. (For a RadialPuppet, assign it to the parameter used for rotating/controlling the puppet.)
- Change that created item to one of Button, Toggle, or Submenu.
- Remove the parameter you want to trigger the warning from the avatar's Expression Parameters.
Result:
After these steps, uploading the avatar produces a warning that the parameter does not exist, even though there are no elements in the menu that actually use that parameter.
Investigation / additional notes:
If you set the Unity Inspector to Debug mode and inspect the item in the Expressions Menu you modified, parameter information remains in the item's serialized data. The leftover parameter name matches the parameter referenced in the warning, so this residual data appears to be the cause of the alert. Removing the residual data removes the warning.
The residual data is not limited to parameters — Submenu entries also appear to retain references. If a referenced Submenu contains an unregistered parameter, the upload produces a warning about that parameter as well.
Also, when these residual entries exist as the last item(s) in the Expressions Menu, pressing the plus icon to create a new item assigns the same residual serialized data to the newly created item.
Impact and why this is an issue:
These leftover serialized references do not seem to cause functional problems when building the menu, and ignoring the warning has not prevented successful avatar uploads in my experience. However, the warning behaves as if it indicates a real, actionable problem when in fact it is produced by stale serialized data in the menu. This appears to be a bug in the SDK/editor validation — the warning is effectively meaningless in this situation and can be confusing.
Note: This report was written in Japanese and translated into English using machine translation. I reviewed and adjusted the translation for accuracy, but please let me know if any phrasing is unclear.
Log In