diff --git a/Editor/ReactiveObjects/AnimationGeneration/ReactiveObjectPass.cs b/Editor/ReactiveObjects/AnimationGeneration/ReactiveObjectPass.cs index bf89e453..2bbf7cc7 100644 --- a/Editor/ReactiveObjects/AnimationGeneration/ReactiveObjectPass.cs +++ b/Editor/ReactiveObjects/AnimationGeneration/ReactiveObjectPass.cs @@ -75,8 +75,10 @@ namespace nadena.dev.modular_avatar.core.editor { if (condition.IsConstant) continue; - if (!initialValues.ContainsKey(condition.Parameter) && condition.InitialValue > -999f) + if (!initialValues.TryGetValue(condition.Parameter, out var curVal) || curVal < -999f) + { initialValues[condition.Parameter] = condition.InitialValue; + } } } diff --git a/Editor/ReactiveObjects/ParameterAssignerPass.cs b/Editor/ReactiveObjects/ParameterAssignerPass.cs index d86bdda9..1801020e 100644 --- a/Editor/ReactiveObjects/ParameterAssignerPass.cs +++ b/Editor/ReactiveObjects/ParameterAssignerPass.cs @@ -93,8 +93,8 @@ namespace nadena.dev.modular_avatar.core.editor if (list.Count == 1) // If we have only a single entry, it's probably an on-off toggle, so we'll implicitly let 0 - // be the 'unselected' default value - defaultValue = 1; + // be the 'unselected' default value (if this is not default) + defaultValue = list[0].isDefault ? 1 : 0; } HashSet usedValues = new(); @@ -115,9 +115,9 @@ namespace nadena.dev.modular_avatar.core.editor { if (mami.automaticValue) { - if (mami.isDefault) + if (list.Count == 1) { - mami.Control.value = defaultValue; + mami.Control.value = 1; } else {