Bug Reports

  • No off-topic posts
  • Don't report more than 1 issue at once
  • For isolated issues or customer support visit help.vrchat.com
Thanks for your bug report!
[1623] DepthNormals Pass Ignores Shaders
OS: Windows 10 VRChat Version: 1623 open-beta Headset: Valve Index Hardware: RTX 2070 super, Ryzen 7 5800X3D SteamVR: 2.9.6 Unity Version: 2022.3.22f1 (Through creator companion v2.4.2) VRChat SDK: 3.8.1-beta.1 First off: I'm usually one to gripe on things but for this one, thank you. We've recently been given the absolute grace that is DepthTextureMode read/write access, including the DepthNormals flag for cameras. This feature alone massively extends what shaders can do, while removing the expensive and inaccurate methods used to approximate a "normal pass." Before this update, you could choose between using a unity projector, or a bunch of normalized cross product math to get faceted normals from the depth buffer, a look everyone complains to me about. The addition of the DepthNormals flag enables the _CameraDepthNormalsTexture which stores both the depth and normal data in one texture, making shaders even more efficient assuming one decodes the depth from there as well. The problem: Sadly, it seems like a major amount of existing shaders are not rendered to the DepthNormals buffer when enabling DepthNormals. Some personal digging and previous work on this matter, my current best guess is the Internal/DepthNormals shader which is built into Unity (but overridable!) having specific RenderType targets is disregarding common shaders like poiyomi and such. Some avatar shaders show up fine in the texture, assuming they are targeted by the given RenderTypes here https://github.com/TwoTailsGames/Unity-Built-in-Shaders/blob/master/DefaultResourcesExtra/Internal-DepthNormalsTexture.shader Recreation: You could recreate this problem by Create a new vrchat world project creating a udon script that enables the DepthNormals pass in Start() like so: VRCCameraSettings.ScreenCamera.DepthTextureMode = DepthTextureMode.Depth | DepthTextureMode.DepthNormals; Creating a shader that samples the _CameraDepthNormalsTexture (which ill include the ones I made for my testing) Create a material with that shader and put it on a cube or something (make sure the RenderQueue is well above whatever shaders you would be previewing) Build and/or upload the world Use avatars with a variety of shaders and view them through the shaders display From here you should see some avatars working fine (like the VRChat base avatars) but most avatars i've tried that use custom shaders are hit and very miss for showing up. A possible solution path (assuming this isn't a skill issue on my part): The internal DepthNormals shader can be exchanged for a custom shader through Edit > Project Settings > Graphics > Built-in Shader Settings > Depth Normals The replacement shader targets are given in the internal shader, which shaders with RenderTypes in that list seem to work just fine. If we create a custom shader that implements the same functionality as the internal one but instead targets all RenderTypes, theoretically this could solve the problem. I've been wanting this feature for years and it's absence hinders a lot of my projects. It would mean the world to me and my projects/lighting systems if we could have this functionality work for all to use. I will happily expand on this problem if needed
3
PhysBone freezes if parents scale is zero on enable then become non-zero, and isAnimated is set to false.
PhysBone freezes if parents scale is zero on enable then become non-zero, and isAnimated is set to false. Summary A PhysBone will become frozen (does not sway and unable to grab) if the all of the following conditions are met: The parent of the PhysBone has a scale of zero when the PhysBone become enabled, and then scale is set to non-zero. The Is Animated option is set to false. Details First of all, The documentation of PhysBone does not mention that PhysBone will freeze in some cases. Therefore, freezing is not expected behavior (for us). Secondly, the documentation of Is Animated option says: > Allows bone transforms to be animated. Each frame bone rest position will be updated according to what was animated. This must be enabled in order for any bone in the PhysBone chain (Root bone included!) to respect animations applied to it. Therefore, there is no mention for parent scale or any other behavior related to Is Animated flag, and there is no mention for freezing. If both or either of the behaviors are expected, please update the documentation to mention that. Steps to reproduce this gist is a minimal assets to reproduce the issue. Download the zip and unzip it to anywhere in Assets, then open the Test Scene.unity . You'll see single Avatar with a PhysBone with Is Animated set to false under "Parent" GameObject, and an "Indicator" that shows the "Angle" Animator Parameter of the PhysBone. Set the "Is Animated" of the PhysBone to false. Select the "Parent" GameObject and set the scale to (0, 0, 0), and make it inactive (uncheck the checkbox). Enter Play Mode. Activate the "Parent" GameObject. (This will also make the PhysBone enable) Set the scale of "Parent" to (1, 1, 1). Problem 1: The "Angle" parameter of the PhysBone become 0.5 and will not change. Problem 2: When you try to grab the PhysBone on the scene view, it will not able to grab. When you set the "Is Animated" to true, both problem will not happen. When you enabled the PhysBone after setting scale to 1,1,1 (swapping step 4 and 5), both problem will not happen.
1
·

tracked

