private void InitializeMachineFor(Machinist machine, string proxyParam, string smoothingParam, string zeroClip, string oneClip) { var proxyTree = InterpolationTree(proxyParam, zeroClip, oneClip); RegisterBlendTreeAsAsset(_animatorController, proxyTree); var smoothingTree = InterpolationTree(smoothingParam, zeroClip, oneClip); RegisterBlendTreeAsAsset(_animatorController, smoothingTree); var factorTree = new BlendTree { name = "autoBT_Factor_" + proxyParam + "", blendParameter = SharedLayerUtils.HaiGestureComboSmoothingFactor, blendType = BlendTreeType.Simple1D, minThreshold = 0, maxThreshold = 1, useAutomaticThresholds = true, children = new[] { new ChildMotion { motion = proxyTree, timeScale = 1, threshold = 0 }, new ChildMotion { motion = smoothingTree, timeScale = 1, threshold = 1 } }, hideFlags = HideFlags.HideInHierarchy }; RegisterBlendTreeAsAsset(_animatorController, factorTree); machine.NewState("Interpolating", 1, 1) .WithAnimation(factorTree) .WithWriteDefaultsSetTo(_writeDefaultsForAnimatedAnimatorParameterStates) .Drives(new FloatParameterist(SharedLayerUtils.HaiGestureComboSmoothingFactor), DefaultSmoothingFactor); }