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.
This commit is contained in:
Haï~
2023-09-03 15:01:02 +02:00
parent 27399ae25b
commit b1fbb5f4d8
2 changed files with 20 additions and 12 deletions
+3 -3
View File
@@ -495,17 +495,17 @@ namespace AnimatorAsCode.V0
{ {
public AvatarMask LeftHandAvatarMask() public AvatarMask LeftHandAvatarMask()
{ {
return AssetDatabase.LoadAssetAtPath<AvatarMask>("Assets/VRCSDK/Examples3/Animation/Masks/vrc_Hand Left.mask"); return AssetDatabase.LoadAssetAtPath<AvatarMask>("Packages/com.vrchat.avatars/Samples/AV3 Demo Assets/Animation/Masks/vrc_Hand Left.mask");
} }
public AvatarMask RightHandAvatarMask() public AvatarMask RightHandAvatarMask()
{ {
return AssetDatabase.LoadAssetAtPath<AvatarMask>("Assets/VRCSDK/Examples3/Animation/Masks/vrc_Hand Right.mask"); return AssetDatabase.LoadAssetAtPath<AvatarMask>("Packages/com.vrchat.avatars/Samples/AV3 Demo Assets/Animation/Masks/vrc_Hand Right.mask");
} }
public AnimationClip ProxyForGesture(AacAv3.Av3Gesture gesture, bool masculine) public AnimationClip ProxyForGesture(AacAv3.Av3Gesture gesture, bool masculine)
{ {
return AssetDatabase.LoadAssetAtPath<AnimationClip>("Assets/VRCSDK/Examples3/Animation/ProxyAnim/" + ResolveProxyFilename(gesture, masculine)); return AssetDatabase.LoadAssetAtPath<AnimationClip>("Packages/com.vrchat.avatars/Samples/AV3 Demo Assets/Animation/ProxyAnim/" + ResolveProxyFilename(gesture, masculine));
} }
private static string ResolveProxyFilename(AacAv3.Av3Gesture gesture, bool masculine) private static string ResolveProxyFilename(AacAv3.Av3Gesture gesture, bool masculine)
+17 -9
View File
@@ -226,6 +226,12 @@ namespace AnimatorAsCode.V0
return new AacFlSettingCurveColor(Clip, bindings); 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) public EditorCurveBinding BindingFromComponent(Component anyComponent, string propertyName)
{ {
return Internal_BindingFromComponent(anyComponent, propertyName); return Internal_BindingFromComponent(anyComponent, propertyName);
@@ -304,21 +310,23 @@ namespace AnimatorAsCode.V0
{ {
private readonly AnimationClip _clip; private readonly AnimationClip _clip;
private readonly EditorCurveBinding[] _bindings; 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; _clip = clip;
_bindings = bindings; _bindings = bindings;
_hdr = hdr;
} }
public void WithOneFrame(Color desiredValue) public void WithOneFrame(Color desiredValue)
{ {
foreach (var binding in _bindings) foreach (var binding in _bindings)
{ {
AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, "r"), AacV0.OneFrame(desiredValue.r)); AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, _hdr ? "x" : "r"), AacV0.OneFrame(desiredValue.r));
AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, "g"), AacV0.OneFrame(desiredValue.g)); AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, _hdr ? "y" : "g"), AacV0.OneFrame(desiredValue.g));
AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, "b"), AacV0.OneFrame(desiredValue.b)); AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, _hdr ? "z" : "b"), AacV0.OneFrame(desiredValue.b));
AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, "a"), AacV0.OneFrame(desiredValue.a)); 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) foreach (var binding in _bindings)
{ {
AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, "r"), new AnimationCurve(mutatedKeyframesR.ToArray())); AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, _hdr ? "x" : "r"), new AnimationCurve(mutatedKeyframesR.ToArray()));
AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, "g"), new AnimationCurve(mutatedKeyframesG.ToArray())); AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, _hdr ? "y" : "g"), new AnimationCurve(mutatedKeyframesG.ToArray()));
AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, "b"), new AnimationCurve(mutatedKeyframesB.ToArray())); AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, _hdr ? "z" : "b"), new AnimationCurve(mutatedKeyframesB.ToArray()));
AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, "a"), new AnimationCurve(mutatedKeyframesA.ToArray())); AnimationUtility.SetEditorCurve(_clip, AacV0.ToSubBinding(binding, _hdr ? "w" : "a"), new AnimationCurve(mutatedKeyframesA.ToArray()));
} }
} }
} }