feat(nds): tweak animations durations

This commit is contained in:
2026-02-26 14:58:46 +01:00
parent 3216d6e79e
commit eba1b8d84c
6 changed files with 35 additions and 35 deletions

View File

@@ -11,12 +11,14 @@ const ANIMATION = {
NDS_CAMERA_ROTATION: new THREE.Euler(THREE.MathUtils.degToRad(-55), 0, 0),
GALLERY_CAMERA_POSITION: new THREE.Vector3(0, 4.5, -3),
GALLERY_CAMERA_ROTATION: new THREE.Euler(THREE.MathUtils.degToRad(-62), 0, 0),
CAMERA_DURATION: 3,
CAMERA_DURATION_INTRO: 2.115,
CAMERA_DURATION_OUTRO: 2.037,
CAMERA_ROTATION_OVERLAP: 0.1,
// 2D zoom
ZOOM_SCALE: 6,
ZOOM_DURATION: 3,
ZOOM_DURATION_INTRO: 2.115,
ZOOM_DURATION_OUTRO: 2.037,
ZOOM_EASE: "power2.inOut",
};
@@ -79,7 +81,7 @@ export const useGalleryStore = defineStore("gallery", {
x: ANIMATION.GALLERY_CAMERA_POSITION.x,
y: ANIMATION.GALLERY_CAMERA_POSITION.y,
z: ANIMATION.GALLERY_CAMERA_POSITION.z,
duration: ANIMATION.CAMERA_DURATION,
duration: ANIMATION.CAMERA_DURATION_INTRO,
delay: zoomDelay,
ease: ANIMATION.ZOOM_EASE,
},
@@ -97,7 +99,7 @@ export const useGalleryStore = defineStore("gallery", {
y: ANIMATION.GALLERY_CAMERA_ROTATION.y,
z: ANIMATION.GALLERY_CAMERA_ROTATION.z,
duration:
ANIMATION.CAMERA_DURATION *
ANIMATION.CAMERA_DURATION_INTRO *
(1 - ANIMATION.CAMERA_ROTATION_OVERLAP),
delay: zoomDelay,
ease: ANIMATION.ZOOM_EASE,
@@ -109,7 +111,7 @@ export const useGalleryStore = defineStore("gallery", {
{ scale: 1 },
{
scale: ANIMATION.ZOOM_SCALE,
duration: ANIMATION.ZOOM_DURATION,
duration: ANIMATION.ZOOM_DURATION_INTRO,
delay: zoomDelay,
ease: ANIMATION.ZOOM_EASE,
},
@@ -124,7 +126,7 @@ export const useGalleryStore = defineStore("gallery", {
setTimeout(() => {
const { assets } = useAssets();
assets.audio.whooshSmall.play(0.6);
}, 500);
}, 100);
},
animateOutro() {
@@ -135,7 +137,7 @@ export const useGalleryStore = defineStore("gallery", {
// Outro: Camera/zoom starts first (at 0), fade starts after with overlap
const fadeDelay =
ANIMATION.CAMERA_DURATION - ANIMATION.FADE_CAMERA_OVERLAP;
ANIMATION.CAMERA_DURATION_OUTRO - ANIMATION.FADE_CAMERA_OVERLAP;
if (app.camera) {
gsap.fromTo(
@@ -149,7 +151,7 @@ export const useGalleryStore = defineStore("gallery", {
x: ANIMATION.NDS_CAMERA_POSITION.x,
y: ANIMATION.NDS_CAMERA_POSITION.y,
z: ANIMATION.NDS_CAMERA_POSITION.z,
duration: ANIMATION.CAMERA_DURATION,
duration: ANIMATION.CAMERA_DURATION_OUTRO,
delay: 0,
ease: ANIMATION.ZOOM_EASE,
},
@@ -167,7 +169,7 @@ export const useGalleryStore = defineStore("gallery", {
y: ANIMATION.NDS_CAMERA_ROTATION.y,
z: ANIMATION.NDS_CAMERA_ROTATION.z,
duration:
ANIMATION.CAMERA_DURATION *
ANIMATION.CAMERA_DURATION_OUTRO *
(1 - ANIMATION.CAMERA_ROTATION_OVERLAP),
delay: 0,
ease: ANIMATION.ZOOM_EASE,
@@ -179,7 +181,7 @@ export const useGalleryStore = defineStore("gallery", {
{ scale: ANIMATION.ZOOM_SCALE },
{
scale: 1,
duration: ANIMATION.ZOOM_DURATION,
duration: ANIMATION.ZOOM_DURATION_OUTRO,
delay: 0,
ease: ANIMATION.ZOOM_EASE,
},