Avatar Bugs & Feature Requests

Post about current Avatar bugs and Avatar Feature Requests. One item per post!
Non-constructive and off-topic posts will be moved or deleted.
[1820] Raycast Parameters are sometimes incorrect if Raycast is Animated
Steps to repro: Add a raycast to avatar and give the parameters a name so they show up in the Debug window Create a toggle that Constraints or Animates the raycast to a new position Open up the debug window and observe the parameters. Toggle on the animation and observe the parameters In some worlds the parameters do not update with the new animated position of the raycast Expected behavior is that the parameters should match the current animated location of the raycast which seems to not be the case in some worlds. It seems world dependent which is quite odd. My thought is that it may be some sort of race condition. Many use-cases for raycasts involves them being attached to gameobjects that are animated and/or constrained so this bug effectively makes the parameters useless in those uses-cases while it exists. Avatar used to test: https://vrchat.com/home/avatar/avtr_c4932ab2-7dde-41f4-be23-0993287a2253 Avatar has 3 raycasts. By default the raycasts are to the Left, Right and Forward. The raycast with the green sphere is constrained Forward when the toggle is activated. The raycast with the blue sphere is animated Forward when the toggle is activated. Worlds where I DID encounter this bug: Avatar Testing Chamber https://vrchat.com/home/world/wrld_a5e9ec13-36b1-4e63-ae0c-dab9023401f9/info Nico's Garage https://vrchat.com/home/world/wrld_91fe29d2-9c55-4d2f-88a6-1a3e838f2564 1's Optimized Box https://vrchat.com/home/world/wrld_1a8b8684-3b19-4770-a4a7-288762f57b29 Worlds where I DID NOT encounter this bug: BrainrotTestZone https://vrchat.com/home/world/wrld_858aa698-08e3-4f1d-b8ff-5f1a43e41f20 DaggerTest https://vrchat.com/home/world/wrld_b42e2d5e-da85-475e-a701-cd15bc3c4efd/info [Initial D] Lake Akina https://vrchat.com/home/world/wrld_fff707c6-bec1-442c-b4d6-41a707166f37/info Additional Notes * Tested on both Live and Open Beta, behavior occurs on both. * Parameter data when the bug occurs seems to come from the raycast's original location/direction Attachments: * RaycastBug1.mp4: Video takes place in Avatar Testing Chamber, showcases the bug as the parameters for the Raycasts should be almost identical when the toggles are activated but they continue to show behavior similar to the untoggled state. * RaycastBug2.mp4: Video takes place in Lake Akina and showcases the bug NOT occurring, aka what the expected behavior should be. Raycast parameters are almost identical when the toggles are activated as the raycasts are animated to nearly the same direction/position.
1
·
Bug Reports
Components that take Transform values and output them to Custom Shader properties/Animator parameters?
This is something that feels like has been lacking for a good while, but having components that could take vectors of a transform property and output them to either a custom string for either a material property or an animator parameter to use. The implementation would be similar to how Physbones allows creators to use custom strings to name parameters that the animator will use and output specific animation reactions depending on the value. Example for the animator: Rotation Offset: There's one feature that Blender has that Unity lacks, and that is using corrective shape keys. Corrective ShapeKeys is a thing in Blender that lets users use bone transform angles to correct deforming mesh based on the angle. So you could bend your elbow in a specific way without needing to redo your weight paints or mesh topology. You could limit the angle of influence of how far the rotation can go for the blendshape amount within the driver itself in Blender. Positional Offset: Similar case to the above, you could also use a child of an empty game object to control how blendshapes look dependent on the child object's transform positional offsets relative to the parent object. If I say dragged a ball that was in world space to the left, I could make the face look angry, or make a character on the screen of a prop on my model move to the left. Examples for shader properties: Vectors, Floats, and Colors: Genshin Impact, love or hate it, is a decent game with an interesting shading style, especially with how they do their facial shadows. HoyoVerse uses SDFs to achieve this effect by getting the forward and right vectors of the head bone to determine the lighting angle along a gradient, and flip the gradient depending on specific conditions. The problem is the only method of doing this within Unity is to change the root bone of a skinned mesh renderer to the head bone rather than the hip bone, which is bad for those that want to have a consistent bounding box across all meshes and for shaders that manipulate the vertices of the skinned mesh. A way to solve for this would be to have a component that could output the forward, right, and even upward vectors to a custom string for a material property to read from and inherit the transform values of. Alternatively you could also output the transform positions for proper dissolve effects or for motion capture based systems that use colors to output, or to even give a good wobble effect/get the volume of a glass bottle for a liquid shader, or have it magically fill up. If possible, this could also be an extension to the Avatar Dynamics, and it could also be implemented into PhysBones for the transforms, but having this be extended to other use cases like the ones mentioned would be extremely helpful and possibly more optimized than using lights + depth tricks, CRTs + Cameras on our avatars, or whatever jank and unoptimized methods we use for our creations.
5
·
Feature Requests
Load More