Skip to content

Commit 8ffefed

Browse files
committed
fix: fix zoom transitions
1 parent 49e369a commit 8ffefed

File tree

3 files changed

+51
-54
lines changed

3 files changed

+51
-54
lines changed

examples/smooth-parallax/src/scenes/merge.tsx

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,20 @@
11
import {makeScene2D} from '@motion-canvas/2d';
2-
import {Node, Rect, Circle, Txt, Img} from '@motion-canvas/2d/lib/components';
2+
import {Circle, Img, Node, Rect, Txt} from '@motion-canvas/2d/lib/components';
3+
import {
4+
brightness,
5+
contrast,
6+
hue,
7+
saturate,
8+
} from '@motion-canvas/2d/lib/partials';
39
import {
410
all,
511
delay,
612
loop,
713
waitFor,
814
waitUntil,
915
} from '@motion-canvas/core/lib/flow';
10-
import {createRef, finishScene} from '@motion-canvas/core/lib/utils';
16+
import {createSignal} from '@motion-canvas/core/lib/signals';
1117
import {zoomOutTransition} from '@motion-canvas/core/lib/transitions';
12-
import {BBox, PossibleVector2, Vector2} from '@motion-canvas/core/lib/types';
13-
import {
14-
BGColor,
15-
createParallax,
16-
createUpscale,
17-
Parallax,
18-
ParallaxProps,
19-
Upscale,
20-
} from '../components';
2118
import {
2219
easeInExpo,
2320
easeInOutCubic,
@@ -28,14 +25,17 @@ import {
2825
TimingFunction,
2926
tween,
3027
} from '@motion-canvas/core/lib/tweening';
31-
import {createSignal} from '@motion-canvas/core/lib/signals';
32-
import {WhiteLabel} from '../styles';
28+
import {BBox, PossibleVector2, Vector2} from '@motion-canvas/core/lib/types';
29+
import {createRef, finishScene} from '@motion-canvas/core/lib/utils';
3330
import {
34-
brightness,
35-
contrast,
36-
hue,
37-
saturate,
38-
} from '@motion-canvas/2d/lib/partials';
31+
BGColor,
32+
createParallax,
33+
createUpscale,
34+
Parallax,
35+
ParallaxProps,
36+
Upscale,
37+
} from '../components';
38+
import {WhiteLabel} from '../styles';
3939

