World/Udon Bugs & Feature Requests

Post about current World or Udon bugs feature requests. One item per post!
Non-constructive and off-topic posts will be moved or deleted.
Udon's FixedUpdate() runs multiple times before any Unity physics simulation is done.
https://vrchat.com/home/world/wrld_9b540ed9-6aca-4172-9e33-f75cb756a9f5/info This world measures how many times by adding a force every frame and checking if Rigidbody.GetAccumulatedForce() is larger than one frames worth. My result with one client is 28-32. My result with two clients: Master: 28-150~ Nonmaster: 180-300~ The numbers are going to be much higher in more complicated worlds that take longer to load and have more networked/physics objects. This is problem for anyone working with physics, because applied forces will add up and cause the object to suddenly spring away with all the accumulated force once the simulation starts actually running. Personally, it caused the suspension forces on my cars to build up and cause them to shoot in the air and explode. The number of frames is much greater if two players join a new instance at the same time, leading to confusing problems for developers. The number of frames seems to be directly related to how long the loading screen is shown for, in the case where two players join a new instance at the same time, the loading screen is shown for much longer. Solution: It might actually be quite complicated because this delay way probably added for a good reason. I don't think it's as simple as not running FixedUpdate() until the delay is over, because Update() etc is also already running. Maybe delay all Udon activation until this time? There's no way for me to know without knowing VRC's code. A workaround fix could be to add a PhysicsReady() event for when physics actually activates.
1
Allow VRCImageDownloader to download and downscale images larger than 2048x2048px
Today, the most popular use case of the IVRCImageDownload is to share some picture with friends in VRChat. However, there is one big annoying behavior in IVRCImageDownload for this use case. That's 2048x2048 texture size limit. Therefore, I hope VRChat to have the feature that automatically scale the texture size down to 2048x2048. As described before, it's common to use IVRCImageDownload for sharing pictures with friends. There are several assets specifically designed for this use case such as Image Pad and ImageTablet . However, the 2048x2048 size limit is an annoying for this use case because today picture is likely to exceed this limit. For example, my iPhone 12 mini with default settings will take picture with 4032x3024 pixels and other modern smartphones also take high resolution image by default. In VRChat, I feel it’s common to choose take pictures in QHD, 4K, or 8K but none fits 2048x2048 limit. (FHD and HD fits 2048x2048 though we want to take high-quality pictures.) The texture downloaded with IVRCImageDownload become uncompressed RG, RGB or RGBA texture on the VRAM so It take huge VRAM. Therefore, I think it's reasonable to limit texture size on the VRAM. However, I think it's possible to resize texture down to 2048 off the main thread before loading to to the VRAM. That’s why I request VRChat to have the feature that automatically scale the texture size down to 2048x2048. 日本語要約 IVRCImageDownloadという Image Pad や ImageTablet のような画像を共有するためのアセットで使われている機能に対する要望です。 前述のタブレットではVRChatの制限により2048x2048より大きい画像を指定した場合にはエラーになりますが、エラーにする代わりに 2048x2048 以下に自動的にリサイズするオプションを追加してほしいという要求になります。 (技術的理由により2048x2048より大きい画像をそのまま表示するのは厳しいです) このオプションがあれば、Discordなどに上げた画像を共有するときにエラーが出て使えないという面倒事を減らせるようになります。
3
·

tracked

Load More