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!
Using “Freeze To World” with “VRC Parent Constraint” causes the offsets to become incorrect.
When "Rebake Offsets When Unfrozen" is turned on in the "VRC Parent Constraint," and "Freeze To World" is activated from the animation system to freeze the object in the world, the offsets become incorrect. I created a simple gimmick similar to the one shown in the Developer Update video ( https://ask.vrchat.com/t/developer-update-30-may-2024/24821 "VRChat Constraints Revisited") and tested it. The video is attached. The first half of the video shows the scene with "Freeze To World" being used while "Rebake Offsets When Unfrozen" is turned off. The second half of the video shows "Freeze To World" being used with "Rebake Offsets When Unfrozen" turned on. In the second half of the video, the cube moves instantly when "Freeze To World" is activated. The offsets are not rebaked to maintain the positional relationship between the hand and the cube, which leads me to believe there might be a bug in the "Rebake Offsets When Unfrozen" option. --- ”VRC Parent Constraint”の”Rebake Offsets When Unfrozen”をオンにした状態で、アニメーションから”Freeze To World”を操作してオブジェクトをワールド固定するとオフセットが狂います。 以下のDeveloper Updateで紹介されている動画( https://ask.vrchat.com/t/developer-update-30-may-2024/24821 ”VRChat Constraints Revisited”で紹介されている動画)と同じようなシンプルなギミックを作って検証してみました。その動画を添付します。 動画の前半は”Rebake Offsets When Unfrozen”をオフにして”Freeze To World”を操作するシーンです。 後半は”Rebake Offsets When Unfrozen”をオンにして”Freeze To World”を操作するシーンです。 動画後半では”Freeze To World”を操作するとキューブが瞬間的に移動しています。 手とキューブの位置関係を維持するようなオフセットのリベイクは行われず、おかしな挙動をしていることから”Rebake Offsets When Unfrozen”のオプションにバグがあるのではと推察いたします。 build number 1552
2
·
available in future release
VRChat Unity Animator Lag
The number of animation layers heavily affects performance due to unnecessary inverse kinematic calculations. Even blank animation layers with zero weight in the FX layer can trigger this behavior. The offender is seen in the profiler as Animators.IKAndTwistBoneJob. It runs as many times as the currently loaded animation controller with the largest number of layers. Although the individual run time is small, they very quickly add up. Slower CPUs seem to be more adversely affected by this. The time taken by these extraneous calculations quickly grows larger than all normal animator activity. This behavior only happens on animators that have a unity avatar/armature. When that is removed, this behavior goes away and the number of layers ceases to be a significant cause of lag. Most FX layers do not have any interaction with the armature, so it is likely that this behavior can be fixed for almost all FX layers. However from debugging the unity editor in visual studio, it appears the this happens in a native unity function named Animator::UpdateAvatars. It is likely that in most if not all cases, these calculations are completely wasted on FX layers and provide no benefit at all while consuming significant amounts of main thread time. Somehow these calculations need to be only run for layers that require them. Additionally providing a way to get parameters in sub animators would allow logic to be moved out of the main animator completely sidestepping this problem. They would not have a unity avatar associated with them, so this problem would not occur. It would also allow completely disabling animators when not in use. Please attempt to find a way to prevent this behavior or consider convincing your Unity contacts to implement a fix. This seems to be one of the largest contributors to animator lag. I have a full write-up with more profiler images and further explanations. https://docs.google.com/document/d/1SpG7O30O0Cb5tQCEgRro8BixO0lRkrlV2o9Cbq-rzJU
7
·
available in future release
Load More