"Check For Update" reports false updation
Repro steps: 0. update to latest SDK 1. select Unity menu > VRChat SDK > Check For Update 2. Dialog shows "An update is available" Tested with: VRCSDK-2019.05.16.13.10_Public.unitypackage
SetMaterial action use wrong material named similarly
SetMaterial action use wrong material in some cases. It depends on how materials named. * Reproduce 100% if scene data is so * You can see at wrld_2d141628-bab5-461d-b0ff-7c81e1a0ebb0 * Tested with client 2018.3.2 built636, SDK VRCSDK-2018.10.02.10.29_Public REPRODUCE STEPS: -------------------- 1. Create new world (Create new project, make floor, add VRC_SceneDescriptor, assign Spawns point). 2. Create materials 2-1. Create two materials in diffrent folder. 2-2. Name these equal name. (Ex. "f1/Mat.mat", "f2/Mat.mat") 2-3. Change albedo color as visually identifiable. (Ex. Red to "f1/Mat.mat", Blue to "f2/Mat.mat") 2-4. Create two objects and assign each materials. (This step is for ensuring materials available in DynamicMaterials of VRC_SceneDescriptor. I used spheres in following screenshot.) 3. Setup SetMatrial action 3-1. Create two objects. Name t1 and t2. (I used cubes in screenshots.) 3-2. Setup VRC_Trigger > OnInteract > SetMatrial to self. And use each created material for material parameter of the action 4. Test Expected behaviour: Interaction with t1 changes t1 material to "f1/Mat.mat". And, Interaction with t2 changes t2 material to "f2/Mat.mat". Actual result: t1 and t2 change to identical material. 5. Additional test 5-1. Change material name of that is not appeared actually in privious test. Add characters to the tail of original name. (ex. "Mat111.mat") 5-2. Setup VRC_Trigger again. (This step need because VRC_Trigger doesn't follow material renaming.) 5-3. Test. The result doen't change. This means equal name is not true source of this issue. (If it is not reproduced. Try exchange materials name. It depends on reordering DynamicMaterials when SDK builds world. I couldn't get ordering rule enabling 100% reproduce.) MY ANALYSIS: -------------------- I guess the runtime behavior of Set Material action as follows: 1. Extract parameter string from SetMaterial action. Check it begins with "Assets/". If so, continue. 2. Remove charcters from beginning to last "/" . 3. Iterate DynamicMaterials of VRC_SceneDescriptor from head, and check if its material name (not include path and ".mat" extension) matches head of the string of step 2. If it matches, use that material. I think it should also use folder names section of specified asset path string. And of course, it should compare entire string. SCREENSHOTS AND LOG: -------------------- This is result of additional test. 1. f1/Mat.mat is actually red. 2. f2/Mat111.mat is actually bule. 3. Both SetMaterial use f1/Mat.mat Triggers actually use f1/Mat.mat and f2/Mat111.mat. > 2018.10.03 12:19:54 Log - [VRC_TriggerInternal] 15.12996 t1 via OnInteract executing [SetMaterial (False, 0.000, 0, "t1", Assets/iwsd_vrc/Issues/set-material-to-unexpected/Reproset/f1/Mat.mat, 0)] > 2018.10.03 12:19:55 Log - [VRC_TriggerInternal] 15.6973 t2 via OnInteract executing [SetMaterial (False, 0.000, 0, "t2", Assets/iwsd_vrc/Issues/set-material-to-unexpected/Reproset/f2/Mat111.mat, 0)] (Recently we had software version up. So this screenshots aren't taken with latest software. But I could reproduce with latest. It's same.) WORKAROUND -------------------- Name materials uniquely with long name. Don't use a name which matches the head of another material name. ABSTRACT IN JAPANESE -------------------- 概要 SetMaterial アクションが間違ったマテリアルを使う事がある。起こるかどうかはマテリアルの名前の付け方に依存している。 マテリアル選択のアルゴリズムはおそらく次のようになっている。 1. SetMaterial の文字列を取り出す。先頭が「Assets/」であることを確認する 2. 文字列の先頭から最後の「/」までを捨てる 3. DynamicMaterials を先頭から見ていき、そのアセットの名前（パスと「.mat」は含まれない）が前述文字列の先頭部分に一致したら、それを使用する。 これにより同名のマテリアルが別のフォルダに入っているとどちらか一方しか使う事が出来ない。そうでない方を使っている SetMaterial は間違ったマテリアルを使用することになる。 この現象を起こすのに名前は完全に同じである必要は無く、使われる方のマテリアルの名前と先頭部分でさえあれば良い。
Canvas UI button highlight/hover states not working on desktop mode.
Canvas UI button highlight/hover states do not display correctly in desktop mode, but work fine in VR. This currently makes it very difficult for world creators to make content that benefits from hovering over UI elements to show further information and to hide and optimize away unnecessary information, and provides less visual feedback to users when buttons are hovered over.
Default Sprite Material broken ingame
Any sprite using the default unity sprite material in the 2D sprite renderer will appear broken when it should have transparency. In the screenshot attached, the 2 sprites on the left are using 2 different custom sprite shaders. The one on the right is using the default shader. The last time I uploaded a world with sprites was on Saturday. So something went wrong with vrchat inbetween then and now. I've also tested 2 different sdks with blank projects and the results were the same. SDKs tested on: VRCSDK-2019.06.19.20.14_Public VRCSDK-2019.06.04.14.12_Public Also this only happens to new uploads/updated worlds. I've also linked to the world with all 3 sprites shown in the screenshot if it makes it easier to test: https://vrchat.com/home/launch?worldId=wrld_a4fadea3-4dd0-4cba-a2c0-6c15cd768219&instanceId=62962~private(undefined)~nonce(77a3ff5b-e5ca-40a2-ad98-c6f31dd145ad)
Avatar descriptor can cause you to hear yourself
When you upload an avatar and assign a mesh as "Face mesh" and not select any blendshapes in the dropdowns, then using the avatar ingame you will hear yourself. If you change world when wearing the avatar you don't hear yourself anymore. This avatar ID has the issue: avtr_fdd9bee1-b4eb-4651-ad35-91bad2e3d76d
Update VRC_ObjectSync.TeleportTo to set position instantly instead of lerping to target position
VRC_ObjectSync.TeleportTo currently lerps to the target position which causes undesirable behavior such as triggers in the world being activated when the teleported object passes through them. Please update TeleportTo to instantly set the object's position to the target position on all clients, or add a flag to enable this behavior if you want to keep the existing behavior intact.
No far distance limit is applied to avatar audio sources that have a VRC_SpatialAudioSource with Use AudioSource Volume Curve enabled.
Bug reported by Aetoriz; I've translated from Japanese and done some further investigation on top. To test this, the following test avatars can be used (all audio sources are at the avatar's feet): Audio Source Min/Max distance: 4000/5000; VRC_SpatialAudioSource: Near 0, Far 5000, AudioSourceVolumeCurve ON avtr_6aee5e4d-6332-4236-924f-0eac0c9168ca Audio Source Min/Max distance: 4000/5000; VRC_SpatialAudioSource: Near 0, Far 5000, AudioSourceVolumeCurve OFF avtr_4891cbfa-fd3f-4ef5-9c0c-5610b1e78721 Audio Source Min/Max distance: 0.08/40; VRC_SpatialAudioSource: Near 0, Far 5000, AudioSourceVolumeCurve ON avtr_08846aff-7c9a-4b38-86c4-ec05e00057ef Audio Source Min/Max distance: 0.08/40; VRC_SpatialAudioSource: Near 0, Far 5000, AudioSourceVolumeCurve OFF avtr_f3467a97-a308-4b40-b739-99b3e9ada1e3 These are available on pedestals in world wrld_17b065f0-cded-4169-967c-61539c3b628f . This world has three test PlayerAudioOverride regions: 1. All avatar limits set to 9999 2. Default settings 3. Default settings, but with allow custom curve disabled We see the following results: Avatar 1: Audible at >100m distance with no PlayerAudioOverride, or regions 1 or 2. Audio volume reduced on 3. Avatar 2: Audible in region 1. Very quiet elsewhere. Avatar 3: Quier in all regions. Avatar 4: Audible in region 1. Very quiet elsewhere. 日本語要約 VRC_SpatialAudioSourceにAudioSourceVolumeCurve ONを指定した場合、デフォルト状態、およびPlayerAudioOverrideのAllow Custom Curveが有効の場合、Far値制限が適用されないようです。
Implementing Car sounds into the Audio Volume
I've been having sound complaints on my driving worlds and this is the main problem. The car sounds cannot be lowered on the audio volume because it's using another type of unity standard audio source specifically for cars, best thing I could do for now is just lowering the volume of the audio file itself but sometimes that's a bit too much work. It would be good if it can be implemented into the World Volume, I guess the devs overlooked this because they never expected people to be making driving worlds for VRChat.
[SDK] Changes in VRC_AvatarDescriptor does not mark scene as dirty.
When you edit a parameter on your avatar descriptor, Unity does not mark the scene as dirty. To save your work, you have to edit something else (to dirty the scene) and THEN save it. This is probably because of the use of a `CustomEditor` that does not `EditorSceneManager.MarkSceneDirty` or `EditorUtility.SetDirty` when a value is changed. It's really annoying because if I forget to mark the scene as dirty (ie. change a value in one of Unity's default components), all my changes aren't saved, even when you use the "Save" button because to Unity, there's *nothing* to save, even though there is. --- If you don't know what I mean, open a scene with an avatar, change the eye, press Ctrl+S and reload it. DO NOT CHANGE ANY OTHER VALUE; not even a transform. In fact, you don't even need to press Ctrl+S since Unity doesn't save anything because the scene isn't marked as dirty.
Male/Female setting looks opposite
Version: SDK 2019.04.01.10.09 Description of the bug: Male/Female setting (Default Animation Set in the VRC Avatar Descriptor) seems to be opposite. When I choose "Male", the avatar becomes pigeon-toed, while when I choose "Female" the avatar becomes duck-footed. This behavior looks opposite.