manim是一个强大、灵活的python语言的动画引擎,尤其适合程序员使用编程方法来制作创意视频。
以下说明在 Windows操作系统中安装使用注意的问题。注意,是使用 manim源码的方式。请尽量使用源码,便于理解一些实现细节。
一.源码下载
官方下载地址:https://github.com/3b1b/manim.git
另外,因为官方源码更新原因,出现一些错误和文件缺失问题,我在使用中整理出一个版本(manim也有其它社区版)。
1.补充了一些缺失的图形文件,并做了一些修正。
2.把windows平台下需要安装的软件 FFmpeg,LaTeX,和模块pycairo下载好,放在./install-requirements/目录中,大家不用自己再到处去下载,直接安装即可。
3.包含我写的一些扩展代码,新增样条曲线类、文字处理类,以及几个我自己用到的视频动画。
4.在 example_scenes.py中加入更多例子,涵盖更全面的功能演示。
如果下载我整理的版本,请关注“优点英语app”公众号进入教程源码 - manim 文章获取下载地址。
这里没有直接给出下载地址,是因为我的视频教程中还有其它源码,为了便于管理,统一放在公众号中。
二.Windows操作系统中安装
1.【必需】[安装 FFmpeg]
这里已经下载了一个版本,保存在 ./install-requirements/.
这个软件不需要安装,相当于是一个绿色程序,把它解压到电脑上的一个位置。然后把它的bin目录设置到系统的环境变量 path中,使 ffmpeg能以命令的方式在命令行窗口中运行。
2.【必需】[安装 Cairo]
这个需要先下载安装文件再安装,才能安装成功。
这里已经下载了一个版本,保存在 ./install-requirements/.
可以直接运行下面的命令安装。
```sh
pip3 install ./install-requirements/pycairo-1.19.1-cp38-cp38-win_amd64.whl
```
也可以从下面这个网址下载一个合适的版本。
https://www.lfd.uci.edu/~gohlke/pythonlibs/#pycairo
3.【必需】安装 LaTeX
这个作用主要是为了处理带有公式的文本。manim中有两种文本对象。其中一种不使用公式,即普通的文本,可以不使用 LaTeX。
因为要运行里面的很多例子都有公式,所以这个程序必须安装。
这里已经下载了一个版本,保存在 ./install-requirements/.进入这个目录,双击安装程序,安装到电脑。
也可以从下面这个网址下载一个合适的版本。
[MiKTeX](https://miktex.org/download)
4. [安装 SoX]
这个可以不用安装。我的电脑没有安装这个,这里不做详细说明。
如果要安装,从下面的网址下载。
(https://sourceforge.net/projects/sox/files/sox/).
5.【必需】安装其他必须的模块。
其他的几个模块都能很顺利的使用 pip命令安装成功,这里不做详述。。
```sh
pip3 install -r requirements.txt
```
三.运行示例
示例的运行方法。
python manim.py example_scenes.py SquareToCircle -pl
执行后会生成一个视频文件,并立即打开播放。
四.manim使用逻辑概要。
manim使用逻辑很简单,配合例子只要几分钟就能掌握,剩下的在使用中再深入了解一些细节即可做出我们想要的效果。以下是我在使用中的一些总结,希望能让大家在初次使用时能对manim有个全局认识。
1. 所有的动画代码编写需要在场景类中完成。
1)首先新建一个场景类,这个场景类必须继承自 manim库中的场景类(Scene类或其子类)。
2)然后在这个新建场景类 construct方法中,创建一些对象,比如说坐标轴、文字、线条、三角形、立方体、曲面等等。
3)然后使用 play方法,对对象进行平移、旋转、转换等各种动画操作。
4)最后,统一使用下面的命令格式来执行代码程序,如上面第三条中示例的运行方法。
python manim.py 代码所在的文件名 新的场景类名 -pl
运行完之后会直接生成一个视频文件。
2. 这个库所包含的对象类型特别广泛:
1)像素格式图片、svg矢量图形;
2)文字、公式;
3)点、线(直线、贝塞尔曲线、样条曲线);
4)三角形、矩形等二维图形;
5)立方体、球体、锥体等三维图形;
6)三维曲面;
7)使用自定义函数创建的特殊曲面、或者图形。
3. 照相机是场景中一个属性,不需要创建。可以通过改变照相机的角度、距离来转换场景的观察方向,在三维动画中很有用。
4. 颜色、线条粗细等都是通过 config 的形式设置。
5. example_scenes.py 中有各种各样的示例,通过学习这些例子即可初步掌握其使用原理。
五.不显示中文的问题
找到 ./manimlib/constants.py文件
在此文件中找到: TEX_USE_CTEX = False,把 False改为 True即可。
六.目录说明
1. ./from_3b1b/目录
这个目录中包含了官方的很多示例。但是因为版本更迭的问题导致有很多错误,还有一些图形文件缺失,我做了一些修改和补充。
2. ./ydyy/ 目录
这个目录中是我在制作一些视频的时候做的一些代码。
3. ./manimlib/ 核心库文件的存放目录。
4. ./assets/ 图片、图形文件的存放目录。
5. ./media/ 生成的视频文件存放目录。
七.使用自定义函数实现的效果展示
这个例子模拟的是三维波形图。波形图曲面的函数为:
z = 0.2 * np.sin(np.sqrt(x**2 + y**2))
是一个多变量函数,0.2是为了减小波峰与波谷的高差,让波纹显得平缓,以坐标(0,0,0)为中心。
代码文件位于:./ydyy/video_3.py 中的 Wave类。
编后语
近期在制作Python基础教程视频时,希望能让教程有些新意,原本想使用ppt、或者视频剪辑的方法来做一些特殊效果,经过一番尝试后发现有些功能很难实现。
偶然发现 manim这个模块,研究几个例子后,使用 manim做了一些片头和片尾的动画。确实功能强大、灵活,可以实现非常多的创意,尤其适合程序员使用编程方法来制作创意视频。
我们的Python基础教程通过讲解Python英语教程的方式来学习Python编程,让大家既能学习一种编程语言又能提高英语能力。
一方面,我们把编程作为一种英语使用环境,在编程中学习英语,提高英语学习效率。
另一方面,英语是编程不能回避的一道坎。大量的编程文档、函数的名称、函数的注释、类的名称、类的注释、新技术、新功能的发布等等,都使用英语。掌握好英语才能让我们在编程中游刃有余。
如果觉得本文有帮助请点赞、收藏。
如有疑问请在下面留言。