python做动画视频教程_python中强大、灵活的动画引擎manim安装及使用

2023-10-07 13:40

本文主要是介绍python做动画视频教程_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类。

2b27e15c6077

三维波形

编后语

近期在制作Python基础教程视频时,希望能让教程有些新意,原本想使用ppt、或者视频剪辑的方法来做一些特殊效果,经过一番尝试后发现有些功能很难实现。

偶然发现 manim这个模块,研究几个例子后,使用 manim做了一些片头和片尾的动画。确实功能强大、灵活,可以实现非常多的创意,尤其适合程序员使用编程方法来制作创意视频。

我们的Python基础教程通过讲解Python英语教程的方式来学习Python编程,让大家既能学习一种编程语言又能提高英语能力。

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

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

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

如有疑问请在下面留言。

这篇关于python做动画视频教程_python中强大、灵活的动画引擎manim安装及使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/158109

相关文章

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Python内置函数之classmethod函数使用详解

《Python内置函数之classmethod函数使用详解》:本文主要介绍Python内置函数之classmethod函数使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录1. 类方法定义与基本语法2. 类方法 vs 实例方法 vs 静态方法3. 核心特性与用法(1编程客

Python函数作用域示例详解

《Python函数作用域示例详解》本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级,通过具体代码示例,展示了各层级的变量访问规则和特性,对python函数作用域相关知识感兴趣... 目录一、LEGB 规则二、作用域实例2.1 局部作用域(Local)2.2 闭包作用域(Enclos

Linux中压缩、网络传输与系统监控工具的使用完整指南

《Linux中压缩、网络传输与系统监控工具的使用完整指南》在Linux系统管理中,压缩与传输工具是数据备份和远程协作的桥梁,而系统监控工具则是保障服务器稳定运行的眼睛,下面小编就来和大家详细介绍一下它... 目录引言一、压缩与解压:数据存储与传输的优化核心1. zip/unzip:通用压缩格式的便捷操作2.

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

使用Python实现可恢复式多线程下载器

《使用Python实现可恢复式多线程下载器》在数字时代,大文件下载已成为日常操作,本文将手把手教你用Python打造专业级下载器,实现断点续传,多线程加速,速度限制等功能,感兴趣的小伙伴可以了解下... 目录一、智能续传:从崩溃边缘抢救进度二、多线程加速:榨干网络带宽三、速度控制:做网络的好邻居四、终端交互

Python中注释使用方法举例详解

《Python中注释使用方法举例详解》在Python编程语言中注释是必不可少的一部分,它有助于提高代码的可读性和维护性,:本文主要介绍Python中注释使用方法的相关资料,需要的朋友可以参考下... 目录一、前言二、什么是注释?示例:三、单行注释语法:以 China编程# 开头,后面的内容为注释内容示例:示例:四

Python中win32包的安装及常见用途介绍

《Python中win32包的安装及常见用途介绍》在Windows环境下,PythonWin32模块通常随Python安装包一起安装,:本文主要介绍Python中win32包的安装及常见用途的相关... 目录前言主要组件安装方法常见用途1. 操作Windows注册表2. 操作Windows服务3. 窗口操作