python中强大、灵活的动画引擎manim安装及使用

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编程,让大家既能学习一种编程语言又能提高英语能力。

一方面,我们把编程作为一种英语使用环境,在编程中学习英语,提高英语学习效率。

另一方面,英语是编程不能回避的一道坎。大量的编程文档、函数的名称、函数的注释、类的名称、类的注释、新技术、新功能的发布等等,都使用英语。掌握好英语才能让我们在编程中游刃有余。

如果觉得本文有帮助请点赞、收藏。

如有疑问请在下面留言。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容