mirror of
https://github.com/Ottermandias/Glamourer.git
synced 2026-02-20 14:37:46 +01:00
Make LipDiffuse a Vec4 instead of two values.
This commit is contained in:
parent
630647b544
commit
8a9fa98706
2 changed files with 19 additions and 35 deletions
|
|
@ -4,20 +4,19 @@ namespace Glamourer.GameData;
|
||||||
|
|
||||||
public struct CustomizeParameterData
|
public struct CustomizeParameterData
|
||||||
{
|
{
|
||||||
|
public Vector4 DecalColor;
|
||||||
|
public Vector4 LipDiffuse;
|
||||||
public Vector3 SkinDiffuse;
|
public Vector3 SkinDiffuse;
|
||||||
public Vector3 SkinSpecular;
|
public Vector3 SkinSpecular;
|
||||||
public Vector3 LipDiffuse;
|
|
||||||
public Vector3 HairDiffuse;
|
public Vector3 HairDiffuse;
|
||||||
public Vector3 HairSpecular;
|
public Vector3 HairSpecular;
|
||||||
public Vector3 HairHighlight;
|
public Vector3 HairHighlight;
|
||||||
public Vector3 LeftEye;
|
public Vector3 LeftEye;
|
||||||
public Vector3 RightEye;
|
public Vector3 RightEye;
|
||||||
public Vector3 FeatureColor;
|
public Vector3 FeatureColor;
|
||||||
public Vector4 DecalColor;
|
|
||||||
public float FacePaintUvMultiplier;
|
public float FacePaintUvMultiplier;
|
||||||
public float FacePaintUvOffset;
|
public float FacePaintUvOffset;
|
||||||
public float MuscleTone;
|
public float MuscleTone;
|
||||||
public float LipOpacity;
|
|
||||||
|
|
||||||
public CustomizeParameterValue this[CustomizeParameterFlag flag]
|
public CustomizeParameterValue this[CustomizeParameterFlag flag]
|
||||||
{
|
{
|
||||||
|
|
@ -30,7 +29,6 @@ public struct CustomizeParameterData
|
||||||
CustomizeParameterFlag.MuscleTone => new CustomizeParameterValue(MuscleTone),
|
CustomizeParameterFlag.MuscleTone => new CustomizeParameterValue(MuscleTone),
|
||||||
CustomizeParameterFlag.SkinSpecular => new CustomizeParameterValue(SkinSpecular),
|
CustomizeParameterFlag.SkinSpecular => new CustomizeParameterValue(SkinSpecular),
|
||||||
CustomizeParameterFlag.LipDiffuse => new CustomizeParameterValue(LipDiffuse),
|
CustomizeParameterFlag.LipDiffuse => new CustomizeParameterValue(LipDiffuse),
|
||||||
CustomizeParameterFlag.LipOpacity => new CustomizeParameterValue(LipOpacity),
|
|
||||||
CustomizeParameterFlag.HairDiffuse => new CustomizeParameterValue(HairDiffuse),
|
CustomizeParameterFlag.HairDiffuse => new CustomizeParameterValue(HairDiffuse),
|
||||||
CustomizeParameterFlag.HairSpecular => new CustomizeParameterValue(HairSpecular),
|
CustomizeParameterFlag.HairSpecular => new CustomizeParameterValue(HairSpecular),
|
||||||
CustomizeParameterFlag.HairHighlight => new CustomizeParameterValue(HairHighlight),
|
CustomizeParameterFlag.HairHighlight => new CustomizeParameterValue(HairHighlight),
|
||||||
|
|
@ -54,8 +52,7 @@ public struct CustomizeParameterData
|
||||||
CustomizeParameterFlag.SkinDiffuse => SetIfDifferent(ref SkinDiffuse, value.InternalTriple),
|
CustomizeParameterFlag.SkinDiffuse => SetIfDifferent(ref SkinDiffuse, value.InternalTriple),
|
||||||
CustomizeParameterFlag.MuscleTone => SetIfDifferent(ref MuscleTone, value.Single),
|
CustomizeParameterFlag.MuscleTone => SetIfDifferent(ref MuscleTone, value.Single),
|
||||||
CustomizeParameterFlag.SkinSpecular => SetIfDifferent(ref SkinSpecular, value.InternalTriple),
|
CustomizeParameterFlag.SkinSpecular => SetIfDifferent(ref SkinSpecular, value.InternalTriple),
|
||||||
CustomizeParameterFlag.LipDiffuse => SetIfDifferent(ref LipDiffuse, value.InternalTriple),
|
CustomizeParameterFlag.LipDiffuse => SetIfDifferent(ref LipDiffuse, value.InternalQuadruple),
|
||||||
CustomizeParameterFlag.LipOpacity => SetIfDifferent(ref LipOpacity, value.Single),
|
|
||||||
CustomizeParameterFlag.HairDiffuse => SetIfDifferent(ref HairDiffuse, value.InternalTriple),
|
CustomizeParameterFlag.HairDiffuse => SetIfDifferent(ref HairDiffuse, value.InternalTriple),
|
||||||
CustomizeParameterFlag.HairSpecular => SetIfDifferent(ref HairSpecular, value.InternalTriple),
|
CustomizeParameterFlag.HairSpecular => SetIfDifferent(ref HairSpecular, value.InternalTriple),
|
||||||
CustomizeParameterFlag.HairHighlight => SetIfDifferent(ref HairHighlight, value.InternalTriple),
|
CustomizeParameterFlag.HairHighlight => SetIfDifferent(ref HairHighlight, value.InternalTriple),
|
||||||
|
|
@ -80,14 +77,6 @@ public struct CustomizeParameterData
|
||||||
_ => new CustomizeParameterValue(SkinDiffuse, MuscleTone).XivQuadruple,
|
_ => new CustomizeParameterValue(SkinDiffuse, MuscleTone).XivQuadruple,
|
||||||
};
|
};
|
||||||
|
|
||||||
parameters.LipColor = (flags & (CustomizeParameterFlag.LipDiffuse | CustomizeParameterFlag.LipOpacity)) switch
|
|
||||||
{
|
|
||||||
0 => parameters.LipColor,
|
|
||||||
CustomizeParameterFlag.LipDiffuse => new CustomizeParameterValue(LipDiffuse, parameters.LipColor.W).XivQuadruple,
|
|
||||||
CustomizeParameterFlag.LipOpacity => parameters.LipColor with { W = LipOpacity },
|
|
||||||
_ => new CustomizeParameterValue(LipDiffuse, LipOpacity).XivQuadruple,
|
|
||||||
};
|
|
||||||
|
|
||||||
parameters.LeftColor = (flags & (CustomizeParameterFlag.LeftEye | CustomizeParameterFlag.FacePaintUvMultiplier)) switch
|
parameters.LeftColor = (flags & (CustomizeParameterFlag.LeftEye | CustomizeParameterFlag.FacePaintUvMultiplier)) switch
|
||||||
{
|
{
|
||||||
0 => parameters.LeftColor,
|
0 => parameters.LeftColor,
|
||||||
|
|
@ -112,6 +101,8 @@ public struct CustomizeParameterData
|
||||||
parameters.HairFresnelValue0 = new CustomizeParameterValue(HairSpecular).XivTriple;
|
parameters.HairFresnelValue0 = new CustomizeParameterValue(HairSpecular).XivTriple;
|
||||||
if (flags.HasFlag(CustomizeParameterFlag.HairHighlight))
|
if (flags.HasFlag(CustomizeParameterFlag.HairHighlight))
|
||||||
parameters.MeshColor = new CustomizeParameterValue(HairHighlight).XivTriple;
|
parameters.MeshColor = new CustomizeParameterValue(HairHighlight).XivTriple;
|
||||||
|
if (flags.HasFlag(CustomizeParameterFlag.LipDiffuse))
|
||||||
|
parameters.LipColor = new CustomizeParameterValue(LipDiffuse).XivQuadruple;
|
||||||
if (flags.HasFlag(CustomizeParameterFlag.FeatureColor))
|
if (flags.HasFlag(CustomizeParameterFlag.FeatureColor))
|
||||||
parameters.OptionColor = new CustomizeParameterValue(FeatureColor).XivTriple;
|
parameters.OptionColor = new CustomizeParameterValue(FeatureColor).XivTriple;
|
||||||
}
|
}
|
||||||
|
|
@ -138,10 +129,7 @@ public struct CustomizeParameterData
|
||||||
parameters.SkinFresnelValue0 = new CustomizeParameterValue(SkinSpecular).XivQuadruple;
|
parameters.SkinFresnelValue0 = new CustomizeParameterValue(SkinSpecular).XivQuadruple;
|
||||||
break;
|
break;
|
||||||
case CustomizeParameterFlag.LipDiffuse:
|
case CustomizeParameterFlag.LipDiffuse:
|
||||||
parameters.LipColor = new CustomizeParameterValue(LipDiffuse, parameters.LipColor.W).XivQuadruple;
|
parameters.LipColor = new CustomizeParameterValue(LipDiffuse).XivQuadruple;
|
||||||
break;
|
|
||||||
case CustomizeParameterFlag.LipOpacity:
|
|
||||||
parameters.LipColor.W = LipOpacity;
|
|
||||||
break;
|
break;
|
||||||
case CustomizeParameterFlag.HairDiffuse:
|
case CustomizeParameterFlag.HairDiffuse:
|
||||||
parameters.MainColor = new CustomizeParameterValue(HairDiffuse).XivTriple;
|
parameters.MainColor = new CustomizeParameterValue(HairDiffuse).XivTriple;
|
||||||
|
|
@ -176,10 +164,9 @@ public struct CustomizeParameterData
|
||||||
FacePaintUvOffset = parameter.RightColor.W,
|
FacePaintUvOffset = parameter.RightColor.W,
|
||||||
FacePaintUvMultiplier = parameter.LeftColor.W,
|
FacePaintUvMultiplier = parameter.LeftColor.W,
|
||||||
MuscleTone = parameter.SkinColor.W,
|
MuscleTone = parameter.SkinColor.W,
|
||||||
LipOpacity = parameter.LipColor.W,
|
|
||||||
SkinDiffuse = new CustomizeParameterValue(parameter.SkinColor).InternalTriple,
|
SkinDiffuse = new CustomizeParameterValue(parameter.SkinColor).InternalTriple,
|
||||||
SkinSpecular = new CustomizeParameterValue(parameter.SkinFresnelValue0).InternalTriple,
|
SkinSpecular = new CustomizeParameterValue(parameter.SkinFresnelValue0).InternalTriple,
|
||||||
LipDiffuse = new CustomizeParameterValue(parameter.LipColor).InternalTriple,
|
LipDiffuse = new CustomizeParameterValue(parameter.LipColor).InternalQuadruple,
|
||||||
HairDiffuse = new CustomizeParameterValue(parameter.MainColor).InternalTriple,
|
HairDiffuse = new CustomizeParameterValue(parameter.MainColor).InternalTriple,
|
||||||
HairSpecular = new CustomizeParameterValue(parameter.HairFresnelValue0).InternalTriple,
|
HairSpecular = new CustomizeParameterValue(parameter.HairFresnelValue0).InternalTriple,
|
||||||
HairHighlight = new CustomizeParameterValue(parameter.MeshColor).InternalTriple,
|
HairHighlight = new CustomizeParameterValue(parameter.MeshColor).InternalTriple,
|
||||||
|
|
@ -196,7 +183,6 @@ public struct CustomizeParameterData
|
||||||
CustomizeParameterFlag.MuscleTone => new CustomizeParameterValue(parameter.SkinColor.W),
|
CustomizeParameterFlag.MuscleTone => new CustomizeParameterValue(parameter.SkinColor.W),
|
||||||
CustomizeParameterFlag.SkinSpecular => new CustomizeParameterValue(parameter.SkinFresnelValue0),
|
CustomizeParameterFlag.SkinSpecular => new CustomizeParameterValue(parameter.SkinFresnelValue0),
|
||||||
CustomizeParameterFlag.LipDiffuse => new CustomizeParameterValue(parameter.LipColor),
|
CustomizeParameterFlag.LipDiffuse => new CustomizeParameterValue(parameter.LipColor),
|
||||||
CustomizeParameterFlag.LipOpacity => new CustomizeParameterValue(parameter.LipColor.W),
|
|
||||||
CustomizeParameterFlag.HairDiffuse => new CustomizeParameterValue(parameter.MainColor),
|
CustomizeParameterFlag.HairDiffuse => new CustomizeParameterValue(parameter.MainColor),
|
||||||
CustomizeParameterFlag.HairSpecular => new CustomizeParameterValue(parameter.HairFresnelValue0),
|
CustomizeParameterFlag.HairSpecular => new CustomizeParameterValue(parameter.HairFresnelValue0),
|
||||||
CustomizeParameterFlag.HairHighlight => new CustomizeParameterValue(parameter.MeshColor),
|
CustomizeParameterFlag.HairHighlight => new CustomizeParameterValue(parameter.MeshColor),
|
||||||
|
|
|
||||||
|
|
@ -7,27 +7,26 @@ public enum CustomizeParameterFlag : ushort
|
||||||
MuscleTone = 0x0002,
|
MuscleTone = 0x0002,
|
||||||
SkinSpecular = 0x0004,
|
SkinSpecular = 0x0004,
|
||||||
LipDiffuse = 0x0008,
|
LipDiffuse = 0x0008,
|
||||||
LipOpacity = 0x0010,
|
HairDiffuse = 0x0010,
|
||||||
HairDiffuse = 0x0020,
|
HairSpecular = 0x0020,
|
||||||
HairSpecular = 0x0040,
|
HairHighlight = 0x0040,
|
||||||
HairHighlight = 0x0080,
|
LeftEye = 0x0080,
|
||||||
LeftEye = 0x0100,
|
RightEye = 0x0100,
|
||||||
RightEye = 0x0200,
|
FeatureColor = 0x0200,
|
||||||
FeatureColor = 0x0400,
|
FacePaintUvMultiplier = 0x0400,
|
||||||
FacePaintUvMultiplier = 0x0800,
|
FacePaintUvOffset = 0x0800,
|
||||||
FacePaintUvOffset = 0x1000,
|
DecalColor = 0x1000,
|
||||||
DecalColor = 0x2000,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class CustomizeParameterExtensions
|
public static class CustomizeParameterExtensions
|
||||||
{
|
{
|
||||||
public const CustomizeParameterFlag All = (CustomizeParameterFlag)0x3FFF;
|
public const CustomizeParameterFlag All = (CustomizeParameterFlag)0x1FFF;
|
||||||
|
|
||||||
public const CustomizeParameterFlag RgbTriples = All
|
public const CustomizeParameterFlag RgbTriples = All
|
||||||
& ~(RgbaQuadruples | Percentages | Values);
|
& ~(RgbaQuadruples | Percentages | Values);
|
||||||
|
|
||||||
public const CustomizeParameterFlag RgbaQuadruples = CustomizeParameterFlag.DecalColor;
|
public const CustomizeParameterFlag RgbaQuadruples = CustomizeParameterFlag.DecalColor | CustomizeParameterFlag.LipDiffuse;
|
||||||
public const CustomizeParameterFlag Percentages = CustomizeParameterFlag.MuscleTone | CustomizeParameterFlag.LipOpacity;
|
public const CustomizeParameterFlag Percentages = CustomizeParameterFlag.MuscleTone;
|
||||||
public const CustomizeParameterFlag Values = CustomizeParameterFlag.FacePaintUvOffset | CustomizeParameterFlag.FacePaintUvMultiplier;
|
public const CustomizeParameterFlag Values = CustomizeParameterFlag.FacePaintUvOffset | CustomizeParameterFlag.FacePaintUvMultiplier;
|
||||||
|
|
||||||
public static readonly IReadOnlyList<CustomizeParameterFlag> AllFlags = [.. Enum.GetValues<CustomizeParameterFlag>()];
|
public static readonly IReadOnlyList<CustomizeParameterFlag> AllFlags = [.. Enum.GetValues<CustomizeParameterFlag>()];
|
||||||
|
|
@ -52,7 +51,6 @@ public static class CustomizeParameterExtensions
|
||||||
CustomizeParameterFlag.MuscleTone => "Muscle Tone",
|
CustomizeParameterFlag.MuscleTone => "Muscle Tone",
|
||||||
CustomizeParameterFlag.SkinSpecular => "Skin Shine",
|
CustomizeParameterFlag.SkinSpecular => "Skin Shine",
|
||||||
CustomizeParameterFlag.LipDiffuse => "Lip Color",
|
CustomizeParameterFlag.LipDiffuse => "Lip Color",
|
||||||
CustomizeParameterFlag.LipOpacity => "Lip Opacity",
|
|
||||||
CustomizeParameterFlag.HairDiffuse => "Hair Color",
|
CustomizeParameterFlag.HairDiffuse => "Hair Color",
|
||||||
CustomizeParameterFlag.HairSpecular => "Hair Shine",
|
CustomizeParameterFlag.HairSpecular => "Hair Shine",
|
||||||
CustomizeParameterFlag.HairHighlight => "Hair Highlights",
|
CustomizeParameterFlag.HairHighlight => "Hair Highlights",
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue