From ab24d13d2ccce7dad9488d29f85295fecd4e7ad3 Mon Sep 17 00:00:00 2001 From: Yasutake Yohei <61961825+yasutakeyohei@users.noreply.github.com> Date: Mon, 5 Oct 2026 13:52:57 +0900 Subject: bluebey-studio: ハートの目に下まぶたを表示しない MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ハートは眼球の置き換えなので、下まぶたの線とクリップを無効にした。 --- public/bluebey-studio/src/faceArt.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'public/bluebey-studio') diff --git a/public/bluebey-studio/src/faceArt.js b/public/bluebey-studio/src/faceArt.js index 9e07ac6..9ed6c83 100644 --- a/public/bluebey-studio/src/faceArt.js +++ b/public/bluebey-studio/src/faceArt.js @@ -1416,7 +1416,7 @@ export function drawEyes(ctx, p) { // A heart is not an eyeball, so once the eye is fully open it is not clipped // to the eyeball circle - that is what lets a heart be much larger than the // iris. While the lid is partly closed the clip is still needed. - if (!isHeart || open < 0.999) clipEye(ctx, eye, open, lowerLid, lidFlat, lidTilt * eye.towardNose); + if (!isHeart || open < 0.999) clipEye(ctx, eye, open, isHeart ? 0 : lowerLid, lidFlat, lidTilt * eye.towardNose); const eyeTravel = isHeart ? heartTravel * lookMax : travel * lookMax; let dx = clamp(spec.lookX ?? 0, -1, 1) * eyeTravel; @@ -1482,7 +1482,10 @@ export function drawEyes(ctx, p) { // The upper lid line has to sit where the clip put it - and that is set by // `open` alone, so it stays put when the lower lid moves. const upperAmt = clamp(open, 0, 1); - if (lidFade > 0.01 || lowerLid > 0.01) { + // A heart is a replacement for the eyeball, not an eye behind a lid: it keeps + // no lower-lid line, which used to cut across the heart. + const showLowerLid = lowerLid > 0.01 && !isHeart; + if (lidFade > 0.01 || showLowerLid) { ctx.save(); if (eyeTilt) { ctx.translate(eye.cx, eye.cy); @@ -1498,7 +1501,7 @@ export function drawEyes(ctx, p) { lidPath(ctx, eye, upperAmt, false, lidFlat); ctx.stroke(); } - if (lowerLid > 0.01) { + if (showLowerLid) { ctx.globalAlpha = line ? 1 : lowerLid; lidPath(ctx, eye, lowerLid, true, lidFlat); ctx.stroke(); -- cgit v1.3.1