Avatar Parameter Drive's <Copy> mode dont work from animated parameters
Using the VRC Avatar Parameter Drive to copy an animated parameter in an animator to a VRC Parameter does not work. Tested copying VRC parameter to another VRC Parameter, and that works. Tested copying an animated parameter to VRC Parameter in Unity editor using gesture manager and that works too. Tested on an otherwise empty avatar without any VRCFury or other addons modifying the upload process. To create a test, follow these instructions: * Create a VRC Parameter component with the following 3 parameters and add to an empty avatar. VRC_Input (Float), VRC_Output (Float), VRC_InRadial (Bool). * Create a VRC Menu component and add two radials. Name one Input, and set parameter to VRC_InRadial, and rotation to VRC_Input. Name the other Output and set rotation to VRC_Output * Create a Unity animator with all 3 VRC parameters as well as a new "Animated Property" float parameter. * Create an animation animating the "Animated Property" from 0 to 1. Have this animation as the only animation in its own layer in the animator, and set the Motion Time to VRC_Input (Thus the Input Radial in our menu will animate the "Animated Property" parameter). * Create another layer with two states, name one "In Radial" and the other "Outside of Radial". * Create a transition from "In Radial" to "Outside of Radial" and set the condition to VRC_InRadial == False. Then create another transition back to "In Radial" with the condition VRC_InRadial == True. * Finally add a VRC Avatar Parameter Driver to the "Outside of Radial" state, set the type to Copy, the Source to Animated Property, and the Destination to VRC_Output. Upload and test. Expected behavior: Adjusting the Input radial will update the animated property, and when exiting the input radial, the animated property is copied onto the Output parameter and thus visible on the output radial menu item. Actual behavior: The VRC_Output parameter is not updated when exiting the Input radial. Adjusting the VRC Avatar Parameter Driver on "Outside of Radial" state to copy from VRC_Input instead of Animated Property, then re-uploading the avatar, shows that copying from VRC parameters works. NOTE: It may appear that the Animated Property is not being adjusted by VRC_Input if you view the Debug Menu ingame. However, creating a third layer with an animation that animates anything visible on the avatar (lets say the scale of a cube or color of a material) and then setting the motion time on that animation to Animated Property proves that the value is still updated. This strange behavior might point to the cause of this bug.
2
·

tracked

If a Contact Receiver is initially inactive but becomes active immediately after avatar load via animation (such as through a layer default state), it does not function with an already active Contact Sender.
Step 1: User A loads an avatar where the Contact Sender is active. Step 2: User B loads an avatar where the Contact Receiver is in Proximity mode, initially inactive, but immediately set to active by animation after avatar load (e.g., through a layer default state). As a result, the Contact Receiver on User B's side stays at a parameter value of 0. The issue resolves if either User A deactivates and then reactivates the Contact Sender, or User B deactivates and then reactivates the Contact Receiver. This occurs at least in Proximity mode, but it is untested whether it happens in other modes. --- ja Contact Receiverが最初はInactiveだがアバターロード後すぐにAnimationでActiveにされた場合、既に存在するActiveであるSenderに対して機能しない。 まず: ユーザーAがContact SenderがActiveなアバターをロードしておく 次に: ユーザーBがProximityモードのContact ReceiverがInactiveだがアバターロード後すぐに(layer default stateなどで)AnimationでActiveにされるアバターをロードする すると、ユーザーB側のContact Receiverはパラメーターが0のままになる。 ユーザーAがContact SenderをInactiveにしもう一回Activeにするか、あるいはユーザーBがContact ReceiverをInactiveにしもう一回Activeにすると正常に動作するようになる。 少なくともProximityモードの時に発生するが、他のモードで発生するかどうかは試していない。
1
·

tracked

(PC) VRChat became nearly unplayable.
Ever since the new update was released, VRChat has been causing a lot of problems. ##List: >When I try joining certain worlds, VRChat either crashes or sends me back to my homeworld. >Sometimes, when someone or one of my friends joins, VRChat crashes. >For some avatars, when I change to a different avatar, show certain avatars, preview an avatar in the avatar menu, or someone changes their avatar, VRChat crashes. On some occasions, avatars can either appear invisible, have a glitchy appearance, or shown as error bots. >When I spend about 30 minutes or less playing VRChat, it crashes. >If I continue to join worlds that keep sending me to my homeworld, I get an error message saying it failed to authenticate with realtime servers. ##Description: This problem started on April 12, 2025. IPv6 is already disabled in case you're wondering. I tried fixing this problem, but it still manages its way to bother me again! I've cleared all my cache, cleared local profile data, freed up some disk space, reinstalled VRChat a bunch of times, and read articles or watched videos on how to fix this issue, but none solved anything. I just assumed it's VRChat itself at this point. Is there a solution to this problem? Any help or updates would be appreciated. Please click on the 8mb video button below if you want to see the proof of this bug I'm having. VRChat Build Number: 1627 =Specs= OS: Windows 11 Case: Acer Predator Orion 5000 PO5-650-UR12 Gaming Desktop Graphic Card: NVIDIA GeForce RTX 3070 Processor: 13th Gen Intel(R) Core(TM) i7-13700F 2.10GHz
5
·

tracked

Load More