用Python打造精彩动画与视频,5.3 使用Manim创建简单动画

5.3 使用Manim创建简单动画

在这一节中,我们将介绍如何使用Manim创建简单的动画。我们将从基本的场景构建开始,然后演示如何添加动画效果。通过这些示例,你将能够掌握使用Manim创建各种动画的基本技能。

5.3.1 创建一个简单的场景

Manim中的基本单元是场景(Scene)。每个场景都是一个Python类,继承自`manim.Scene`。以下是创建一个简单场景的步骤:

步骤1:创建Python脚本文件

在你的项目目录中创建一个新的Python文件,例如`simple_animation.py`。

步骤2:编写场景代码

在`simple_animation.py`文件中编写以下代码:

|----------------------------------------------------------------------------------------------------------------------------------------------------------------|
| from manim import * class HelloWorld(Scene): def construct(self): # 创建文本对象 text = Text("Hello, Manim!") # 播放写入文本动画 self.play(Write(text)) # 等待2秒 self.wait(2) |

5.3.2 运行并查看动画

步骤1:打开命令提示符或终端

在Windows上,按`Win + R`打开"运行"对话框,输入`cmd`并按Enter。

步骤2:导航到脚本所在目录

|----------------------------------------|
| cd E:\PycharmProjects\pythonProject3 |

使用`cd`命令导航到包含`simple_animation.py`的目录,例如:

步骤3:运行Manim命令

使用以下命令来运行Manim并渲染动画:

|-------------------------------------------|
| manim -pql simple_animation.py HelloWorld |

命令解释:

p:表示播放视频。

ql:表示使用快速渲染(低质量)。

simple_animation.py`:你的脚本文件名。

HelloWorld:类名。

5.3.3 创建几何图形动画

接下来,我们将展示如何创建一个简单的几何图形动画。

步骤1:更新Python脚本

|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| from manim import * class SquareToCircle(Scene): def construct(self): # 创建一个正方形 square = Square() # 创建一个圆形 circle = Circle() # 设置圆形填充颜色 circle.set_fill(PINK, opacity=0.5) # 播放创建正方形的动画 self.play(Create(square)) # 播放正方形变成圆形的动画 self.play(Transform(square, circle)) # 播放淡出圆形的动画 self.play(FadeOut(square)) |

在`simple_animation.py`文件中添加以下代码:

步骤2:运行并查看动画

在命令提示符中运行以下命令:

|-----------------------------------------------|
| manim -pql simple_animation.py SquareToCircle |

5.3.4 添加文字和注释

我们可以在动画中添加文字和注释来增强展示效果。以下是一个示例,展示了如何在动画中添加文字。

步骤1:更新Python脚本

在`simple_animation.py`文件中添加以下代码:

|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| from manim import * class AnnotatedSquareToCircle(Scene): def construct(self): # 创建一个正方形 square = Square() # 创建一个圆形 circle = Circle() # 设置圆形填充颜色 circle.set_fill(PINK, opacity=0.5) # 创建注释文本 text_square = Text("Square") text_circle = Text("Circle") # 设置文本位置 text_square.next_to(square, UP) text_circle.next_to(circle, UP) # 播放创建正方形的动画 self.play(Create(square)) # 播放写入注释文本的动画 self.play(Write(text_square)) self.wait(1) # 播放正方形变成圆形的动画 self.play(Transform(square, circle), Transform(text_square, text_circle)) self.wait(1) # 播放淡出圆形的动画 self.play(FadeOut(square), FadeOut(text_circle)) |

步骤2:运行并查看动画

|--------------------------------------------------------|
| manim -pql simple_animation.py AnnotatedSquareToCircle |

在命令提示符中运行以下命令:

5.3.5 保存动画

我们可以将生成的动画保存为视频文件,常见的格式有MP4和GIF。以下是保存动画的示例:

步骤1:运行Manim命令并指定输出路径

|---------------------------------------------------------------------------------------------------------------------------------------------------------|
| manim -pql -o "I:\《从基础到精通:用Python打造精彩动画与视频》\python动画视频项目目录\MyNewProject\annotated_square_to_circle.mp4" simple_animation.py AnnotatedSquareToCircle |

在命令提示符中运行以下命令:

总结

在本小节中,我们介绍了如何使用Manim创建简单的动画。我们学习了如何创建基本场景、添加几何图形动画、添加文字和注释,以及保存动画。通过这些知识,你可以开始使用Manim创建各种高质量的动画。

素材要求:

  1. Python环境:确保已经安装了Python。

  2. Manim库:通过pip安装Manim库。

  3. ffmpeg和LaTeX:用于生成视频和处理数学公式。

通过这些步骤和示例代码,你应该能够轻松上手Manim,并创建出有趣且高质量的动画效果。如果有任何问题或需要进一步的帮助,请随时询问。

相关推荐
洋洋不叫杨杨5 分钟前
Codex 实战:用 AI 写运维脚本
大数据·python
高级程序源14 分钟前
django大学生创新创业项目管理系统94923-计算机课程设计、毕业设计
javascript·vue.js·spring boot·后端·python·django·课程设计
技灵AI15 分钟前
Wan 3.0 API怎么做多参考商品视频?从图片、视频、音频分工到30秒交付
人工智能·prompt·aigc·音视频·wan 3.0
泡海椒19 分钟前
规则引擎对比:JQuick-Java vs Drools 轻量场景选型对比
java·开发语言
wno70439 分钟前
Spring Security短信验证码登录
java·python·spring
泡泡鱼(敲代码中)42 分钟前
Python 容器类型学习笔记:列表、元组、字典、集合
开发语言·笔记·python·pycharm
别动我齐刘海42 分钟前
ROS2 Jazzy + C++ 实战路线——基础学习2
c++·人工智能·vscode·python·学习·机器学习·机器人
2501_933670791 小时前
平台招商运营校招能力模型:数据分析、SQL与增长场景拆解
开发语言
AR-26710-1 小时前
Linux Day7——建组/用户、umask、Python脚本
linux·python
打工仔折腾 AI2 小时前
普通摄像头接入AI识别:绿联NAS部署Frigate监控实战
人工智能·后端·python·性能优化·ai agent 实战