manim 的基础操作
当我们完成了manim的安装后,我们使用 manimgl example_scenes.py 命令来查看manim的安装,当执行此命令后,系统会提示需要选择哪个场景来运行,毕竟manim是使用场景来区分每个代码类,当我们选择其对应的场景后,若manim安装完全正确,此时屏幕上会弹出一个运行窗口,实时渲染代码生成的视频,当然你也可以从cmd窗口中看到当前执行的场景特效,具体执行代码如下:
1 | manimgl example_scenes.py |
在执行代码时,我们可以通过如下按键查看不同视角的代码视频
- 滚动鼠标中键可上下移动屏幕。
- 在滚动鼠标中键的同时按住Z键,可缩放屏幕。
- 按住s键并移动鼠标,可平移屏幕。
- 按住d键并移动鼠标,可改变三维视角。
- 最后,可以通过按 q键,关闭窗口并退出程序。
![SurfaceExample.png](https://s2.loli.net/2022/04/27/GHV8qcitSXvD5MZ.png)
manim操作
manim 的特殊CLI 标签
![GraphExample.png](https://s2.loli.net/2022/04/27/FBoV9iRqrWaCxHt.png)
manim
通过简单的代码指令manimgl example_scenes.py GraphExample,便可以运行example_scenes.py 代码下的GraphExample场景,此时我们只能通过程序打开的窗口查看实际运行的效果,但是我们若想另存为视频或者图片,该如何操作那?
manim为我们提供了很多有用的flag标签,我们可以在执行以上代码指令后面添加我们 需要的CLI标签,以便能够达到我们想要的效果
1 | flag 缩写 功能 |
flag | 缩写 | 功能 |
---|---|---|
—help | -h | 显示帮助信息并退出 |
—write | -w | 将场景渲染为电影文件 |
—skip_animations | -s | 调到最后一帧 |
—low_quality | -l | 以低质量渲染 |
—medium_quality | -m | 以中等质量渲染 |
—hd | 以1080p质量渲染 | |
—uhd | 4k质量渲染 | |
—full_screen | -f | 全屏显示窗口 |
—save_pngs | -g | 将每一帧保存为png |
—save_as_gif | -i | 将视频保存为gif |
—transparent | -t | 渲染为带有Alpha通道的电影文件 |
—quiet | -q | 消去视频声音 |
—write_all | -a | 从文件中写入所有场景 |
—open | -o | 完成后自动打开保存的文件 |
—finder | 在finder中显示输出文件 | |
—config | 自动配置指南 | |
—file_name FILE_NAME | 电影或图像文件的名称 | |
—start_at_animation_number | 不是从第一个动画开始渲染,而是从另一个动画开始渲染 | |
—resolution RESOLUTION | -r | 分辨率,以“W×H”格式,如,1920×1080 |
—color COLOR | 背景颜色 | |
—leave_progress_bars | 在终端中显示进度条 | |
—video_dir VIDEO_DIR | 写视频的目录 | |
flag标签
manim 的custom_config配置文件
当我们安装完成manim后,manim引擎会自动建立一个默认的配置文件default_config.yml,此文件配置了一些我们常用的配置,当然若自己想设计一个属于自己的配置文件,可以在脚本同目录下建立一个custom_config.yml配置文件,当代码运行时,会首先选择custom_config.yml配置进行系统的配置运行,否则使用默认配置文件。
1 | manim/ |
配置文件中定义了不同的使用功能,主要代码如下:
1 | directories: |
manim
- mirror_module_path(True或False) 是否在output路径下创建一个以运行文件名称命名的文件夹,并将输出(images/ 或videos/)保存在其中。
- output输出文件路径,视频将保存在其videos/下的文件夹中,图片将保存在其images/下的文件夹中。例如,如果你设置output为”/…/manim/output”和 mirror_module_path为False,那么你Scene1在代码文件中导出并保存了最后一帧,那么最终的目录结构将是这样的:
1 | manim/ |
但是如果你设置mirror_module_path为True,目录结构将是:
1 | manim/ |
- raster_images用于存储代码中使用的光栅图像的目录(包括 .jpg、.png和.gif),将由ImageMobject读取.
- vector_images用于存储代码中使用的矢量图的目录(包括 .svg和.xdv),将由SVGMobject读取.
- sounds用于存储要使用的声音文件的目录Scene.add_sound()(包括.wav和.mp3)。
- temporary_storage存放临时生成的缓存文件的目录,包括 Tex缓存、Text缓存和对象点的存储。
manim实例
tex
- executable用于编译 LaTeX 的可执行程序(latex)xelatex -no-pdf
- template_file使用的 LaTeX 模板,在 manimlib/tex_templates
- intermediate_filetype编译后生成的中间向量文件的类型
- text_to_replace模板中要替换的文本
universal_import_line
导入直接进入交互模式时需要执行的行。
style
- font文本的默认字体
- background_color默认背景色
window_position
播放窗口在显示器上的相对位置(两个字符,第一个字符表示上(U)/中(O)/下(D),第二个字符表示左(L)/中(O)/右(R) ))。
break_into_partial_movies
如果设置为True,那么很多小文件将对应于每个写入Scene.play和Scene.wait调用,然后这些文件将被合并,以形成完整的场景。
camera_qualities:输出视频的质量
- low低质量(默认为 480p,15帧)
- medium中等质量(默认为 720p,30帧)
- high高质量(默认为 1080p,30帧)
- ultra_high超高画质(默认为 4K ,60帧)
- default_quality默认质量(以上四种之一)
当然,我们在运行manim的时候主要是一个预览的功能,这里default_quality建议选择low,这样会提高代码运行效率,最后我们输出视频时可以加flag标签来控制视频的输入质量,例如
1 | manimgl example_scenes.py GraphExample -w --uhd |
本期我们分享了manim的基础操作与配置,后期我们将分享manim动画的基础知识,打造属于自己的manim动画效果
![manim.jpg](https://s2.loli.net/2022/04/27/RGosPMrlmqiL1Fc.jpg)