From f4ab86fedcbf604ea73e355ce5a6b5555154623b Mon Sep 17 00:00:00 2001 From: anatawa12 Date: Tue, 13 Aug 2024 10:45:51 +0900 Subject: [PATCH] feat: SetOrInherit mode in MA Mesh Settings for EasySetupOutfit (#981) * feat: SetOrInherit for MA Mesh Settings * chore: use SetOrInherit in EasySetupOutfit * test: fix test data * Delete Editor/CheckBoneMapping.cs --- Editor/CheckBoneMapping.cs.meta | 3 + Editor/EasySetupOutfit.cs | 4 +- Editor/Inspector/MeshSettingsEditor.cs | 4 +- Editor/Localization/en-US.json | 1 + Editor/Localization/ja-JP.json | 1 + Editor/MeshSettingsPass.cs | 54 +- Runtime/ModularAvatarMeshSettings.cs | 4 +- .../BlendshapeSyncIntegrationTest.prefab | 132 ++--- .../MeshSettingsTests/MeshSettingsTests.cs | 4 + .../MeshSettingsTests.prefab | 483 ++++++++++++++++-- 10 files changed, 546 insertions(+), 144 deletions(-) create mode 100644 Editor/CheckBoneMapping.cs.meta diff --git a/Editor/CheckBoneMapping.cs.meta b/Editor/CheckBoneMapping.cs.meta new file mode 100644 index 00000000..8cfe85da --- /dev/null +++ b/Editor/CheckBoneMapping.cs.meta @@ -0,0 +1,3 @@ +fileFormatVersion: 2 +guid: 6445045a83084d77a5f455165ded177d +timeCreated: 1714652822 \ No newline at end of file diff --git a/Editor/EasySetupOutfit.cs b/Editor/EasySetupOutfit.cs index ded1e223..4ff0366d 100644 --- a/Editor/EasySetupOutfit.cs +++ b/Editor/EasySetupOutfit.cs @@ -204,8 +204,8 @@ namespace nadena.dev.modular_avatar.core.editor rootBone = avatarRoot.transform; } - meshSettings.InheritProbeAnchor = ModularAvatarMeshSettings.InheritMode.Set; - meshSettings.InheritBounds = ModularAvatarMeshSettings.InheritMode.Set; + meshSettings.InheritProbeAnchor = ModularAvatarMeshSettings.InheritMode.SetOrInherit; + meshSettings.InheritBounds = ModularAvatarMeshSettings.InheritMode.SetOrInherit; meshSettings.ProbeAnchor = new AvatarObjectReference(); meshSettings.ProbeAnchor.referencePath = RuntimeUtil.RelativePath(avatarRoot, probeAnchor.gameObject); diff --git a/Editor/Inspector/MeshSettingsEditor.cs b/Editor/Inspector/MeshSettingsEditor.cs index 80475a81..cf8c2c06 100644 --- a/Editor/Inspector/MeshSettingsEditor.cs +++ b/Editor/Inspector/MeshSettingsEditor.cs @@ -54,7 +54,7 @@ namespace nadena.dev.modular_avatar.core.editor EditorGUILayout.LabelField(G("mesh_settings.header_probe_anchor"), EditorStyles.boldLabel); EditorGUILayout.PropertyField(_prop_inherit_probe_anchor, G("mesh_settings.inherit_probe_anchor")); - if (_prop_inherit_probe_anchor.enumValueIndex == (int) ModularAvatarMeshSettings.InheritMode.Set) + if (_prop_inherit_probe_anchor.enumValueIndex is (int) ModularAvatarMeshSettings.InheritMode.Set or (int) ModularAvatarMeshSettings.InheritMode.SetOrInherit) { EditorGUILayout.PropertyField(_prop_probe_anchor, G("mesh_settings.probe_anchor")); } @@ -72,7 +72,7 @@ namespace nadena.dev.modular_avatar.core.editor EditorGUILayout.LabelField(G("mesh_settings.header_bounds"), EditorStyles.boldLabel); EditorGUILayout.PropertyField(_prop_inherit_bounds, G("mesh_settings.inherit_bounds")); - if (_prop_inherit_bounds.enumValueIndex == (int) ModularAvatarMeshSettings.InheritMode.Set) + if (_prop_inherit_bounds.enumValueIndex is (int) ModularAvatarMeshSettings.InheritMode.Set or (int) ModularAvatarMeshSettings.InheritMode.SetOrInherit) { EditorGUILayout.PropertyField(_prop_root_bone, G("mesh_settings.root_bone")); EditorGUILayout.PropertyField(_prop_bounds, G("mesh_settings.bounds")); diff --git a/Editor/Localization/en-US.json b/Editor/Localization/en-US.json index c76a47ec..de228ac4 100644 --- a/Editor/Localization/en-US.json +++ b/Editor/Localization/en-US.json @@ -126,6 +126,7 @@ "mesh_settings.inherit_mode.Inherit": "Inherit", "mesh_settings.inherit_mode.Set": "Set", "mesh_settings.inherit_mode.DontSet": "Don't Set (use mesh as-is)", + "mesh_settings.inherit_mode.SetOrInherit": "Set or inherit if set by parent", "pb_blocker.help": "This object will not be affected by PhysBones attached to parents.", "hint.bad_vrcsdk": "Incompatible version of VRCSDK detected.\n\nPlease try upgrading your VRCSDK; if this does not work, check for a newer version of Modular Avatar as well.", "error.stack_trace": "Stack trace (provide this when reporting bugs!)", diff --git a/Editor/Localization/ja-JP.json b/Editor/Localization/ja-JP.json index d3b5ba6d..83be9283 100644 --- a/Editor/Localization/ja-JP.json +++ b/Editor/Localization/ja-JP.json @@ -122,6 +122,7 @@ "mesh_settings.inherit_mode.Inherit": "継承", "mesh_settings.inherit_mode.Set": "設定", "mesh_settings.inherit_mode.DontSet": "設定しない(メッシュ本体の設定のまま)", + "mesh_settings.inherit_mode.SetOrInherit": "親が指定されてる時は継承、または設定", "pb_blocker.help": "このオブジェクトは親のPhysBoneから影響を受けなくなります。", "hint.bad_vrcsdk": "使用中のVRCSDKのバージョンとは互換性がありません。\n\nVRCSDKを更新してみてください。それでもだめでしたら、Modular Avatarにも最新版が出てないかチェックしてください。", "error.stack_trace": "スタックトレース(バグを報告する時は必ず添付してください!)", diff --git a/Editor/MeshSettingsPass.cs b/Editor/MeshSettingsPass.cs index f5573e5d..4382fc07 100644 --- a/Editor/MeshSettingsPass.cs +++ b/Editor/MeshSettingsPass.cs @@ -7,7 +7,7 @@ namespace nadena.dev.modular_avatar.core.editor { internal static bool NotFinal(this ModularAvatarMeshSettings.InheritMode mode) { - return mode == ModularAvatarMeshSettings.InheritMode.Inherit; + return mode is ModularAvatarMeshSettings.InheritMode.Inherit or ModularAvatarMeshSettings.InheritMode.SetOrInherit; } } @@ -37,15 +37,45 @@ namespace nadena.dev.modular_avatar.core.editor public Bounds Bounds; } - private static bool Inherit(ref ModularAvatarMeshSettings.InheritMode mode, - ModularAvatarMeshSettings.InheritMode srcmode) + // current Mode is the mode of current value, and the current value is came from MA Mesh Settings of child GameObject + // the srcMode is the mode of currently processing MA Mesh Settings, which is the parent component of the current value + private static bool ShouldUseSrcValue( + ref ModularAvatarMeshSettings.InheritMode currentMode, + ModularAvatarMeshSettings.InheritMode srcMode) { - if (mode != ModularAvatarMeshSettings.InheritMode.Inherit || - srcmode == ModularAvatarMeshSettings.InheritMode.Inherit) - return false; + switch (currentMode, srcMode) + { + // invalid cases + case (not (ModularAvatarMeshSettings.InheritMode.Set + or ModularAvatarMeshSettings.InheritMode.Inherit + or ModularAvatarMeshSettings.InheritMode.DontSet + or ModularAvatarMeshSettings.InheritMode.SetOrInherit), _): + throw new System.InvalidOperationException($"Logic failure: invalid InheritMode: {currentMode}"); + case (_, not (ModularAvatarMeshSettings.InheritMode.Set + or ModularAvatarMeshSettings.InheritMode.Inherit + or ModularAvatarMeshSettings.InheritMode.DontSet + or ModularAvatarMeshSettings.InheritMode.SetOrInherit)): + throw new System.ArgumentOutOfRangeException(nameof(srcMode), $"Invalid InheritMode: {srcMode}"); - mode = srcmode; - return true; + // If current value is came from Set or DontSet, it should not be changed + case (ModularAvatarMeshSettings.InheritMode.Set, _): + case (ModularAvatarMeshSettings.InheritMode.DontSet, _): + return false; + // If srcMode is Inherit, it should not be changed + case (_, ModularAvatarMeshSettings.InheritMode.Inherit): + return false; + + // If srcMode is DontSet, the value will not be used but mode should be used + case (_, ModularAvatarMeshSettings.InheritMode.DontSet): + currentMode = srcMode; + return true; + + // if SrcMode is Set or SetOrInherit, it should be used. + case (_, ModularAvatarMeshSettings.InheritMode.Set): + case (_, ModularAvatarMeshSettings.InheritMode.SetOrInherit): + currentMode = srcMode; + return true; + } } internal static MergedSettings MergeSettings(Transform avatarRoot, Transform referenceObject) @@ -74,20 +104,20 @@ namespace nadena.dev.modular_avatar.core.editor continue; } - if (Inherit(ref inheritProbeAnchor, settings.InheritProbeAnchor)) + if (ShouldUseSrcValue(ref inheritProbeAnchor, settings.InheritProbeAnchor)) { merged.ProbeAnchor = settings.ProbeAnchor.Get(settings)?.transform; } - if (Inherit(ref inheritBounds, settings.InheritBounds)) + if (ShouldUseSrcValue(ref inheritBounds, settings.InheritBounds)) { merged.RootBone = settings.RootBone.Get(settings)?.transform; merged.Bounds = settings.Bounds; } } while (current != null && (inheritProbeAnchor.NotFinal() || inheritBounds.NotFinal())); - merged.SetAnchor = inheritProbeAnchor == ModularAvatarMeshSettings.InheritMode.Set; - merged.SetBounds = inheritBounds == ModularAvatarMeshSettings.InheritMode.Set; + merged.SetAnchor = inheritProbeAnchor is ModularAvatarMeshSettings.InheritMode.Set or ModularAvatarMeshSettings.InheritMode.SetOrInherit; + merged.SetBounds = inheritBounds is ModularAvatarMeshSettings.InheritMode.Set or ModularAvatarMeshSettings.InheritMode.SetOrInherit; return merged; } diff --git a/Runtime/ModularAvatarMeshSettings.cs b/Runtime/ModularAvatarMeshSettings.cs index 0ef87602..fc9b870d 100644 --- a/Runtime/ModularAvatarMeshSettings.cs +++ b/Runtime/ModularAvatarMeshSettings.cs @@ -15,7 +15,9 @@ namespace nadena.dev.modular_avatar.core { Inherit, Set, - DontSet + DontSet, + // Inherit if there is parent settings, set otherwise + SetOrInherit, } //[Header("Probe anchor configuration")] diff --git a/UnitTests~/BlendshapeSyncTests/BlendshapeSyncIntegrationTest.prefab b/UnitTests~/BlendshapeSyncTests/BlendshapeSyncIntegrationTest.prefab index 97234940..91554878 100644 --- a/UnitTests~/BlendshapeSyncTests/BlendshapeSyncIntegrationTest.prefab +++ b/UnitTests~/BlendshapeSyncTests/BlendshapeSyncIntegrationTest.prefab @@ -171,8 +171,7 @@ MonoBehaviour: isDefault: 1 - isEnabled: 0 type: 5 - animatorController: {fileID: 9100000, guid: 1be58bb091803cb488c7005def284caa, - type: 2} + animatorController: {fileID: 9100000, guid: 1be58bb091803cb488c7005def284caa, type: 2} mask: {fileID: 0} isDefault: 0 specialAnimationLayers: @@ -333,98 +332,79 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 3825275463613500751} m_Modifications: - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_RootOrder value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalScale.x value: 0.1 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalScale.y value: 0.1 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalScale.z value: 0.1 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalPosition.x value: -0.023681391 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalPosition.y value: -1.0559628 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalPosition.z value: 0.6872994 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalRotation.w value: 0.7071067 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalRotation.x value: -0.7071068 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: -3887185075125053422, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -3887185075125053422, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_DirtyAABB value: 0 objectReference: {fileID: 0} - - target: {fileID: -3887185075125053422, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -3887185075125053422, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_AABB.m_Extent.x value: 1 objectReference: {fileID: 0} - - target: {fileID: -3887185075125053422, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -3887185075125053422, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_AABB.m_Extent.y value: 1 objectReference: {fileID: 0} - - target: {fileID: -3887185075125053422, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -3887185075125053422, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_AABB.m_Extent.z value: 1 objectReference: {fileID: 0} - - target: {fileID: 919132149155446097, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: 919132149155446097, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_Name value: BaseMesh objectReference: {fileID: 0} @@ -435,8 +415,7 @@ PrefabInstance: m_SourcePrefab: {fileID: 100100000, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} --- !u!4 &3646968714803193661 stripped Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} m_PrefabInstance: {fileID: 3825275463173128406} m_PrefabAsset: {fileID: 0} --- !u!1001 &3825275463971368607 @@ -447,103 +426,83 @@ PrefabInstance: serializedVersion: 3 m_TransformParent: {fileID: 3825275463613500751} m_Modifications: - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_RootOrder value: 1 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalScale.x value: 0.1 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalScale.y value: 0.1 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalScale.z value: 0.1 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalPosition.x value: -0.023681391 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalPosition.y value: -1.0559628 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalPosition.z value: 0.6872994 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalRotation.w value: 0.7071067 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalRotation.x value: -0.7071068 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalRotation.y value: -0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalRotation.z value: -0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalEulerAnglesHint.x value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalEulerAnglesHint.y value: 0 objectReference: {fileID: 0} - - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: -3887185075125053422, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -3887185075125053422, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_DirtyAABB value: 0 objectReference: {fileID: 0} - - target: {fileID: -3887185075125053422, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -3887185075125053422, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_AABB.m_Extent.x value: 1 objectReference: {fileID: 0} - - target: {fileID: -3887185075125053422, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -3887185075125053422, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_AABB.m_Extent.y value: 1 objectReference: {fileID: 0} - - target: {fileID: -3887185075125053422, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -3887185075125053422, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_AABB.m_Extent.z value: 1 objectReference: {fileID: 0} - - target: {fileID: -3887185075125053422, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: -3887185075125053422, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_BlendShapeWeights.Array.size value: 5 objectReference: {fileID: 0} - - target: {fileID: 919132149155446097, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - target: {fileID: 919132149155446097, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} propertyPath: m_Name value: SyncedMesh objectReference: {fileID: 0} @@ -551,21 +510,18 @@ PrefabInstance: m_RemovedGameObjects: [] m_AddedGameObjects: [] m_AddedComponents: - - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + - targetCorrespondingSourceObject: {fileID: 919132149155446097, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} insertIndex: -1 addedObject: {fileID: 3825275463971368602} m_SourcePrefab: {fileID: 100100000, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} --- !u!4 &3646968713996568948 stripped Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} m_PrefabInstance: {fileID: 3825275463971368607} m_PrefabAsset: {fileID: 0} --- !u!1 &4167925416990528462 stripped GameObject: - m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 14ac2ad30c5d3444ca37f76cea5a7047, - type: 3} + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 14ac2ad30c5d3444ca37f76cea5a7047, type: 3} m_PrefabInstance: {fileID: 3825275463971368607} m_PrefabAsset: {fileID: 0} --- !u!114 &3825275463971368602 diff --git a/UnitTests~/MeshSettingsTests/MeshSettingsTests.cs b/UnitTests~/MeshSettingsTests/MeshSettingsTests.cs index ed92dd87..9c28ff5f 100644 --- a/UnitTests~/MeshSettingsTests/MeshSettingsTests.cs +++ b/UnitTests~/MeshSettingsTests/MeshSettingsTests.cs @@ -21,11 +21,13 @@ namespace modular_avatar_tests var obj2 = prefab.transform.Find("ProbeTargetRenderers/MeshRenderer").GetComponent(); var obj3 = prefab.transform.Find("ProbeTargetRenderers/ParticleSystemRenderer").GetComponent(); var obj4 = prefab.transform.Find("ProbeTargetRenderers/TrailRenderer").GetComponent(); + var obj5 = prefab.transform.Find("ProbeTargetRenderers/SetOrInherit").GetComponent(); Assert.AreEqual(target, obj1.probeAnchor); Assert.AreEqual(target, obj2.probeAnchor); Assert.AreEqual(target, obj3.probeAnchor); Assert.AreEqual(target, obj4.probeAnchor); + Assert.AreEqual(target, obj5.probeAnchor); } [Test] @@ -37,9 +39,11 @@ namespace modular_avatar_tests var noninherit = prefab.transform.Find("ProbeTargetRenderers/NonInherited").GetComponent(); var overrideset = prefab.transform.Find("ProbeTargetRenderers/OverrideSet").GetComponent(); + var setOrInherit = prefab.transform.Find("ProbeTargetRenderers SetOrInherit No Parent").GetComponent(); Assert.AreEqual(noninherit.transform.Find("Target"), noninherit.probeAnchor); Assert.AreEqual(overrideset.transform.Find("Target"), overrideset.probeAnchor); + Assert.AreEqual(setOrInherit.transform.Find("Target"), setOrInherit.probeAnchor); } [Test] diff --git a/UnitTests~/MeshSettingsTests/MeshSettingsTests.prefab b/UnitTests~/MeshSettingsTests/MeshSettingsTests.prefab index 19b4b390..8899e637 100644 --- a/UnitTests~/MeshSettingsTests/MeshSettingsTests.prefab +++ b/UnitTests~/MeshSettingsTests/MeshSettingsTests.prefab @@ -24,9 +24,11 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 680825651427616331} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 2151010201421233996} - {fileID: 7708823067105146344} @@ -34,8 +36,8 @@ Transform: - {fileID: 3582219504831888926} - {fileID: 8922954295583054356} - {fileID: 4234831726961402887} + - {fileID: 218161090998969236} m_Father: {fileID: 2813872215014323517} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &335967967441451257 MonoBehaviour: @@ -52,9 +54,110 @@ MonoBehaviour: InheritProbeAnchor: 1 ProbeAnchor: referencePath: ProbeTarget + targetObject: {fileID: 0} InheritBounds: 0 RootBone: referencePath: + targetObject: {fileID: 0} + Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 1, y: 1, z: 1} +--- !u!1 &912710481317844972 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 218161090998969236} + - component: {fileID: 7275034187586576585} + - component: {fileID: 4924090974651202362} + m_Layer: 0 + m_Name: SetOrInherit + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &218161090998969236 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 912710481317844972} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1469372458508957866} + m_Father: {fileID: 5397716290800633055} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &7275034187586576585 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 912710481317844972} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &4924090974651202362 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 912710481317844972} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 560fdafd46c74b2db6422fdf0e7f2363, type: 3} + m_Name: + m_EditorClassIdentifier: + InheritProbeAnchor: 3 + ProbeAnchor: + referencePath: ProbeTargetRenderers/SetOrInherit/Target + targetObject: {fileID: 6701595333468604403} + InheritBounds: 0 + RootBone: + referencePath: + targetObject: {fileID: 0} Bounds: m_Center: {x: 0, y: 0, z: 0} m_Extent: {x: 1, y: 1, z: 1} @@ -81,12 +184,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 935411094479274245} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 8922954295583054356} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1110437597349189514 GameObject: @@ -111,12 +215,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1110437597349189514} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2306861396738510558} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2395813488222310007 GameObject: @@ -142,12 +247,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2395813488222310007} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 5397716290800633055} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!23 &8168244675843905732 MeshRenderer: @@ -160,10 +266,12 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -188,6 +296,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!1 &2871342873229566282 GameObject: m_ObjectHideFlags: 0 @@ -213,13 +322,14 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2871342873229566282} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 8008288380682626085} m_Father: {fileID: 9198237797126898215} - m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &2589302178758902106 MonoBehaviour: @@ -236,9 +346,11 @@ MonoBehaviour: InheritProbeAnchor: 0 ProbeAnchor: referencePath: + targetObject: {fileID: 0} InheritBounds: 1 RootBone: referencePath: ProbeTarget + targetObject: {fileID: 0} Bounds: m_Center: {x: 8, y: 8, z: 8} m_Extent: {x: 9, y: 9, z: 9} @@ -253,10 +365,12 @@ SkinnedMeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -292,7 +406,106 @@ SkinnedMeshRenderer: m_AABB: m_Center: {x: 0, y: 0, z: 0} m_Extent: {x: 0, y: 0, z: 0} - m_DirtyAABB: 1 + m_DirtyAABB: 0 +--- !u!1 &3451534501104026156 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7136729454850893433} + - component: {fileID: 1373029475667891623} + - component: {fileID: 2765634224249339063} + m_Layer: 0 + m_Name: ProbeTargetRenderers SetOrInherit No Parent + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7136729454850893433 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3451534501104026156} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 6058217655031901229} + m_Father: {fileID: 2813872215014323517} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1373029475667891623 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3451534501104026156} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!114 &2765634224249339063 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3451534501104026156} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 560fdafd46c74b2db6422fdf0e7f2363, type: 3} + m_Name: + m_EditorClassIdentifier: + InheritProbeAnchor: 3 + ProbeAnchor: + referencePath: ProbeTargetRenderers/SetOrInherit/Target + targetObject: {fileID: 8584427574176095819} + InheritBounds: 0 + RootBone: + referencePath: + targetObject: {fileID: 0} + Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 1, y: 1, z: 1} --- !u!1 &3657214856810207961 GameObject: m_ObjectHideFlags: 0 @@ -319,15 +532,17 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3657214856810207961} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1865266364885290703} - {fileID: 5397716290800633055} + - {fileID: 7136729454850893433} - {fileID: 9198237797126898215} m_Father: {fileID: 0} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &317758630754936805 MonoBehaviour: @@ -598,7 +813,7 @@ MonoBehaviour: fallbackStatus: 0 --- !u!95 &7103399505028166247 Animator: - serializedVersion: 3 + serializedVersion: 5 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -611,10 +826,12 @@ Animator: m_UpdateMode: 0 m_ApplyRootMotion: 0 m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 m_WarningMessage: m_HasTransformHierarchy: 1 m_AllowConstantClipSamplingOptimization: 1 - m_KeepAnimatorControllerStateOnDisable: 0 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 --- !u!1 &3968597137123995335 GameObject: m_ObjectHideFlags: 0 @@ -640,13 +857,14 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3968597137123995335} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 5019135646683737746} m_Father: {fileID: 9198237797126898215} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &9171463375283835425 MonoBehaviour: @@ -663,9 +881,11 @@ MonoBehaviour: InheritProbeAnchor: 0 ProbeAnchor: referencePath: + targetObject: {fileID: 0} InheritBounds: 2 RootBone: referencePath: ProbeTarget + targetObject: {fileID: 0} Bounds: m_Center: {x: 0, y: 0, z: 0} m_Extent: {x: 1, y: 1, z: 1} @@ -680,10 +900,12 @@ SkinnedMeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -743,12 +965,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6236283415756824863} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2813872215014323517} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &6389017230970607628 GameObject: @@ -773,12 +996,44 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 6389017230970607628} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 2671010323382710830} - m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &6701595333468604403 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1469372458508957866} + m_Layer: 0 + m_Name: Target + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1469372458508957866 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6701595333468604403} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 218161090998969236} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &7015511926769845160 GameObject: @@ -804,15 +1059,16 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7015511926769845160} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 4332104211298917797} - {fileID: 2671010323382710830} - {fileID: 2306861396738510558} m_Father: {fileID: 2813872215014323517} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!114 &5213165685920700274 MonoBehaviour: @@ -829,9 +1085,11 @@ MonoBehaviour: InheritProbeAnchor: 0 ProbeAnchor: referencePath: + targetObject: {fileID: 0} InheritBounds: 1 RootBone: referencePath: ProbeTarget + targetObject: {fileID: 0} Bounds: m_Center: {x: 1, y: 2, z: 3} m_Extent: {x: 4, y: 5, z: 6} @@ -859,16 +1117,17 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7136371616812247070} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 5397716290800633055} - m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!96 &485299778999654253 TrailRenderer: - serializedVersion: 2 + serializedVersion: 3 m_ObjectHideFlags: 0 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -878,10 +1137,12 @@ TrailRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 0 m_LightProbeUsage: 0 m_ReflectionProbeUsage: 0 m_RayTracingMode: 0 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -907,6 +1168,7 @@ TrailRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_Time: 5 + m_PreviewTimeScale: 1 m_Parameters: serializedVersion: 3 widthMultiplier: 1 @@ -952,17 +1214,21 @@ TrailRenderer: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 numCornerVertices: 0 numCapVertices: 0 alignment: 0 textureMode: 0 + textureScale: {x: 1, y: 1} shadowBias: 0.5 generateLightingData: 0 m_MinVertexDistance: 0.1 + m_MaskInteraction: 0 m_Autodestruct: 0 m_Emitting: 1 + m_ApplyActiveColorSpace: 0 --- !u!1 &7694387925439316296 GameObject: m_ObjectHideFlags: 0 @@ -987,12 +1253,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 7694387925439316296} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 9198237797126898215} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!137 &3551356292515820315 SkinnedMeshRenderer: @@ -1005,10 +1272,12 @@ SkinnedMeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1044,7 +1313,7 @@ SkinnedMeshRenderer: m_AABB: m_Center: {x: 0, y: 0, z: 0} m_Extent: {x: 0, y: 0, z: 0} - m_DirtyAABB: 1 + m_DirtyAABB: 0 --- !u!1 &8118624344453541351 GameObject: m_ObjectHideFlags: 0 @@ -1070,13 +1339,14 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8118624344453541351} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 7820260671288448613} m_Father: {fileID: 5397716290800633055} - m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!23 &5109966626089099389 MeshRenderer: @@ -1089,10 +1359,12 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1117,6 +1389,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!114 &4914466322604787005 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1132,9 +1405,11 @@ MonoBehaviour: InheritProbeAnchor: 2 ProbeAnchor: referencePath: + targetObject: {fileID: 0} InheritBounds: 0 RootBone: referencePath: + targetObject: {fileID: 0} Bounds: m_Center: {x: 0, y: 0, z: 0} m_Extent: {x: 1, y: 1, z: 1} @@ -1162,12 +1437,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8298941597190323301} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 5397716290800633055} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!137 &3778443065066376481 SkinnedMeshRenderer: @@ -1180,10 +1456,12 @@ SkinnedMeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 0 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1219,7 +1497,7 @@ SkinnedMeshRenderer: m_AABB: m_Center: {x: 0, y: 0, z: 0} m_Extent: {x: 0, y: 0, z: 0} - m_DirtyAABB: 1 + m_DirtyAABB: 0 --- !u!1 &8312581682139214105 GameObject: m_ObjectHideFlags: 0 @@ -1243,12 +1521,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8312581682139214105} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 4234831726961402887} - m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &8524827212543336267 GameObject: @@ -1275,13 +1554,14 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 8524827212543336267} + serializedVersion: 2 m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: - {fileID: 1691276452827846806} m_Father: {fileID: 5397716290800633055} - m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!23 &5041197310081425676 MeshRenderer: @@ -1294,10 +1574,12 @@ MeshRenderer: m_CastShadows: 1 m_ReceiveShadows: 1 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 m_RayTracingMode: 2 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -1322,6 +1604,7 @@ MeshRenderer: m_SortingLayerID: 0 m_SortingLayer: 0 m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} --- !u!114 &7885810423339069945 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1337,12 +1620,45 @@ MonoBehaviour: InheritProbeAnchor: 1 ProbeAnchor: referencePath: ProbeTargetRenderers/OverrideSet/Target + targetObject: {fileID: 0} InheritBounds: 0 RootBone: referencePath: + targetObject: {fileID: 0} Bounds: m_Center: {x: 0, y: 0, z: 0} m_Extent: {x: 1, y: 1, z: 1} +--- !u!1 &8584427574176095819 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6058217655031901229} + m_Layer: 0 + m_Name: Target + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6058217655031901229 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8584427574176095819} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 7136729454850893433} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &9152779281672452689 GameObject: m_ObjectHideFlags: 0 @@ -1368,12 +1684,13 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 9152779281672452689} + serializedVersion: 2 m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 m_Children: [] m_Father: {fileID: 5397716290800633055} - m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!198 &5285398020390003800 ParticleSystem: @@ -1382,19 +1699,19 @@ ParticleSystem: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 9152779281672452689} - serializedVersion: 6 + serializedVersion: 8 lengthInSec: 5 simulationSpeed: 1 stopAction: 0 cullingMode: 0 ringBufferMode: 0 ringBufferLoopRange: {x: 0, y: 1} + emitterVelocityMode: 0 looping: 1 prewarm: 0 playOnAwake: 1 useUnscaledTime: 0 autoRandomSeed: 1 - useRigidbodyForVelocity: 1 startDelay: serializedVersion: 2 minMaxState: 0 @@ -1593,6 +1910,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 minGradient: @@ -1622,6 +1940,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 startSize: @@ -1943,7 +2262,9 @@ ParticleSystem: m_PostInfinity: 2 m_RotationOrder: 4 randomizeRotationDirection: 0 + gravitySource: 0 maxNumParticles: 1000 + customEmitterVelocity: {x: 0, y: 0, z: 0} size3D: 0 rotation3D: 0 gravityModifier: @@ -2671,6 +2992,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 minGradient: @@ -2700,6 +3022,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 UVModule: @@ -3468,6 +3791,62 @@ ParticleSystem: m_PreInfinity: 2 m_PostInfinity: 2 m_RotationOrder: 4 + LifetimeByEmitterSpeedModule: + enabled: 0 + m_Curve: + serializedVersion: 2 + minMaxState: 1 + scalar: 1 + minScalar: 1 + maxCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: -0.8 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0.2 + inSlope: -0.8 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + minCurve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Range: {x: 0, y: 1} ForceModule: enabled: 0 x: @@ -4864,6 +5243,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 minGradient: @@ -4893,24 +5273,26 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 range: {x: 0, y: 1} CollisionModule: enabled: 0 - serializedVersion: 3 + serializedVersion: 4 type: 0 collisionMode: 0 colliderForce: 0 multiplyColliderForceByParticleSize: 0 multiplyColliderForceByParticleSpeed: 0 multiplyColliderForceByCollisionAngle: 1 - plane0: {fileID: 0} - plane1: {fileID: 0} - plane2: {fileID: 0} - plane3: {fileID: 0} - plane4: {fileID: 0} - plane5: {fileID: 0} + m_Planes: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} m_Dampen: serializedVersion: 2 minMaxState: 0 @@ -5084,17 +5466,20 @@ ParticleSystem: interiorCollisions: 0 TriggerModule: enabled: 0 - collisionShape0: {fileID: 0} - collisionShape1: {fileID: 0} - collisionShape2: {fileID: 0} - collisionShape3: {fileID: 0} - collisionShape4: {fileID: 0} - collisionShape5: {fileID: 0} + serializedVersion: 2 inside: 1 outside: 0 enter: 0 exit: 0 + colliderQueryMode: 0 radiusScale: 1 + primitives: + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} + - {fileID: 0} SubModule: serializedVersion: 2 enabled: 0 @@ -5278,6 +5663,7 @@ ParticleSystem: m_RotationOrder: 4 minVertexDistance: 0.2 textureMode: 0 + textureScale: {x: 1, y: 1} ribbonCount: 1 shadowBias: 0.5 worldSpace: 0 @@ -5320,6 +5706,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 minGradient: @@ -5349,6 +5736,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 widthOverTrail: @@ -5436,6 +5824,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 minGradient: @@ -5465,6 +5854,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 CustomDataModule: @@ -5503,6 +5893,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 minGradient: @@ -5532,6 +5923,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 colorLabel0: Color @@ -5785,6 +6177,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 minGradient: @@ -5814,6 +6207,7 @@ ParticleSystem: atime6: 0 atime7: 0 m_Mode: 0 + m_ColorSpace: -1 m_NumColorKeys: 2 m_NumAlphaKeys: 2 colorLabel1: Color @@ -6045,10 +6439,12 @@ ParticleSystemRenderer: m_CastShadows: 0 m_ReceiveShadows: 0 m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 m_MotionVectors: 1 m_LightProbeUsage: 0 m_ReflectionProbeUsage: 0 m_RayTracingMode: 0 + m_RayTraceProcedural: 0 m_RenderingLayerMask: 1 m_RendererPriority: 0 m_Materials: @@ -6074,6 +6470,7 @@ ParticleSystemRenderer: m_SortingLayer: 0 m_SortingOrder: 0 m_RenderMode: 0 + m_MeshDistribution: 0 m_SortMode: 0 m_MinParticleSize: 0 m_MaxParticleSize: 0.5 @@ -6086,13 +6483,21 @@ ParticleSystemRenderer: m_RenderAlignment: 0 m_Pivot: {x: 0, y: 0, z: 0} m_Flip: {x: 0, y: 0, z: 0} - m_UseCustomVertexStreams: 0 m_EnableGPUInstancing: 1 m_ApplyActiveColorSpace: 1 m_AllowRoll: 1 + m_FreeformStretching: 0 + m_RotateWithStretchDirection: 1 + m_UseCustomVertexStreams: 0 m_VertexStreams: 00010304 + m_UseCustomTrailVertexStreams: 0 + m_TrailVertexStreams: 00010304 m_Mesh: {fileID: 0} m_Mesh1: {fileID: 0} m_Mesh2: {fileID: 0} m_Mesh3: {fileID: 0} + m_MeshWeighting: 1 + m_MeshWeighting1: 1 + m_MeshWeighting2: 1 + m_MeshWeighting3: 1 m_MaskInteraction: 0