Report a Bug
Please check out the following rules and use the provided template when posting a bug report! Off-topic posts will be deleted.
SetMaterial action use wrong material named similarly
under review
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. 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 は間違ったマテリアルを使用することになる。 この現象を起こすのに名前は完全に同じである必要は無く、使われる方のマテリアルの名前と先頭部分でさえあれば良い。
No far distance limit is applied to avatar audio sources that have a VRC_SpatialAudioSource with Use AudioSource Volume Curve enabled.
under review
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値制限が適用されないようです。
Load More