跳到主要内容

Media

在本章中,我们将了解 Motion Canvas 允许你添加到动画中的所有不同类型的媒体。

Audio

Motion Canvas 支持的一种媒体类型是音频。要将音频轨道添加到动画,你需要编辑 project.ts 文件。首先,我们需要按如下方式导入我们要使用的音频文件:

// my-animation/
// ├─ audio/
// │ └─ voice.mp3
// ├─ src/
// ...
import audio from '../audio/voice.mp3';

导入后,我们需要让 Motion Canvas 知道我们要使用这个音频文件。我们可以通过在项目配置中指定 audio 属性来做到这一点:

export default makeProject({
// ...
audio: audio,
});

如果我们现在打开编辑器,应该会看到你的音频轨道已添加。

然而,从头开始播放音频并不总是理想的。有时最好稍微延迟一下。配置音频后,你可以在 Video Settings 选项卡中编辑偏移量。你也可以按住 SHIFT 并直接在时间轴上左右拖动音频轨道。

Supported Formats

支持的文件格式列表可以在这里找到

Images

Motion Canvas 支持的另一种媒体类型是图像。要在动画中使用图像,我们需要导入图像:

// my-animation/
// ├─ images/
// │ └─ example.png
// ├─ src/
// ...
import examplePng from '../../images/example.png';

然后我们可以使用 Motion Canvas Img 组件来显示图像:

import {makeScene2D, Img} from '@motion-canvas/2d';

import examplePng from '../../images/example.png';

export default makeScene2D(function* (view) {
view.add(<Img src={examplePng} />);
});

图像可以像 Motion Canvas 中的每个其他组件一样进行动画处理。为此,我们需要创建一个 Reference 并将其传递给 Img

// ...
import {all, createRef} from '@motion-canvas/core';

export default makeScene2D(function* (view) {
const imageRef = createRef<Img>();

view.add(<Img ref={imageRef} src={examplePng} scale={2} />);

yield* all(
imageRef().scale(2.5, 1.5).to(2, 1.5),
imageRef().absoluteRotation(90, 1.5).to(0, 1.5),
);
});

Supported Formats

支持的文件格式列表可以在这里找到

Video

Motion Canvas 中的视频与图像类似工作。首先,我们需要导入我们要显示的视频:

// my-animation/
// ├─ videos/
// │ └─ example.mp4
// ├─ src/
// ...
import exampleMp4 from '../../videos/example.mp4';

然后我们可以使用 Motion Canvas Video 组件来显示视频,如下所示:

import {makeScene2D, Video} from '@motion-canvas/2d';

import exampleMp4 from '../../videos/example.mp4';

export default makeScene2D(function* (view) {
view.add(<Video src={exampleMp4} />);
});

然而,这只会显示视频,而不会播放它。为了播放视频,我们需要创建对元素的 Reference

// ...
import {createRef} from '@motion-canvas/core';

export default makeScene2D(function* (view) {
const videoRef = createRef<Video>();

view.add(<Video ref={videoRef} src={exampleMp4} />);
});

现在我们有了对 Video 元素的 Reference,我们可以使用它来为视频制作动画,以及 playpause 它。

export default makeScene2D(function* (view) {
// ...

videoRef().play();
yield* videoRef().scale(1.25, 1.5).to(1, 1.5);
});

Supported Formats

支持的文件格式列表可以在这里找到