Skip to content

Commit

Permalink
fix: fix zoom transitions
Browse files Browse the repository at this point in the history
  • Loading branch information
aarthificial committed Mar 21, 2024
1 parent 49e369a commit 8ffefed
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 54 deletions.
38 changes: 19 additions & 19 deletions examples/smooth-parallax/src/scenes/merge.tsx
Original file line number Diff line number Diff line change
@@ -1,23 +1,20 @@
import {makeScene2D} from '@motion-canvas/2d';
import {Node, Rect, Circle, Txt, Img} from '@motion-canvas/2d/lib/components';
import {Circle, Img, Node, Rect, Txt} from '@motion-canvas/2d/lib/components';
import {
brightness,
contrast,
hue,
saturate,
} from '@motion-canvas/2d/lib/partials';
import {
all,
delay,
loop,
waitFor,
waitUntil,
} from '@motion-canvas/core/lib/flow';
import {createRef, finishScene} from '@motion-canvas/core/lib/utils';
import {createSignal} from '@motion-canvas/core/lib/signals';
import {zoomOutTransition} from '@motion-canvas/core/lib/transitions';
import {BBox, PossibleVector2, Vector2} from '@motion-canvas/core/lib/types';
import {
BGColor,
createParallax,
createUpscale,
Parallax,
ParallaxProps,
Upscale,
} from '../components';
import {
easeInExpo,
easeInOutCubic,
Expand All @@ -28,14 +25,17 @@ import {
TimingFunction,
tween,
} from '@motion-canvas/core/lib/tweening';
import {createSignal} from '@motion-canvas/core/lib/signals';
import {WhiteLabel} from '../styles';
import {BBox, PossibleVector2, Vector2} from '@motion-canvas/core/lib/types';
import {createRef, finishScene} from '@motion-canvas/core/lib/utils';
import {
brightness,
contrast,
hue,
saturate,
} from '@motion-canvas/2d/lib/partials';
BGColor,
createParallax,
createUpscale,
Parallax,
ParallaxProps,
Upscale,
} from '../components';
import {WhiteLabel} from '../styles';

export default makeScene2D(function* (view) {
view.fill('#141414');
Expand Down Expand Up @@ -69,7 +69,7 @@ export default makeScene2D(function* (view) {
</>,
);

yield* zoomOutTransition(new BBox(320, 0, 480, 270));
yield* zoomOutTransition(new BBox(1040, 405, 480, 270));

yield* waitUntil('reconcile');
yield* all(
Expand Down
43 changes: 20 additions & 23 deletions examples/smooth-parallax/src/scenes/outro.tsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import {makeScene2D} from '@motion-canvas/2d';
import {Img, Rect, RectProps, Txt} from '@motion-canvas/2d/lib/components';
import {all, waitUntil} from '@motion-canvas/core/lib/flow';
import {Container} from '../components';
import {BlackLabel, Colors} from '../styles';
import {zoomOutTransition} from '@motion-canvas/core/lib/transitions';
import {BBox, Vector2} from '@motion-canvas/core/lib/types';
import {createRef, makeRef, makeRefs} from '@motion-canvas/core/lib/utils';
import layers from '../images/icons/layers.svg';
import flare from '../images/icons/flare.svg';
import {Container} from '../components';
import desktop from '../images/icons/desktop.svg';
import flare from '../images/icons/flare.svg';
import functions from '../images/icons/functions.svg';
import {BBox} from '@motion-canvas/core/lib/types';
import {zoomOutTransition} from '@motion-canvas/core/lib/transitions';
import layers from '../images/icons/layers.svg';
import {BlackLabel, Colors} from '../styles';
import videoMock from '../videos/outro.png';

export default makeScene2D(function* (view) {
Expand Down Expand Up @@ -55,28 +55,25 @@ export default makeScene2D(function* (view) {

yield view.add(
<>
<Img width={'100%'} src={videoMock} />
<Rect ref={renderer} layout clip>
<Container label="PIXEL ART RENDERER">
<Pass name="Simulation Pass" src={functions} />
<Pass refs={pass} name="Parallax Pass" src={layers} />
<Pass name="Post Effects Pass" src={flare} />
<Pass name="HUD Pass" src={desktop} />
</Container>
</Rect>
<Img width={'100%'} src={videoMock} />
<Rect ref={renderer} layout clip>
<Container label="PIXEL ART RENDERER">
<Pass name="Simulation Pass" src={functions} />
<Pass refs={pass} name="Parallax Pass" src={layers} />
<Pass name="Post Effects Pass" src={flare} />
<Pass name="HUD Pass" src={desktop} />
</Container>
</Rect>
</>,
);

const bbox = BBox.fromSizeCentered(
new Vector2((pass.value.height() / 9) * 16, pass.value.height()),
);
bbox.position = bbox.position.add(pass.value.absolutePosition());
yield* all(
pass.label.opacity(0).opacity(1, 0.6),
zoomOutTransition(
new BBox(
pass.value.position.x(),
pass.value.position.y(),
(pass.value.height() / 9) * 16,
pass.value.height(),
),
),
zoomOutTransition(bbox, 0.6),
);

yield* waitUntil('hide');
Expand Down
24 changes: 12 additions & 12 deletions examples/smooth-parallax/src/scenes/parallax.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
import {makeScene2D} from '@motion-canvas/2d';
import {
Node,
Rect,
Layout,
Circle,
CircleProps,
Img,
Layout,
Line,
Txt,
LineProps,
CircleProps,
Node,
Rect,
Txt,
} from '@motion-canvas/2d/lib/components';
import {all, delay, loop, waitUntil} from '@motion-canvas/core/lib/flow';
import {zoomInTransition} from '@motion-canvas/core/lib/transitions';
import {BBox} from '@motion-canvas/core/lib/types';
import {
createRef,
finishScene,
Expand All @@ -19,11 +21,9 @@ import {
useDuration,
usePlayback,
} from '@motion-canvas/core/lib/utils';
import {zoomInTransition} from '@motion-canvas/core/lib/transitions';
import {BBox} from '@motion-canvas/core/lib/types';

import train from '../videos/train.png';
import cameraIcon from '../images/icons/camera2.svg';
import {createSignal} from '@motion-canvas/core/lib/signals';
import {join} from '@motion-canvas/core/lib/threading';
import {
clamp,
easeInCubic,
Expand All @@ -32,9 +32,9 @@ import {
map,
remap,
} from '@motion-canvas/core/lib/tweening';
import {createSignal} from '@motion-canvas/core/lib/signals';
import cameraIcon from '../images/icons/camera2.svg';
import {BlackLabel, Colors, WhiteLabel} from '../styles';
import {join} from '@motion-canvas/core/lib/threading';
import train from '../videos/train.png';

export default makeScene2D(function* (view) {
view.fill('#141414');
Expand All @@ -53,7 +53,7 @@ export default makeScene2D(function* (view) {
</Rect>,
);
video().absolutePosition(view.absolutePosition);
yield* zoomInTransition(new BBox(-620, 30, 480, 270), 0.6);
yield* zoomInTransition(new BBox(100, 435, 480, 270), 0.6);
yield* waitUntil('hide_video');
yield* videoClip().position.x(-view.width(), 0.8, linear);
videoClip().remove();
Expand Down

0 comments on commit 8ffefed

Please sign in to comment.