授权转发自 知乎网友 李狗嗨 原文地址:https://www.zhihu.com/question

授权转发自 知乎网友 李狗嗨

原文地址:https://www.zhihu.com/question/57357012/answer/723888621

相信很多人都知道3Blue1Brown,这是一个由斯坦福大学的数学系学生Grant Sanderson 创建的YouTube 频道。该频道从独特的视觉角度解说高等数学,内容包括线性代数、微积分、神经网络、黎曼猜想、傅里叶变换以及四元数等等。

B站最火数学视频3Blue1Brown是如何制作的插图

打开凤凰新闻,查看更多高清图片

本人通过该视频频道获得了很多启发,同时也对其精良的视频制作技术产生了浓厚的兴趣。

偶然的机会,得知其在Github上有专门开设了一个视频制作引擎:manim

B站最火数学视频3Blue1Brown是如何制作的插图1

所以,突然想尝试用一下该基于Python的可视化引擎,如果可以实现功能,以后就可以根据自己的需要利用该引擎进行动画演示。

网上找了一些相关的文章,有的写得很好,但是因为该开源代码库更新频繁,所以以前的配置教程往往会有过时的情况。现在最新的版本是基于Python 3的,以前的基于Python 2.7的教程已经不再适用于当前代码。所以在安装过程中,遇到了不少新问题,在解决的过程中记录了这些新问题的解决方法。并形成此文。(测试于2019年6月)

在配置前首先得安装Python 3,这个安装过程在此处不再赘述。建议通过Anaconda进行安装,而不是直接安装Python。这里的演示也是基于Windows 10 系统,在安装Anaconda的基础上完成的。Anaconda的下载地址为:

https://www.anaconda.com/distribution/download-section

建议选择安装Python 3.7 version,具体按照步骤网上有很多。

B站最火数学视频3Blue1Brown是如何制作的插图2

除此之外,还要下载:

manim:https://github.com/3b1b/manim,选择clone or download,然后Download ZIP,解压后到一个合适的位置(路径中不要包含中文!),即可使用(此为manim引擎所包含的全部文件);

miktex:https://miktex.org/download,直接安装即可,(路径中不要包含中文!)(此为windows平台下的Tex套件,TeX 是一种排版语言,主要用于处理视频中包含的文字信息);

ffmpeg:https://ffmpeg.zeranoe.com/builds/,下载好后,放到一个合适的路径下(路径中不要包含中文!),解压后将../bin/目录添加进用户环境变量(见后图)(此为音视频流处理软件)

dvisvgm:https://dvisvgm.de/Downloads/ ,64位的用户请注意选择64位的安装包,下载好后,放到一个合适的路径下(路径中不要包含中文!),解压后将../dvisvgm/目录添加进用户环境变量(见后图)(此为可以将dvi转换为高质量svg的软件)。

添加进用户环境变量的方法

右击我的电脑图标-属性-左边的高级系统设置

B站最火数学视频3Blue1Brown是如何制作的插图3

选择环境变量-用户变量中的Path-编辑-新建。

B站最火数学视频3Blue1Brown是如何制作的插图4

然后把解压后的FFmpeg的bin文件夹的路径和dvisvgm的dvisvgm文件夹路径添加进去,并选择确定。然后进行环境测试,看各个依赖环境是否都配置妥当(注意:按照个人安装的实际路径进行添加,图中只是一个参考)。

在Anaconda Prompt 中通过命令行配置并测试

具体方法是:右击Anaconda Prompt-更多-以管理员身份运行

B站最火数学视频3Blue1Brown是如何制作的插图5

这一步很重要,因为如果不以管理员身份运行很可能带来权限不够的情况,妨碍后期的各个程序包的安装。

在命令行中分别输入下列命令,并回车运行:

python —version

B站最火数学视频3Blue1Brown是如何制作的插图6

latex —version

B站最火数学视频3Blue1Brown是如何制作的插图7

xelatex —version

B站最火数学视频3Blue1Brown是如何制作的插图8

ffmpeg -version

B站最火数学视频3Blue1Brown是如何制作的插图9

dvisvgm —version

B站最火数学视频3Blue1Brown是如何制作的插图10

如果都有类似于上面的版本提示,则说明依赖的软件安装成功,否则,回去检查安装或用户路径的添加是否正确。

打开前面下载并解压后的manim文件夹,在其中添加一个空白文件夹media,并新建一个名字为MEDIA_DIR.txt的.txt文件。

B站最火数学视频3Blue1Brown是如何制作的插图11

在MEDIA_DIR.txt文件中输入刚刚新建的media文件夹所在的路径并保存。

B站最火数学视频3Blue1Brown是如何制作的插图12

回到Anaconda Prompt中,输入:

cd

该命令的意思是:跳转到manim的根目录中(注意:按照个人安装的实际路径进行添加,图中只是一个参考)。

B站最火数学视频3Blue1Brown是如何制作的插图13

然后输入(手机上如果看不到此处的全部代码,请在代码处左右滑动或在电脑上打开该文章):

python -m pip install -r requirements.txt

这个安装过程中常见的问题是pycairo这个包安装异常。

B站最火数学视频3Blue1Brown是如何制作的插图14

解决方法是先输入并运行:

conda install vs2015_runtime

B站最火数学视频3Blue1Brown是如何制作的插图15

然后再单独安装pycairo这个包,输入并运行:

conda install pycairo

B站最火数学视频3Blue1Brown是如何制作的插图16

现在,基本的东西都安装好了。尝试着运行一下测试命令:

python -m manim example_scenes.py SquareToCircle -pl

在运行的时候可能会有形如:ModuleNotFoundError: No module named 的错误提示,这说明还缺少程序包。请运行命令(注意: > 改为对应缺失的程序包的名字,命令中不含括号或引号):

pip install name >

一个特例是readline包,如果提示ModuleNotFoundError: No module named ‘readline’,则需要输入的是:

pip install pyreadline

安装好提示缺少的包后再输入并运行:

python -m manim example_scenes.py SquareToCircle -pl

缺什么程序包就按照上面的方法添加该程序包,直到命令可以通过:

B站最火数学视频3Blue1Brown是如何制作的插图17

此时打开media文件夹将找到生成的视频,表示的是正方形变成圆形的动画演示:

B站最火数学视频3Blue1Brown是如何制作的插图18

同理,输入命令:

python -m manim example_scenes.py WarpSquare -pl

得到一个向复平面映射的动画:

B站最火数学视频3Blue1Brown是如何制作的插图19

输入命令:

python -m manim example_scenes.py WriteStuff -pl

B站最火数学视频3Blue1Brown是如何制作的插图20

此过程中会提示安装一些程序包,为了加快编译进度,可以点击去掉那个复选框的勾选,默认安装所有需要的程序包。得到的是具有3b1b经典风格的文字动画:

B站最火数学视频3Blue1Brown是如何制作的插图21

输入命令:

python -m manim example_scenes.py UpdatersExample -pl

B站最火数学视频3Blue1Brown是如何制作的插图22

将得到一个数据随图形位置变化的动画:

B站最火数学视频3Blue1Brown是如何制作的插图23

是不是手痒了?23333。

如果安装成功,感谢点赞支持,如果配置遇到什么问题,欢迎在评论区留言~

(注:本教程仅针对Windows 10 64位系统)

3Blue1Brown的B站主页:

https://space.bilibili.com/88461692

B站最火数学视频3Blue1Brown是如何制作的插图24

量子位QbitAI · 头条号签约作者