feat: polish game HUD scoring and results

This commit is contained in:
2026-05-29 00:32:21 +09:00
parent c4330aa544
commit b46ccddbdb
14 changed files with 768 additions and 646 deletions
@@ -98,8 +98,9 @@ namespace VRBeats
TrimExpiredSamples(now);
BuildRibbon(wideMesh, now, 0f, 1f, trailColor, 0.10f, 0.36f);
Color coreColor = Color.Lerp(Color.white, trailColor, 0.45f);
BuildRibbon(coreMesh, now, 0.42f, 1f, coreColor, 0.14f, 0.48f);
Color coreColor = Color.Lerp(Color.white, trailColor, CoreColorWeight(trailColor));
float alphaMultiplier = VisibilityAlphaMultiplier(trailColor);
BuildRibbon(coreMesh, now, 0.42f, 1f, coreColor, 0.14f * alphaMultiplier, 0.48f * alphaMultiplier);
lastBase = basePos;
lastTip = tipPos;
@@ -147,10 +148,11 @@ namespace VRBeats
{
trailColor = NormalizeColor(color);
EnsureRenderers();
ApplyMaterialColor(wideMaterial, trailColor, 0.34f);
float alphaMultiplier = VisibilityAlphaMultiplier(trailColor);
ApplyMaterialColor(wideMaterial, trailColor, 0.34f * alphaMultiplier);
Color coreColor = Color.Lerp(Color.white, trailColor, 0.45f);
ApplyMaterialColor(coreMaterial, coreColor, 0.50f);
Color coreColor = Color.Lerp(Color.white, trailColor, CoreColorWeight(trailColor));
ApplyMaterialColor(coreMaterial, coreColor, 0.50f * alphaMultiplier);
}
private void ResolveBladeAnchors()
@@ -424,6 +426,21 @@ namespace VRBeats
return color;
}
private static float CoreColorWeight(Color color)
{
return IsBlueDominant(color) ? 0.78f : 0.45f;
}
private static float VisibilityAlphaMultiplier(Color color)
{
return IsBlueDominant(color) ? 1.35f : 1f;
}
private static bool IsBlueDominant(Color color)
{
return color.b > color.r && color.b >= color.g;
}
private static Color WithAlpha(Color color, float alpha)
{
color.a = Mathf.Clamp01(alpha);