4040
export default makeScene2D(function* (view) {
4141
view.fill('#141414');
@@ -69,7 +69,7 @@ export default makeScene2D(function* (view) {
6969
</>,
7070
);
7171

72-
yield* zoomOutTransition(new BBox(320, 0, 480, 270));
72+
yield* zoomOutTransition(new BBox(1040, 405, 480, 270));
7373

7474
yield* waitUntil('reconcile');
7575
yield* all(

examples/smooth-parallax/src/scenes/outro.tsx

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import {makeScene2D} from '@motion-canvas/2d';
22
import {Img, Rect, RectProps, Txt} from '@motion-canvas/2d/lib/components';
33
import {all, waitUntil} from '@motion-canvas/core/lib/flow';
4-
import {Container} from '../components';
5-
import {BlackLabel, Colors} from '../styles';
4+
import {zoomOutTransition} from '@motion-canvas/core/lib/transitions';
5+
import {BBox, Vector2} from '@motion-canvas/core/lib/types';
66
import {createRef, makeRef, makeRefs} from '@motion-canvas/core/lib/utils';
7-
import layers from '../images/icons/layers.svg';
8-
import flare from '../images/icons/flare.svg';
7+
import {Container} from '../components';
98
import desktop from '../images/icons/desktop.svg';
9+
import flare from '../images/icons/flare.svg';
1010
import functions from '../images/icons/functions.svg';
11-
import {BBox} from '@motion-canvas/core/lib/types';
12-
import {zoomOutTransition} from '@motion-canvas/core/lib/transitions';
11+
import layers from '../images/icons/layers.svg';
12+
import {BlackLabel, Colors} from '../styles';
1313
import videoMock from '../videos/outro.png';
1414

1515
export default makeScene2D(function* (view) {
@@ -55,28 +55,25 @@ export default makeScene2D(function* (view) {
5555

5656
yield view.add(
5757
<>
58-
<Img width={'100%'} src={videoMock} />
59-
<Rect ref={renderer} layout clip>
60-
<Container label="PIXEL ART RENDERER">
61-
<Pass name="Simulation Pass" src={functions} />
62-
<Pass refs={pass} name="Parallax Pass" src={layers} />
63-
<Pass name="Post Effects Pass" src={flare} />
64-
<Pass name="HUD Pass" src={desktop} />
65-
</Container>
66-
</Rect>
58+
<Img width={'100%'} src={videoMock} />
59+
<Rect ref={renderer} layout clip>
60+
<Container label="PIXEL ART RENDERER">
61+
<Pass name="Simulation Pass" src={functions} />
62+
<Pass refs={pass} name="Parallax Pass" src={layers} />
63+
<Pass name="Post Effects Pass" src={flare} />
64+
<Pass name="HUD Pass" src={desktop} />
65+
</Container>
66+
</Rect>
6767
</>,
6868
);
6969

70+
const bbox = BBox.fromSizeCentered(
71+
new Vector2((pass.value.height() / 9) * 16, pass.value.height()),
72+
);
73+
bbox.position = bbox.position.add(pass.value.absolutePosition());
7074
yield* all(
7175
pass.label.opacity(0).opacity(1, 0.6),
72-
zoomOutTransition(
73-
new BBox(
74-
pass.value.position.x(),
75-
pass.value.position.y(),
76-
(pass.value.height() / 9) * 16,
77-
pass.value.height(),
78-
),
79-
),
76+
zoomOutTransition(bbox, 0.6),
8077
);
8178

8279
yield* waitUntil('hide');

examples/smooth-parallax/src/scenes/parallax.tsx

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
import {makeScene2D} from '@motion-canvas/2d';
22
import {
3-
Node,
4-
Rect,
5-
Layout,
63
Circle,
4+
CircleProps,
75
Img,
6+
Layout,
87
Line,
9-
Txt,
108
LineProps,
11-
CircleProps,
9+
Node,
10+
Rect,
11+
Txt,
1212
} from '@motion-canvas/2d/lib/components';
1313
import {all, delay, loop, waitUntil} from '@motion-canvas/core/lib/flow';
14+
import {zoomInTransition} from '@motion-canvas/core/lib/transitions';
15+
import {BBox} from '@motion-canvas/core/lib/types';
1416
import {
1517
createRef,
1618
finishScene,
@@ -19,11 +21,9 @@ import {
1921
useDuration,
2022
usePlayback,
2123
} from '@motion-canvas/core/lib/utils';
22-
import {zoomInTransition} from '@motion-canvas/core/lib/transitions';
23-
import {BBox} from '@motion-canvas/core/lib/types';
2424

25-
import train from '../videos/train.png';
26-
import cameraIcon from '../images/icons/camera2.svg';
25+
import {createSignal} from '@motion-canvas/core/lib/signals';
26+
import {join} from '@motion-canvas/core/lib/threading';
2727
import {
2828
clamp,
2929
easeInCubic,
@@ -32,9 +32,9 @@ import {
3232
map,
3333
remap,
3434
} from '@motion-canvas/core/lib/tweening';
35-
import {createSignal} from '@motion-canvas/core/lib/signals';
35+
import cameraIcon from '../images/icons/camera2.svg';
3636
import {BlackLabel, Colors, WhiteLabel} from '../styles';
37-
import {join} from '@motion-canvas/core/lib/threading';
37+
import train from '../videos/train.png';
3838

3939
export default makeScene2D(function* (view) {
4040
view.fill('#141414');
@@ -53,7 +53,7 @@ export default makeScene2D(function* (view) {
5353
</Rect>,
5454
);
5555
video().absolutePosition(view.absolutePosition);
56-
yield* zoomInTransition(new BBox(-620, 30, 480, 270), 0.6);
56+
yield* zoomInTransition(new BBox(100, 435, 480, 270), 0.6);
5757
yield* waitUntil('hide_video');
5858
yield* videoClip().position.x(-view.width(), 0.8, linear);
5959
videoClip().remove();

0 commit comments

Comments
 (0)