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.
23
·
tracked
"Locked out" rotations on physbones do not travel up the chain when pushed by colliders
When physbone rotations are limited, the effects of physics settings such as gravity, as well as pulling on the physbone, will cause the "locked out" rotation to travel up the chain, for example: Making a vertical line of 3 bones and limiting the rotation to 10 degrees, then grabbing the bone at the bottom and moving it beyond 10 degrees will cause the parent to then rotate to follow it (since they're linked together) However this same behavior does not extend to collisions, pushing the bone described above with a collider will only cause it to move and lock out at 10 degrees, and won't travel up the chain to push the parent, I see this as a bug as the behavior differs depending on interaction method. Please allow the forces induced by colliders to travel up the chain (note that some physbones may have depended on the old behavior, so a physbone version bump i.e. 1.2 might be necessary). This currently makes setups like the ones in the attached images only function for grabbing, not collision (hinge rotation on root bone affects the glasses, collision radius set to 0.015 but reduced to 0 on the root bone via curve, dummy bone set to to overlap the glasses frame with collision, to provide a wider point of contact than what would be possible otherwise, hinge rotation set to 0 on the dummy bones, immediately locking out their rotation, which should cause any force induced on them to travel up the chain).
0
·
Bug Report
VRC SDK keeps re-enabling Auto Graphics for Linux, forcing unity to open in opengl instead of vulkan (overriding previous settings)
After testing, different of standard unity editor behavior where turning off auto graphics API for linux lets you reorder the graphics APIS and make unity try to first load with vulkan, VRC SDK on editor unload re-enables Auto Graphics API for linux, meaning that on the next project startup it will launch on OpenGLCore which is a broke renderer, and much slower, and since it is a different renderer this also triggers the assets to be rebuilt making the startup time infuriately long. This behavior is different of standard unity editor behavior that maintains the selected option across many restarts of the editor, this behavior only happens when VRC SDK is installed on the project. Tested with an empty VRC Avatar project to confirm it is in fact VRC SDK causing this behavior. Attached are 2 images, showing how OpenGL is rendering in a completely broken manner, while vulkan renders normally. Hardware & Software Specs: Operating System: CachyOS Linux KDE Plasma Version: 6.6.4 KDE Frameworks Version: 6.25.0 Qt Version: 6.11.0 Kernel Version: 7.0.3-1-cachyos (64-bit) Graphics Platform: Wayland Processors: 12 × AMD Ryzen 5 4600G with Radeon Graphics Memory: 32 GiB of RAM (27.3 GiB usable) Graphics Processor 1: AMD Radeon RX 7700 XT Graphics Processor 2: AMD Radeon Graphics Manufacturer: Micro-Star International Co., Ltd. Product Name: MS-7C96 System Version: 1.0 Unity 2022.3.22f1 Available Graphics APIS: Vulkan OpenGLCore Tested on an empty project created with Unity Hub (shows correct behavior) And on a VRChat Avatar project created with ALCOM (shows wrong behavior [keeps resetting to OpenGL on editor exit]) Created from: https://help.vrchat.com/hc/en-us/requests/692576
0
·
Bug Report
Load More