aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/bluebey-studio/src/look.js
diff options
context:
space:
mode:
authorYasutake Yohei <61961825+yasutakeyohei@users.noreply.github.com>2026-10-03 15:44:38 +0900
committerYasutake Yohei <61961825+yasutakeyohei@users.noreply.github.com>2026-10-03 15:44:38 +0900
commitfbaf2cc671fed23b555e218499301af0f50327b0 (patch)
treedbdbf5bca92004085feebec920019800472672e5 /public/bluebey-studio/src/look.js
parent4cf9c37ecd568dab470b5714bff4ff9f860a5377 (diff)
public/bluebey-studio: 移動範囲と影・壁の追従、看板の文字
移動スライダーの範囲を広げ、キーライトと影カメラがぶるべーに追従するようにした(遠くへ動かしても影が切れない)。地面も広げた。 足もとの丸い影は既定で非表示にし、「足もとの丸い影」で切り替えられるようにした。原点に取り残されないよう、ぶるべーに追従させる。 見えない壁は体の向き(master のY回転と見る先の体向き)にも追従するようにした。 「舞台」をやめ、「小物」「擬音」「見えない壁」をそれぞれ独立したメニューにした。看板に文字を書けるようにした(複数行可)。
Diffstat (limited to 'public/bluebey-studio/src/look.js')
-rw-r--r--public/bluebey-studio/src/look.js6
1 files changed, 5 insertions, 1 deletions
diff --git a/public/bluebey-studio/src/look.js b/public/bluebey-studio/src/look.js
index f68b602..d755c3b 100644
--- a/public/bluebey-studio/src/look.js
+++ b/public/bluebey-studio/src/look.js
@@ -130,7 +130,11 @@ export function createLook({ renderer, scene, styles, model, ground, key, charac
// where the body hides its own shadow right at the feet, which otherwise
// reads as "the shadow is cut off". It is the only thing keeping the
// character looking like it is standing on the floor rather than above it.
- contact.visible = wantsShadow;
+ // The blob sits at the feet. It used to be drawn whenever the shadow was on,
+ // which left a faint ring behind at the origin once the character was moved;
+ // it is now opt-in (`render.contactBlob`, default off). It is always shown in
+ // the 「接地影だけ」 mode, where it is the only shadow there is.
+ contact.visible = wantsShadow && (blobOnly || render.contactBlob === true);
contact.material.opacity = clamp01((render.shadowOpacity ?? 0.22) * (blobOnly ? 2.6 : 1.6));
const spread = Math.max(0.2, (model.size.x * 1.15) / Math.max(0.05, render.shadowSoftness ?? 1.6));
contact.scale.setScalar(Math.max(0.5, model.size.x * 1.35 - spread * 0.25));