SDK Bug & Feature Requests

Please check out the following rules and use the provided template when posting a bug report! Off-topic posts will be deleted.http://bit.ly/vrchat-bug-reports
Proposal for fixing Audio Filters (eg low-pass) support for AVPro
I believe it is time to get a solution to the most plaguing issue (in my opinion) of AVPro: Audio Filters I do not think this is a "can't fix" situation. In this proposal I will go over the problem, considerations that have been discussed historically, and the solution I believe is feasible to implement with working sample code. ### Previous Cannys 1) https://feedback.vrchat.com/open-beta/p/986-avpro-player-ignores-lowpass-reverb-and-other-filters 2) https://feedback.vrchat.com/sdk-bug-reports/p/avpro-video-player-audio-filter-issue 3) https://feedback.vrchat.com/sdk-bug-reports/p/sound-effects-are-not-applied-to-audiosource-using-avpro-that-comes-with-sdk3 4) https://feedback.vrchat.com/feature-requests/p/usharpvideo-stream-audio-does-not-support-filters ### Crux of the issue As previously discussed in above canny #1, the current way of handling the AVPro speaker component (type named AudioOutput ) is that the component is implicitly created via AddComponent on the same game object. This has the critical drawback of being unable to respect any audio filters due to the DSP filter chain being _component order dependent_. The second half of this issue is that Unity has no runtime native way to change the ordering of components without fully reconstructing the references. This causes very obvious issues in regards to dependent scene references. (TCL's comment in canny #1 clarifies this as well) ### What has been considered Detecting and destroying/rebuilding known filter components after the implicit component is added. This is bad because all scene references to those components would be lost (eg: UI Events or public Udon variables). To avoid the lost components issue, a full scene search would be required in order to update the references which is costly and fragile. Placeholder components (shims) for each filter type that gets implicitly created after the implicit AudioOutput This is bad because it does not allow users to reference the actual filter components in the inspector (namely an issue for UI Events) Allow adding the AudioOutput script manually in scene and have the speaker search for it before trying to implicitly add the component. This is bad because it requires that the user import the AVProTrial package to be able to use built-in unity audio filters. This needs to be compatible with situations where the user does not wish to import that package so the dependency is decoupled from the feature itself. ### Proposed Solution A shim script that inherits from the AudioOutput class combined with a compiler flag for detecting if AVPro is present, and if not, then have a stub type of the _same namespace and type name_ which is _ONLY_ present in the sdk. Then update the VRCAVProVideoSpeaker to check for the existence of the shim component before creating an implicit AudioOutput, using it instead if found on the game object. This ensures that when the main shim script is loaded in editor, it is already a valid AudioOutput component and the component order is correctly retained so the Audio Filters will work correctly. In the SDK, the script type will check for the existence of AVPro through a version define, and if NOT present, will enable the AudioOutput stub class of the same namespace. An example of what it might be like: https://gist.github.com/techanon/41efc336604e148dde55862bff1778d9 I've tested this specific example in editor and it works there. Can't test in-client obviously.
22
·
tracked
Android build and test not working
Followed the this https://creators.vrchat.com/platforms/android/build-test-mobile/ but it fails to lunch vrchat on my phone after building it even puts the file on my phone so i know for sure adb is working and getting this in my editors console and tried this with 2 different world projects now AdbException: ADB failed with exit code 1. StdOut:Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.vrchat.mobile.playstore/com.vrchat.app.MainActivity (has extras) } StdError:Error type 3 Error: Activity class {com.vrchat.mobile.playstore/com.vrchat.app.MainActivity} does not exist. VRC.SDK3.Editor.Builder.ADB.Command (System.String[] arguments) (at <8c33ac67c14b4f31a7515261397206c6>:0) VRC.SDK3.Editor.Builder.ADB.StartVRChatIntoWorld (System.String remoteBundleFilePath, System.String appPackageName) (at <8c33ac67c14b4f31a7515261397206c6>:0) VRC.SDK3.Editor.Builder.VRCWorldAssetExporter.RunWorldTestAndroid (System.String bundleFilePath) (at <64d127784e7f4289a5a7ffbe49df807e>:0) VRC.SDK3.Editor.Builder.VRCWorldAssetExporter.RunScene (System.String bundleFilePath) (at <64d127784e7f4289a5a7ffbe49df807e>:0) Rethrow as WorldAssetExportException: An ADB command failed to execute. Check the console for more details. VRC.SDK3.Editor.VRCSdkControlPanelWorldBuilder.Build (System.Boolean runAfterBuild) (at ./Packages/com.vrchat.worlds/Editor/VRCSDK/SDK3/VRCSdkControlPanelWorldBuilder.cs:2576) VRC.SDK3.Editor.VRCSdkControlPanelWorldBuilder.BuildAndTest () (at ./Packages/com.vrchat.worlds/Editor/VRCSDK/SDK3/VRCSdkControlPanelWorldBuilder.cs:3282) VRC.SDK3.Editor.VRCSdkControlPanelWorldBuilder.OnBuildAndTestAction () (at ./Packages/com.vrchat.worlds/Editor/VRCSDK/SDK3/VRCSdkControlPanelWorldBuilder.cs:2147) System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__7_0 (System.Object state) (at <27124aa0e30a41659b903b822b959bc7>:0) UnityEngine.UnitySynchronizationContext+WorkRequest.Invoke () (at <cb81df0c49c643b1a04d9fc6ccca2433>:0) UnityEngine.UnitySynchronizationContext.Exec () (at <cb81df0c49c643b1a04d9fc6ccca2433>:0) UnityEngine.UnitySynchronizationContext.ExecuteTasks () (at <cb81df0c49c643b1a04d9fc6ccca2433>:0)
3
·
Bug Report
·
tracked
[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
アバターのアップロード時に、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.
1
·
Bug Report
·
tracked
Load More