From f8e093466d2ba272bde162b446664d80fe94619a Mon Sep 17 00:00:00 2001 From: syuilo <4439005+syuilo@users.noreply.github.com> Date: Sun, 19 Apr 2026 13:32:08 +0900 Subject: [PATCH] fixes --- .../src/world/room/objects/tabletopDigitalClock.ts | 12 ++++++++++-- .../frontend/src/world/room/objects/wallClock.ts | 1 + 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/frontend/src/world/room/objects/tabletopDigitalClock.ts b/packages/frontend/src/world/room/objects/tabletopDigitalClock.ts index fb260b0da6..04fb4fab04 100644 --- a/packages/frontend/src/world/room/objects/tabletopDigitalClock.ts +++ b/packages/frontend/src/world/room/objects/tabletopDigitalClock.ts @@ -104,12 +104,20 @@ export const tabletopDigitalClock = defineObject({ const onMeshes = get7segMeshesOfCurrentTime(segmentMeshes); for (const mesh of Object.values(segmentMeshes)) { - mesh.isVisible = onMeshes.includes(mesh); + const isVisible = onMeshes.includes(mesh); + // 本当ならisVisibleで制御したいが、snapshot renderingではvisibilityはupdateMeshを呼んだとしても反映されないので、メッシュをめっちゃ縮めることで非表示を実現する(メッシュをめっちゃ遠くに飛ばすことも試みたけど、シーン全体の影のレンダリングがおかしくなるため断念。あとバウンディングボックスが大きくなるから不都合が出そう) + //mesh.isVisible = isVisible; + mesh.scaling.y = isVisible ? 1 : 0; } for (const mesh of colonMeshes) { - mesh.isVisible = Date.now() % 2000 < 1000; + const isVisible = Date.now() % 2000 < 1000; + // 本当ならisVisibleで制御したいが、snapshot renderingではvisibilityはupdateMeshを呼んだとしても反映されないので、メッシュをめっちゃ縮めることで非表示を実現する(メッシュをめっちゃ遠くに飛ばすことも試みたけど、シーン全体の影のレンダリングがおかしくなるため断念。あとバウンディングボックスが大きくなるから不都合が出そう) + //mesh.isVisible = isVisible; + mesh.scaling.y = isVisible ? 1 : 0; } + + room?.sr.updateMesh([...Object.values(segmentMeshes), ...colonMeshes]); }, 1000)); }, onOptionsUpdated: ([k, v]) => { diff --git a/packages/frontend/src/world/room/objects/wallClock.ts b/packages/frontend/src/world/room/objects/wallClock.ts index 08294771e9..0c6d345edb 100644 --- a/packages/frontend/src/world/room/objects/wallClock.ts +++ b/packages/frontend/src/world/room/objects/wallClock.ts @@ -47,6 +47,7 @@ export const wallClock = defineObject({ const mAngle = -(minutes / 60) * Math.PI * 2; hourHand.rotation = new BABYLON.Vector3(0, 0, hAngle); minuteHand.rotation = new BABYLON.Vector3(0, 0, mAngle); + room?.sr.updateMesh([hourHand, minuteHand]); }, 1000)); }, onOptionsUpdated: ([k, v]) => {