菜单

基本动画

相关源文件

本文档解释了 ManimGL 中基本的动画系统,涵盖了用于创建、变换和淡化数学对象(mobjects)的最常见动画类型。有关高级动画技术,请参阅 自定义动画更新器和连续动画

动画系统概述

在 ManimGL 中,动画定义了 mobjects(数学对象)如何随时间变化。每个动画都涉及在指定时间内将一个 mobject 从起始状态插值到结束状态。动画在场景中使用 scene.play() 方法播放。

来源: manimlib/animation/animation.py23-204

动画基类

所有动画都继承自基类 Animation,它提供了核心接口和功能。

Animation 类关键参数

参数描述默认
mobject要动画化的对象必填
run_time时长(秒)1.0
rate_func控制动画节奏的函数smooth
lag_ratio子对象动画之间的延迟0
remover动画后是否移除 mobject

来源: manimlib/animation/animation.py23-70

创建动画

创建动画通过逐渐显示 mobjects 来将它们引入场景。

常见的创建动画

动画描述关键参数
ShowCreation通过“绘制”来显示 mobjectlag_ratio
Uncreate与 ShowCreation 相反remover (默认值:True)
写入为文本创建书写效果run_time, lag_ratio
DrawBorderThenFill绘制轮廓,然后填充内部stroke_width, stroke_color
ShowIncreasingSubsets逐渐显示更多子对象int_func

使用示例

来源: manimlib/animation/creation.py25-244

变换动画

变换动画将一个 mobject 变为另一个。

常见的变换动画

动画描述关键参数
Transform基础变换类target_mobject, path_arc
ReplacementTransform在场景中变换并替换target_mobject
TransformFromCopy创建副本并进行变换target_mobject
MoveToTarget动画到 mobject 的 .target 属性(需要设置 mobject.target)
ApplyMethod将方法应用于 mobjectmethod, *args
FadeToColor改变 mobject 的颜色color
ScaleInPlace在保持中心固定的情况下缩放 mobjectscale_factor

使用示例

来源: manimlib/animation/transform.py24-331

淡化动画

淡化动画控制 mobjects 的不透明度。

常见的淡化动画

动画描述关键参数
FadeIn将不透明度从 0 增加到 1shift, scale
FadeOut将不透明度从 1 降低到 0shift, remover (默认值:True)
FadeInFromPoint从特定点淡入point
FadeOutToPoint淡出到特定点point
FadeTransform一个 mobject 淡出的同时另一个 mobject 淡入target_mobject
VFadeIn/VFadeOutVMobject 的矢量特定淡化

使用示例

来源: manimlib/animation/fading.py21-213

指示动画

指示动画用于吸引观众注意场景的某些部分,而不会永久性地改变它们。

常见的指示动画

动画描述关键参数
Indicate短暂地缩放和改变颜色scale_factor, color
Flash在某个点创建闪光效果point, color, num_lines
CircleIndicate用圆圈包围stroke_color, stroke_width
FlashAround围绕 mobject 闪烁stroke_width, color
ShowPassingFlash沿着路径显示移动的脉冲time_width
WiggleOutThenIn使 mobject 抖动scale_value, rotation_angle

使用示例

来源: manimlib/animation/indication.py41-425

生长动画

生长动画使 mobjects 从特定点生长。

动画描述关键参数
GrowFromPoint从特定点生长point, point_color
GrowFromCenter从中心生长
GrowFromEdge从边缘生长edge
GrowArrow专门用于生长箭头

使用示例

来源: manimlib/animation/growing.py15-54

组合动画

ManimGL 提供了类来将多个动画组合在一起。

描述关键参数
AnimationGroup一起播放多个动画*animations, lag_ratio
Succession按顺序播放动画*animations
LaggedStart延迟开始播放动画*animations, lag_ratio
LaggedStartMap对组应用相同动画并延迟anim_func, group, lag_ratio

使用示例

来源: manimlib/animation/composition.py27-182

动画参数和自定义

运行时间

参数 run_time 设置动画的持续时间(秒)

速率函数

速率函数控制动画的节奏。常见的包括:

速率函数描述
linear恒定速度
smooth缓入缓出(默认)
there_and_back前进然后后退
rush_into慢速开始,快速结束
rush_from快速开始,慢速结束

来源: manimlib/utils/rate_functions.py

延迟比

参数 lag_ratio 控制子对象动画之间的延迟

带 Mobject 方法的动画快捷方式

Mobjects 提供了一个方便的 .animate 属性来创建动画

这会创建动画,按顺序将方法应用于 mobject。

来源: manimlib/mobject/mobject.py manimlib/animation/transform.py161-195

动画组与场景集成

动画通常使用 play 方法在场景中播放

来源: manimlib/animation/animation.py manimlib/scene/scene.py