问题

3Blue1Brown 的视频是怎么制作的?

回答
3Blue1Brown 的视频,说实话,那真的是一种视觉盛宴,更是对数学概念的深度挖掘。看完之后,你会觉得那些枯燥的公式突然活了起来,变得清晰易懂。那么,Grant Sanderson(3Blue1Brown 的幕后英雄)究竟是怎么做到的呢?这背后可不是简单的“点点鼠标”就能完成的。

核心技术:Manim 动画库

你能在 3Blue1Brown 视频里看到的那种流畅、精准、充满数学美感的动画,绝大多数都离不开他自己开发的 Manim(Mathematical Animation Engine)这个强大的 Python 库。这玩意儿,可不是那种傻瓜式的动画制作软件,它更像是一套为数学家量身打造的编程工具。

代码驱动的动画: Manim 的核心在于“代码即动画”。Grant 不是在界面上拖拽形状,而是用 Python 代码来描述每一个画面元素的运动、变化、出现、消失。比如,要画一条直线从 A 点移动到 B 点,他不是直接画出来然后做个位移动画,而是写一段代码,定义这条直线的起始位置、结束位置,以及它在多长时间内完成移动。
数学的精确性: 这点最重要。Manim 的设计理念就是为了数学。它能精准地绘制各种数学图形,比如函数曲线、几何图形、向量场,而且这些图形的生成过程都可以被代码控制。你想让一个点沿着一个复杂的曲线运动?写几行代码,Manim 就能帮你完美实现,不会有丝毫的抖动或变形。
组件化和可复用性: Grant 在 Manim 里设计了各种“Mobject”(Mathematical Object),比如 `Line`、`Circle`、`Square`、`Tex`(用来渲染 LaTeX 公式)等等。这些 Mobject 都可以被组合、变换、并且可以被封装成更复杂的结构。这意味着他可以构建出可复用的动画“模块”,比如一个用来展示函数图像的通用框架,或者一个展示向量叠加的动画模板。
控制力与灵活性: 对于 Grant 这样对数学有着深刻理解的人来说,Manim 提供了无与伦比的控制力。他可以精确地控制每个元素的出现时间、速度、轨迹,甚至可以实现一些非常微妙的交互效果,比如一个图形在与另一个图形“碰撞”时发生形变。这种细致入微的控制,是传统动画软件很难做到的。
LaTeX 集成: 数学视频怎么能少了公式?Manim 与 LaTeX 完美集成,可以直接将 LaTeX 代码渲染成精美的数学公式,并让这些公式以动画的形式出现、组合、变形。这让他的视频看起来既专业又充满学术感。

制作流程:脑力劳动 + 代码实现 + 渲染

简单来说,一个 3Blue1Brown 视频的诞生,大概经历这么几个阶段:

1. 概念构思与数学推导 (Grant 的大脑): 这是最核心、也最耗费心力的一步。Grant 会深入研究一个数学概念,比如微积分、线性代数、傅里叶变换等等。他会思考如何用最直观、最优雅的方式将其呈现出来。这不仅仅是复述知识,更是一种再创造,他会找到连接概念之间的微妙联系,设计出能够触发“啊哈!”时刻的动画演示。这个过程可能需要大量的草稿、纸面推导、以及反复的思考。

2. 脚本撰写与动画设计 (Grant 的大脑 + Manim 代码): 当概念清晰后,Grant 就会开始“翻译”他的想法到 Manim 代码。他会规划每一帧的画面,思考:
要展示什么?(一个函数、一个向量、一个空间?)
如何出现?(是渐显、是绘制、是变形?)
如何运动?(线性运动、曲线运动、旋转、缩放?)
如何与画面中的其他元素互动?(比如一个点沿着曲线移动,当它经过某个区域时,颜色发生变化。)
公式和文字何时何地出现?(并且以什么方式出现?)

这就像是在写一段非常精密的“数学动作剧”的剧本,只不过剧本是用 Python 代码写的。他需要不断地调试代码,预览动画效果,修改参数,直到达到他想要的效果。这个过程可能非常耗时,尤其是一些复杂的动画,可能需要花费数小时甚至数天来编写和调试。

3. 录音与配乐 (Grant 的声音 + 音乐): 在动画制作的同时,Grant 会为视频录制旁白。他的讲解风格非常清晰、流畅,而且充满热情,能够很好地引导观众理解复杂的数学概念。他还会选择合适的背景音乐,来烘托视频的氛围。

4. 视频渲染与后期 (Manim + 视频编辑软件): 当所有的动画代码都编写完成,并且旁白录制好之后,Manim 就会开始“渲染”视频。这个过程就是将代码描述的每一个画面,通过计算机的处理,转换成真实的图像序列,最终合成为一个完整的视频文件。渲染过程对硬件要求很高,尤其是一些高分辨率、长时长的视频。
渲染: Manim 会将每一个画面“绘制”出来,并按照设定的帧率生成图片序列。
音频合成: 将录制好的旁白和音乐与渲染出的视频画面进行合成。
可能的后期编辑: 虽然 Manim 已经非常强大,但有时 Grant 可能还会使用一些传统的视频编辑软件(如 Final Cut Pro 或 Adobe Premiere)进行一些细微的调整,比如添加一些转场效果,或者对音量进行微调。

