[SDK][2019.08.23.13.45] VRC_SceneResetPosition generates garbage
Also reproduced with the latest beta SDK 2019.12.06.19.26 I've been using the VRC_Scene Reset Position script a lot for some of my worlds, and have found that it will generate around 0.6KB of garbage in the editor each time ResetPosition() is called. I assume this acts the same in game. This allocation happens when the reset velocity option is turned off, but the allocation can be removed by putting a kinematic rigidbody component on the same game object as the reset. So I assume there's a GetComponent/s<RigidBody> being called until a rigidbody component is found so that it can reset the velocity on the rigidbody, even if you tell it to not reset the velocity. There's also some performance overhead. An artificial test calling ResetPosition() 90 times per frame took about 0.3ms without a rigidbody, and about 0.12ms with a rigidbody.
"VRC Midi Note In" component "On Note Off" triggers "On Note On"
Video: https://youtu.be/x0jOaicSlH4 World: https://www.vrchat.com/home/world/wrld_2db55972-a151-4c13-bc58-07dea4ca189f
Mirror Occlusion Culling Setting
When turning on OC for mirrors you get flickering of chunks. although the SDK notes this may happen, isn't there a way to fix this?
Unity Terrain grass shaders broken in VRChat
The hidden shaders Unity uses for Unity terrain grass detail patches falls back in VRChat to shaders that are not affected by fog settings and have cutout rendermode, forcing world builders to use the tree mesh part of terrain to render grass patches and that impacts performance a lot. The two hidden shaders in question are "Hidden/TerrainEngine/Details/BillboardWavingDoublePass" and "Hidden/TerrainEngine/Details/WavingDoublePass" causing all the grass in a scene to stick out of the fog. Dropping in this replacement shader that adds alpha transparency doesn't get picked up in VRC and gets reverted to the cutout shader without fog: https://github.com/Nition/UnityTerrainGrass Screenshots from Unity 2017 and VRC 2017 build showing no alpha transparency and fogging in VRC but working fine in Unity
[SDK] "Offline Test" option is broken with multiple clients
Please fix multi-client "Offline Testing" or provide a better way to test networking without a full world upload. The SDK provides two buttons for testing. One is for local testing and the other is for full uploads. Local testing, or "Offline Testing", still requires a network connection and also provides an option for the number of clients. While some things appear to work with only one client, when using more than one client, local testing breaks and behavior is unreliable. Since this is built right into the SDK, people believe that it is correct functionality and think that their world is broken, wasting many hours of debugging and more bad testing. Known issues: -Network IK only sends for master -OnPlayerJoined/OnPlayerLeft triggers do not fire -Sitting in stations force all clients to the same position -Object ownership does not act properly between clients -Sometimes only the master can execute ANY triggers -Some clients do not make it to the same instance -Some clients are kicked to home Previous canny relating to multi-client local testing was closed with the response that using the same account for the same instance is not supported. Users are required to log into different accounts. This is not a solution. The general user does not know they are required to have multiple accounts to test their own worlds properly. Multiple accounts can only enter the same world if the world has been fully uploaded. Some users also have a very slow or limited connection and uploading a full world is impractical. https://vrchat.canny.io/bug-reports/p/multi-client-bugs
VRC_Trigger SecurityException with VRC_AudioBank
■Version: + VRCSDK-2019.12.06.19.26_Public + Unity 20198.4.13f ■Description of the bug: Cannot add Actions in VRC_Trigger when VRC_AudioBank attached in same object. ■Steps to reproduce (how did you encounter the bug?): 1. add some object in empty scene 2. Attach VRC_Trigger and VRC_AudioBank to that object 3. Add OnInteract option to VRC_Trigger 4. If click "+" button under the list, Raise "SecurityException: Unknown type: System.Object" ■Any extra files? (output logs, screenshots): error log paste below: SecurityException: Unknown type: System.Object at VRCSDK2.VRC_Serialization+NetworkSurrogateSelector.GetSurrogate (System.Type type, System.Runtime.Serialization.StreamingContext context, System.Runtime.Serialization.ISurrogateSelector& selector) [0x00022] in <cb6e57278ceb44adb717845689e0dd87>:0 at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.InitSerialize (System.Type objectType, System.Runtime.Serialization.ISurrogateSelector surrogateSelector, System.Runtime.Serialization.StreamingContext context, System.Runtime.Serialization.Formatters.Binary.SerObjectInfoInit serObjectInfoInit, System.Runtime.Serialization.IFormatterConverter converter, System.Runtime.Serialization.SerializationBinder binder) [0x00032] in <e1319b7195c343e79b385cd3aa43f5dc>:0 at System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo.Serialize (System.Type objectType, System.Runtime.Serialization.ISurrogateSelector surrogateSelector, System.Runtime.Serialization.StreamingContext context, System.Runtime.Serialization.Formatters.Binary.SerObjectInfoInit serObjectInfoInit, System.Runtime.Serialization.IFormatterConverter converter, System.Runtime.Serialization.SerializationBinder binder) [0x00006] in <e1319b7195c343e79b385cd3aa43f5dc>:0 at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.WriteArray (System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo objectInfo, System.Runtime.Serialization.Formatters.Binary.NameInfo memberNameInfo, System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo memberObjectInfo) [0x0004d] in <e1319b7195c343e79b385cd3aa43f5dc>:0 at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Write (System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo objectInfo, System.Runtime.Serialization.Formatters.Binary.NameInfo memberNameInfo, System.Runtime.Serialization.Formatters.Binary.NameInfo typeNameInfo) [0x00056] in <e1319b7195c343e79b385cd3aa43f5dc>:0 at System.Runtime.Serialization.Formatters.Binary.ObjectWriter.Serialize (System.Object graph, System.Runtime.Remoting.Messaging.Header inHeaders, System.Runtime.Serialization.Formatters.Binary.__BinaryWriter serWriter, System.Boolean fCheck) [0x001d3] in <e1319b7195c343e79b385cd3aa43f5dc>:0 at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize (System.IO.Stream serializationStream, System.Object graph, System.Runtime.Remoting.Messaging.Header headers, System.Boolean fCheck) [0x0006e] in <e1319b7195c343e79b385cd3aa43f5dc>:0 at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize (System.IO.Stream serializationStream, System.Object graph, System.Runtime.Remoting.Messaging.Header headers) [0x00000] in <e1319b7195c343e79b385cd3aa43f5dc>:0 at System.Runtime.Serialization.Formatters.Binary.BinaryFormatter.Serialize (System.IO.Stream serializationStream, System.Object graph) [0x00000] in <e1319b7195c343e79b385cd3aa43f5dc>:0 at VRCSDK2.VRC_Serialization.ParameterEncoder (System.Object parameters) [0x00034] in <cb6e57278ceb44adb717845689e0dd87>:0 at VRCSDK2.VRC_AudioBank.ProvideEvents () [0x00040] in <cb6e57278ceb44adb717845689e0dd87>:0 at VRCSDK2.VRC_TriggerEditor+<>c__DisplayClass27_0.<RenderTriggerEventsEditor>b__2 (UnityEngine.Rect buttonRect, UnityEditorInternal.ReorderableList list) [0x00143] in G:\Project\Unity\VRCW2018-orbitalbase\Assets\VRCSDK\Dependencies\VRChat\Editor\Components\VRC_TriggerEditor.cs:565 at UnityEditorInternal.ReorderableList+Defaults.DrawFooter (UnityEngine.Rect rect, UnityEditorInternal.ReorderableList list) [0x0012e] in C:\buildslave\unity\build\Editor\Mono\GUI\ReorderableList.cs:115 at UnityEditorInternal.ReorderableList.DoListFooter (UnityEngine.Rect footerRect) [0x0003a] in C:\buildslave\unity\build\Editor\Mono\GUI\ReorderableList.cs:643 at UnityEditorInternal.ReorderableList.DoLayoutList () [0x00085] in C:\buildslave\unity\build\Editor\Mono\GUI\ReorderableList.cs:397 at VRCSDK2.VRC_TriggerEditor.RenderTriggerEventsEditor (UnityEditor.SerializedProperty triggerProperty, System.Int32 idx) [0x000b7] in G:\Project\Unity\VRCW2018-orbitalbase\Assets\VRCSDK\Dependencies\VRChat\Editor\Components\VRC_TriggerEditor.cs:602 at VRCSDK2.VRC_TriggerEditor.RenderTriggers () [0x0014f] in G:\Project\Unity\VRCW2018-orbitalbase\Assets\VRCSDK\Dependencies\VRChat\Editor\Components\VRC_TriggerEditor.cs:223 at VRCSDK2.VRC_TriggerEditor.OnInspectorGUI () [0x002d5] in G:\Project\Unity\VRCW2018-orbitalbase\Assets\VRCSDK\Dependencies\VRChat\Editor\Components\VRC_TriggerEditor.cs:157 at UnityEditor.InspectorWindow.DoOnInspectorGUI (System.Boolean rebuildOptimizedGUIBlock, UnityEditor.Editor editor, System.Boolean wasVisible, UnityEngine.Rect& contentRect) [0x0010b] in C:\buildslave\unity\build\Editor\Mono\Inspector\InspectorWindow.cs:1647 UnityEngine.DebugLogHandler:Internal_LogException(Exception, Object) UnityEngine.DebugLogHandler:LogException(Exception, Object) UnityEngine.Logger:LogException(Exception, Object) UnityEngine.Debug:LogException(Exception) UnityEditor.InspectorWindow:DoOnInspectorGUI(Boolean, Editor, Boolean, Rect&) (at C:\buildslave\unity\build\Editor\Mono\Inspector\InspectorWindow.cs:1654) UnityEditor.InspectorWindow:DrawEditor(Editor, Int32, Boolean, Boolean&, Rect&) (at C:\buildslave\unity\build\Editor\Mono\Inspector\InspectorWindow.cs:1495) UnityEditor.InspectorWindow:DrawEditors(Editor) (at C:\buildslave\unity\build\Editor\Mono\Inspector\InspectorWindow.cs:1330) UnityEditor.InspectorWindow:OnGUI() (at C:\buildslave\unity\build\Editor\Mono\Inspector\InspectorWindow.cs:655) System.Reflection.MonoMethod:InternalInvoke(Object, Object, Exception&) System.Reflection.MonoMethod:Invoke(Object, BindingFlags, Binder, Object, CultureInfo) System.Reflection.MethodBase:Invoke(Object, Object) UnityEditor.HostView:Invoke(String, Object) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:342) UnityEditor.HostView:Invoke(String) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:336) UnityEditor.HostView:InvokeOnGUI(Rect, Rect) (at C:\buildslave\unity\build\Editor\Mono\HostView.cs:302) UnityEditor.DockArea:DrawView(Rect, Rect, Boolean, Boolean, Boolean) (at C:\buildslave\unity\build\Editor\Mono\GUI\DockArea.cs:361) UnityEditor.DockArea:OldOnGUI() (at C:\buildslave\unity\build\Editor\Mono\GUI\DockArea.cs:320) UnityEngine.Experimental.UIElements.IMGUIContainer:DoOnGUI(Event, Matrix4x4, Rect, Boolean) (at C:\buildslave\unity\build\Modules\UIElements\IMGUIContainer.cs:244) UnityEngine.Experimental.UIElements.IMGUIContainer:HandleIMGUIEvent(Event, Matrix4x4, Rect) (at C:\buildslave\unity\build\Modules\UIElements\IMGUIContainer.cs:438) UnityEngine.Experimental.UIElements.IMGUIContainer:HandleIMGUIEvent(Event) (at C:\buildslave\unity\build\Modules\UIElements\IMGUIContainer.cs:421) UnityEngine.Experimental.UIElements.IMGUIContainer:HandleEvent(EventBase) (at C:\buildslave\unity\build\Modules\UIElements\IMGUIContainer.cs:401) UnityEngine.Experimental.UIElements.EventDispatcher:ProcessEvent(EventBase, IPanel) (at C:\buildslave\unity\build\Modules\UIElements\EventDispatcher.cs:511) UnityEngine.Experimental.UIElements.EventDispatcher:Dispatch(EventBase, IPanel, DispatchMode) (at C:\buildslave\unity\build\Modules\UIElements\EventDispatcher.cs:307) UnityEngine.Experimental.UIElements.BaseVisualElementPanel:SendEvent(EventBase, DispatchMode) (at C:\buildslave\unity\build\Modules\UIElements\Panel.cs:176) UnityEngine.Experimental.UIElements.UIElementsUtility:DoDispatch(BaseVisualElementPanel) (at C:\buildslave\unity\build\Modules\UIElements\UIElementsUtility.cs:245) UnityEngine.Experimental.UIElements.UIElementsUtility:ProcessEvent(Int32, IntPtr) (at C:\buildslave\unity\build\Modules\UIElements\UIElementsUtility.cs:68) UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at C:\buildslave\unity\build\Modules\IMGUI\GUIUtility.cs:179)
player audio override broken for late joiners
When someone has been in the trigger for the audio override and leaves it he is still loud for people that join the world later as if still standing inside the trigger until he goes back into the trigger and leaves it again.
Baked Lightmaps on SpeedTrees do not load into VRChat
When lightmapping a SpeedTree, things go well inside of Unity, but then in VRChat the lightmap is all black. If this is intended behavior and can not be fixed, please document it. SpeedTree tech is built into Unity. This is a problem related to grass/terrain too, I assume. But in my case, *I am not using terrain*.
VRC_Midi Note In component multiple selection issue
The trigger object settings are broken when select multiple VRC_Midi Note In components. https://twitter.com/VoxelKei/status/1144270143255535617?s=20
VRC_DataStorage component breaks networked triggers
Observed as of Beta Build 743 Adding a VRC_DataStorage component to a spawned prefab will break networked triggers for that object. Either the receiving client will be unable to process the trigger, or they will be able to process the trigger, but it will be on the wrong instance of the spawned object. The effect is limited only to the object with the VRC_DataStorage attached to it. Objects up or down the spawned hierarchy work as expected. Repro: wrld_cb727742-a84c-4544-a749-4c9b70184e4d https://www.dropbox.com/s/bbe766rpzsgvxh4/DataStorageTest.unitypackage?dl=0 - Launch into the world with 2 or more clients - Using one client, Press each blue button to spawn some instanced data storage objects - Using the other client, attempt to interact with each spawned object. - Observe how interacting will either fail to elicit an effect on the first client, or cause the effect to occur on the wrong object.