热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

3Blue1Brown的动画引擎如何配置?

相信很多人都知道3Blue1Brown,这是一个由斯坦福大学的数学系学生GrantSanderson创建的YouTube频道。该频道从独特的视觉角度解说高等数学,内容包括线性代数、

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

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

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

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

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

所以,突然想尝试用一下该基于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,具体按照步骤网上有很多。

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

除此之外,还要下载:

  1. manimhttps://github.com/3b1b/manim,选择clone or download,然后Download ZIP,解压后到一个合适的位置(路径中不要包含中文!),即可使用(此为manim引擎所包含的全部文件);
  2. miktexhttps://miktex.org/download,直接安装即可,(安装路径中不要包含中文!)(此为windows平台下的Tex套件,TeX 是一种排版语言,主要用于处理视频中包含的文字信息);
  3. ffmpeg:Builds – Zeranoe FFmpeg,下载好后,放到一个合适的路径下(路径中不要包含中文!),解压后将../bin/目录添加进用户环境变量(见后图)(此为音视频流处理软件)
  4. dvisvgm:https://dvisvgm.de/Downloads/ ,64位的用户请注意选择64位的安装包,,下载好后,放到一个合适的路径下(路径中不要包含中文!),解压后将../dvisvgm/目录添加进用户环境变量(见后图)(此为可以将dvi转换为高质量svg的软件)。

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

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

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

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

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

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

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

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

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

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

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

python --version

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

latex --version

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

xelatex --version

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

ffmpeg -version

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

dvisvgm --version

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

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

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

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

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

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

回到Anaconda Prompt中,输入:

cd <manim 的根目录>

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

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

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

python -m pip install -r requirements.txt

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

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

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

conda install vs2015_runtime

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

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

conda install pycairo

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

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

python -m manim example_scenes.py SquareToCircle -pl

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

pip install

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

pip install pyreadline

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

python -m manim example_scenes.py SquareToCircle -pl

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

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

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

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

同理,输入命令:

python -m manim example_scenes.py WarpSquare -pl

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

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

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

输入命令:

python -m manim example_scenes.py WriteStuff -pl

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

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

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

输入命令:

python -m manim example_scenes.py UpdatersExample -pl

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

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

《3Blue1Brown的动画引擎如何配置?》
《3Blue1Brown的动画引擎如何配置?》

是不是手痒了?23333。

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

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


推荐阅读
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • Visual Studio Code (VSCode) 是一款功能强大的源代码编辑器,支持多种编程语言,具备丰富的扩展生态。本文将详细介绍如何在 macOS 上安装、配置并使用 VSCode。 ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
  • 大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式
    大类|电阻器_使用Requests、Etree、BeautifulSoup、Pandas和Path库进行数据抓取与处理 | 将指定区域内容保存为HTML和Excel格式 ... [详细]
  • 在Windows系统中安装TensorFlow GPU版的详细指南与常见问题解决
    在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ... [详细]
  • Android中将独立SO库封装进JAR包并实现SO库的加载与调用
    在Android开发中,将独立的SO库封装进JAR包并实现其加载与调用是一个常见的需求。本文详细介绍了如何将SO库嵌入到JAR包中,并确保在外部应用调用该JAR包时能够正确加载和使用这些SO库。通过这种方式,开发者可以更方便地管理和分发包含原生代码的库文件,提高开发效率和代码复用性。文章还探讨了常见的问题及其解决方案,帮助开发者避免在实际应用中遇到的坑。 ... [详细]
  • 本文探讨了利用Python实现高效语音识别技术的方法。通过使用先进的语音处理库和算法,本文详细介绍了如何构建一个准确且高效的语音识别系统。提供的代码示例和实验结果展示了该方法在实际应用中的优越性能。相关文件可从以下链接下载:链接:https://pan.baidu.com/s/1RWNVHuXMQleOrEi5vig_bQ,提取码:p57s。 ... [详细]
  • 【图像分类实战】利用DenseNet在PyTorch中实现秃头识别
    本文详细介绍了如何使用DenseNet模型在PyTorch框架下实现秃头识别。首先,文章概述了项目所需的库和全局参数设置。接着,对图像进行预处理并读取数据集。随后,构建并配置DenseNet模型,设置训练和验证流程。最后,通过测试阶段验证模型性能,并提供了完整的代码实现。本文不仅涵盖了技术细节,还提供了实用的操作指南,适合初学者和有经验的研究人员参考。 ... [详细]
  • Netty框架中运用Protobuf实现高效通信协议
    在Netty框架中,通过引入Protobuf来实现高效的通信协议。为了使用Protobuf,需要先准备好环境,包括下载并安装Protobuf的代码生成器`protoc`以及相应的源码包。具体资源可从官方下载页面获取,确保版本兼容性以充分发挥其性能优势。此外,配置好开发环境后,可以通过定义`.proto`文件来自动生成Java类,从而简化数据序列化和反序列化的操作,提高通信效率。 ... [详细]
  • 利用 Python 管道实现父子进程间高效通信 ... [详细]
  • 在尝试为 Unity 编译一个简单的 Java 库时,运行 `ant jar` 命令后遇到了 Java I/O 异常。具体错误信息为“无法启动程序 ${aAPT},错误代码 2”,这通常表示指定的文件或目录不存在。此问题可能是由于环境配置不正确或路径设置有误导致的。建议检查相关路径和环境变量,确保所有依赖项都已正确安装和配置。 ... [详细]
  • 通过将常用的外部命令集成到VSCode中,可以提高开发效率。本文介绍如何在VSCode中配置和使用自定义的外部命令,从而简化命令执行过程。 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
  • 卓盟科技:动态资源加载技术的兼容性优化与升级 | Android 开发者案例分享
    随着游戏内容日益复杂,资源加载过程已不仅仅是简单的进度显示,而是连接玩家与开发者的桥梁。玩家对快速加载的需求越来越高,这意味着开发者需要不断优化和提升动态资源加载技术的兼容性和性能。卓盟科技通过一系列的技术创新,不仅提高了加载速度,还确保了不同设备和系统的兼容性,为用户提供更加流畅的游戏体验。 ... [详细]
author-avatar
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有