diff --git a/src/AvatarScene.jsx b/src/AvatarScene.jsx index 9336bb1..98fb9b8 100644 --- a/src/AvatarScene.jsx +++ b/src/AvatarScene.jsx @@ -49,7 +49,7 @@ function RotatingStage({ children, speed }) { // マウス操作検知用の共有状態 const userInteracting = { active: false, timeout: null }; -function CameraBreathing() { +function CameraBreathing({ speed }) { const arrivedRef = useRef(false); useFrame(({ camera, clock }) => { @@ -65,7 +65,8 @@ function CameraBreathing() { // マウス操作中は止める if (userInteracting.active) return; - const t = clock.getElapsedTime() * BREATH_SPEED; + const breathSpeed = speed != null ? speed * 7 : BREATH_SPEED; + const t = clock.getElapsedTime() * breathSpeed; const range = (BREATH_FAR - BREATH_NEAR) / 2; const center = BREATH_NEAR + range; const dist = center + Math.sin(t) * range; @@ -134,7 +135,7 @@ export default function AvatarScene({ selectedAnimation: animState, onZoomOut, c - + { if (d > ZOOM_OUT_THRESHOLD) onZoomOut?.(); }} />