为什么 3Blue1Brown 的视频如此特别?

深度与广度: Grant 不仅仅是在展示动画,他是在通过动画来探索数学。他总能从一个全新的角度去理解和阐释概念,让你看到数学背后隐藏的美感和逻辑。
视觉化的力量: 很多抽象的数学概念,仅仅通过文字和公式是很难理解的。3Blue1Brown 的动画将这些抽象的东西变得具体、生动,让观众能够“看到”数学是如何运作的。
耐心和细节: 每一帧动画都凝聚着 Grant 的心血。他对细节的极致追求,使得视频的整体观感非常流畅、专业,并且充满了“质感”。
开放的工具: Grant 将 Manim 开源,也让更多对数学可视化感兴趣的人能够参与进来,这极大地推动了数学社区在可视化方面的进步。

总而言之,3Blue1Brown 的视频制作,是一个将深厚的数学功底、精湛的编程技巧、以及独到的教学理念完美结合的过程。它不是“简单”的动画制作,而是一种数学表达的艺术。 Grant 真的做到了用代码“雕刻”数学,并将其以最动人的方式呈现给世界。

网友意见

user avatar

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


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

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


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

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

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

anaconda.com/distributi 建议选择安装Python 3.7 version,具体安装步骤网上有很多。


除此之外,还要下载:

  1. manimhttps://github.com/3b1b/manim,选择clone or download,然后Download ZIP,解压后到一个合适的位置(路径中不要包含中文!),即可使用(此为manim动画引擎所包含的全部文件);
  2. miktexmiktex.org/download,直接安装即可,(安装路径中不要包含中文!)(此为windows平台下的Tex套件,TeX 是一种排版语言,主要用于处理视频中包含的文字信息);
  3. ffmpegDownload FFmpeg,下载好后,放到一个合适的路径下(路径中不要包含中文!),解压后将../bin/目录添加进用户环境变量(见后图)(此为音视频流处理软件)

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

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

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

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


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

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

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

在命令行中分别输入下列命令,并回车运行(注意并不需要版本号完全与下面图中所示的完全一致,因为随着时间推移会有版本的更新):

       python --version     
       latex --version     
       xelatex --version     
       ffmpeg -version     


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


打开前面下载并解压后的 manim 文件夹,该文件夹的路径就称为 manim的根目录(注意,由于manim的更新,文件夹中的内容可能会和下图中所示的有些许不一致,但可以放心这些细微的差别一般不会影响后面使用),在该根目录中新建一个空白文件夹“media”,并在该根目录中新建一个名字为“MEDIA_DIR.txt”的.txt文件。


打开"MEDIA_DIR.txt",输入刚刚新建的"media"文件夹所在的路径并保存,注意最后的“”别漏了。

回到 Anaconda Prompt 中,输入:

       cd <manim 的根目录>     

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


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

       python -m pip install -r requirements.txt     

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

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

       conda install vs2015_runtime     

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

       conda install pycairo     

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

       python -m manim example_scenes.py SquareToCircle -pl     

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

       pip install <pack name>     

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

       pip install pyreadline     

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

       python -m manim example_scenes.py SquareToCircle -pl     

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


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


同理,输入命令:

       python -m manim example_scenes.py WarpSquare -pl     

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


输入命令:

       python -m manim example_scenes.py WriteStuff -pl     

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

注释:如果生成文字的过程当中出现 .svg 文件无法生成的情况,以管理员模式分别运行一下几条命令之后再运行上述命令(如果没有出现错误则不必运行,主要原因是 Miktex 会自动安装最新版本的 dvisvgm 导致版本冲突,为了避免冲突,最好不要单独安装 dvisvgm):

  • regsvr32 MiKTeX209-core-PS.dll
  • regsvr32 MiKTeX209-core.dll
  • regsvr32 MiKTeX209-packagemanager-PS.dll
  • regsvr32 MiKTeX209-packagemanager.dll



输入命令:

       python -m manim example_scenes.py UpdatersExample -pl     

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


是不是手痒了?23333。

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

<本教程仅针对Windows 10 64位系统>


3B1B 动画制作教程持续更新中...

更多内容请关注知乎专栏:


类似的话题

  • 回答
    3Blue1Brown 的视频,说实话,那真的是一种视觉盛宴,更是对数学概念的深度挖掘。看完之后,你会觉得那些枯燥的公式突然活了起来,变得清晰易懂。那么,Grant Sanderson(3Blue1Brown 的幕后英雄)究竟是怎么做到的呢?这背后可不是简单的“点点鼠标”就能完成的。核心技术:Man.............
  • 回答
    3Blue1Brown:一场关于数学之美的视觉盛宴在浩瀚的互联网海洋中,YouTube 上的 3Blue1Brown 频道犹如一座精心雕琢的数学艺术馆,吸引着无数求知若渴的灵魂。由 Grant Sanderson 创立并运营的这个频道,以其独特而富有魅力的教学方式,将抽象的数学概念转化为令人惊叹的视.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有