fix speed camera
This commit is contained in:
@@ -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
|
||||
<Canvas gl={{ alpha: true, antialias: true }}>
|
||||
<PerspectiveCamera makeDefault position={CAM_INITIAL_POS} fov={CAM_FOV} />
|
||||
<CameraSync />
|
||||
<CameraBreathing />
|
||||
<CameraBreathing speed={camSpeedProp} />
|
||||
<CameraDistanceMonitor onDistanceChange={(d) => {
|
||||
if (d > ZOOM_OUT_THRESHOLD) onZoomOut?.();
|
||||
}} />
|
||||
|
||||
Reference in New Issue
Block a user