From b1fbb5f4d833042805887f9128ebec291427c07c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ha=C3=AF=7E?= Date: Sun, 3 Sep 2023 14:10:02 +0200 Subject: [PATCH] Add HDR color and update asset lookup: - Add support for HDR color animation. - Update asset lookup to look for proxies and masks in the Packages folder. --- Framework/Editor/V0/Aac.cs | 6 +++--- Framework/Editor/V0/AacFlAnimations.cs | 26 +++++++++++++++++--------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/Framework/Editor/V0/Aac.cs b/Framework/Editor/V0/Aac.cs index 6875034..eccbf7c 100644 --- a/Framework/Editor/V0/Aac.cs +++ b/Framework/Editor/V0/Aac.cs @@ -495,17 +495,17 @@ namespace AnimatorAsCode.V0 { public AvatarMask LeftHandAvatarMask() { - return AssetDatabase.LoadAssetAtPath("Assets/VRCSDK/Examples3/Animation/Masks/vrc_Hand Left.mask"); + return AssetDatabase.LoadAssetAtPath("Packages/com.vrchat.avatars/Samples/AV3 Demo Assets/Animation/Masks/vrc_Hand Left.mask"); } public AvatarMask RightHandAvatarMask() { - return AssetDatabase.LoadAssetAtPath("Assets/VRCSDK/Examples3/Animation/Masks/vrc_Hand Right.mask"); + return AssetDatabase.LoadAssetAtPath("Packages/com.vrchat.avatars/Samples/AV3 Demo Assets/Animation/Masks/vrc_Hand Right.mask"); } public AnimationClip ProxyForGesture(AacAv3.Av3Gesture gesture, bool masculine) { - return AssetDatabase.LoadAssetAtPath("Assets/VRCSDK/Examples3/Animation/ProxyAnim/" + ResolveProxyFilename(gesture, masculine)); + return AssetDatabase.LoadAssetAtPath("Packages/com.vrchat.avatars/Samples/AV3 Demo Assets/Animation/ProxyAnim/" + ResolveProxyFilename(gesture, masculine)); } private static string ResolveProxyFilename(AacAv3.Av3Gesture gesture, bool masculine) diff --git a/Framework/Editor/V0/AacFlAnimations.cs b/Framework/Editor/V0/AacFlAnimations.cs index d6113e2..7936585 100644 --- a/Framework/Editor/V0/AacFlAnimations.cs +++ b/Framework/Editor/V0/AacFlAnimations.cs @@ -226,6 +226,12 @@ namespace AnimatorAsCode.V0 return new AacFlSettingCurveColor(Clip, bindings); } + public AacFlSettingCurveColor AnimatesHDRColor(Component anyComponent, string property) + { + var binding = Internal_BindingFromComponent(anyComponent, property); + return new AacFlSettingCurveColor(Clip, new[] {binding}, true); + } + public EditorCurveBinding BindingFromComponent(Component anyComponent, string propertyName) { return Internal_BindingFromComponent(anyComponent, propertyName); @@ -304,21 +310,23 @@ namespace AnimatorAsCode.V0 { private readonly AnimationClip _clip; private readonly EditorCurveBinding[] _bindings; + private readonly bool _hdr; - public AacFlSettingCurveColor(AnimationClip clip, EditorCurveBinding[] bindings) + public AacFlSettingCurveColor(AnimationClip clip, EditorCurveBinding[] bindings, bool hdr = false) { _clip = clip; _bindings = bindings; + _hdr = hdr; } public void WithOneFrame(Color desiredValue) { foreach (var binding in _bindings) { - AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, "r"), AacV0.OneFrame(desiredValue.r)); - AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, "g"), AacV0.OneFrame(desiredValue.g)); - AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, "b"), AacV0.OneFrame(desiredValue.b)); - AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, "a"), AacV0.OneFrame(desiredValue.a)); + AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, _hdr ? "x" : "r"), AacV0.OneFrame(desiredValue.r)); + AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, _hdr ? "y" : "g"), AacV0.OneFrame(desiredValue.g)); + AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, _hdr ? "z" : "b"), AacV0.OneFrame(desiredValue.b)); + AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, _hdr ? "w" : "a"), AacV0.OneFrame(desiredValue.a)); } } @@ -333,10 +341,10 @@ namespace AnimatorAsCode.V0 foreach (var binding in _bindings) { - AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, "r"), new AnimationCurve(mutatedKeyframesR.ToArray())); - AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, "g"), new AnimationCurve(mutatedKeyframesG.ToArray())); - AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, "b"), new AnimationCurve(mutatedKeyframesB.ToArray())); - AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, "a"), new AnimationCurve(mutatedKeyframesA.ToArray())); + AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, _hdr ? "x" : "r"), new AnimationCurve(mutatedKeyframesR.ToArray())); + AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, _hdr ? "y" : "g"), new AnimationCurve(mutatedKeyframesG.ToArray())); + AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, _hdr ? "z" : "b"), new AnimationCurve(mutatedKeyframesB.ToArray())); + AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, _hdr ? "w" : "a"), new AnimationCurve(mutatedKeyframesA.ToArray())); } } }