Open Beta

Post about the current Open Beta. Post logs to Gist/Pastebin! One item per post!
Non-constructive and off-topic posts will be moved or deleted.
[SDK 3.10.4 beta 2] Allows us to ignore a global collider locally
Issue: With the new global collider option users can now mark a PhysBone collider as global to allow it to collide with other peoples PhysBones. This however has one problem, you can't have a global collider that can collide with other peoples PhysBones, while not having it collide with all of your PhysBones. For example Furry Avatars often have PhyBones in their toes, but maybe also want to be able to have a global collider on their foot. Currently those two would interfere with each other and there is no way to prevent that without making the collider local or disabling "Self" on the Phys Bone collision. (Doing so would also prevent hands etc from colliding.) Suggestion: Essentially, allow us to somehow have a global PhysBone collider that we can locally ignore. There are 2 ways I could see this being solved: Have a "Ignore Colliders" list on each PhysBone. If you have a global collider that you don't want it to collide with you can just drag it in there. Similar to PhysBones themself, have "Collide Self" and "Collide Others" toggles on PhysBone colliders when set to global, allowing you to decide if it should only be global for you, others or both. Current Workarounds: Currently you can just have "Allow Self" disabled on the PhysBone and live with you not being able to touch or grab them. If you want to add that back you could add your own finger colliders, etc. just for that PhysBone. Attachments: Here is a screenshot of the "Allow Self" and "Allow Others" settings on PhysBones that could also be implemented for colliders.
6
·
Feature Requests
·
tracked
[1853] [SDK 3.10.4 beta 2] VRCTween.TweenInt fails to tween large integers correctly due to 32-bit float precision loss
Description: I am very excited about the addition of VRCTween in the new SDK update. However, I have noticed an issue: when trying to tween large integers using VRCTween.TweenInt , the values get rounded up or down to specific numbers, leading to inaccurate results. using System; using UdonSharp; using UnityEngine; using VRC.SDK3.Components; public class VRCTweenTest : UdonSharpBehaviour { [NonSerialized] public int _tweenedInt; public void PrintCurrentValue() { Debug.Log(_tweenedInt); } void Start() { VRCTween.TweenInt( 1, 15, 2, this, nameof(_tweenedInt), nameof(PrintCurrentValue), VRCTweenEase.Linear ).SetDelay(1); VRCTween.TweenInt( 100000001, 100000015, 2, this, nameof(_tweenedInt), nameof(PrintCurrentValue), VRCTweenEase.Linear ).SetDelay(4); VRCTween.TweenInt( 2000000001, 2000000015, 2, this, nameof(_tweenedInt), nameof(PrintCurrentValue), VRCTweenEase.Linear ).SetDelay(7); } } Expected Behavior: The script should output all intermediate integer values smoothly: * 1 through 15 * 100000001 through 100000015 * 2000000001 through 2000000015 Actual Behavior: When running the script, the console outputs the following: * The first tween correctly prints 1 through 15 . * The second tween only prints 100000000 , 100000008 , and 100000016 . * The third tween only prints 2000000000 . Cause Analysis: I suspect this happens because VRCTween.TweenInt is internally utilizing DOVirtual.Float or otherwise casting the values to float during interpolation. Since a 32-bit float has a 24-bit significand, it cannot precisely represent all 32-bit integer values (precision loss occurs for integers larger than 2^24, which is 16,777,216). Thank you for looking into this!
0
·
Bug Report
Load More