manim官方文档 _ 输出设置 _ 汉化 | 推荐了解即可。

本文将重点介绍如何理解 manim 的输出文件和一些可用的主要命令行标志.

备注 : 本教程承接 Quickstart 教程,因此请在开始本教程之前阅读 Quickstart 教程。

manim 输出文件

此时,您刚刚执行了以下命令。

manim -pql scene.py SquareToCircle

让我们一步步剖析刚才发生的一切。首先,该命令执行 manim 文件 scene.py,其中包含我们的动画代码。此外,这条命令还告诉 manim 要渲染的场景,在本例中是 SquareToCircle。这是必要的,因为一个场景文件可能包含多个场景。接下来,-p 标志告诉 manim 在渲染完成后播放场景,-ql 标志告诉 manim 以低质量渲染场景。

视频渲染完成后,您会看到 manim 生成了一些新文件,项目文件夹如下所示。

project/
├─scene.py
└─media
  ├─videos
  |  └─scene
  |     └─480p15
  |        ├─SquareToCircle.mp4
  |        └─partial_movie_files
  ├─text
  └─Tex

有不少新文件。主要输出文件位于 media/videos/scene/480p15/SquareToCircle.mp4 文件夹中。默认情况下,media 文件夹将包含 manim 的所有输出文件。media/videos 子文件夹包含已渲染的视频。在其中,你会发现每个不同质量的视频都有一个文件夹。在我们的例子中,由于使用了 -l 标志,视频是以每秒 15 帧、480 分辨率从 scene.py 文件生成的。因此,输出结果可以在 media/videos/scene/480p15 文件夹中找到。附加文件夹 media/videos/scene/480p15/partial_movie_files 以及 media/textmedia/Tex 包含 manim 内部使用的文件。

manim -pqh scene.py SquareToCircle

表示低质量的 -ql 标志已被表示高质量的 -qh 标志所取代。由于我们使用了 -p 标志,Manim 渲染该文件的时间将大大延长,而且渲染完成后还会播放该文件。输出结果应该是这样的

文件夹结构应如下所示。

project/
├─scene.py
└─media
  ├─videos
  | └─scene
  |   ├─480p15
  |   | ├─SquareToCircle.mp4
  |   | └─partial_movie_files
  |   └─1080p60
  |     ├─SquareToCircle.mp4
  |     └─partial_movie_files
  ├─text
  └─Tex

Manim 创建了一个新文件夹 media/videos/1080p60,对应高分辨率和每秒 60 帧。你可以在其中找到新的 SquareToCircle.mp4 以及相应的部分电影文件。
当在一个项目中使用多个场景并尝试多种分辨率时,输出目录的结构将使所有视频井井有条。
此外,当添加 -s 标志时,manim 还可以输出场景的最后一帧。这是快速预览场景的最快选项。相应的文件夹结构如下

project/
├─scene.py
└─media
  ├─images
  | └─scene
  |   ├─SquareToCircle.png
  ├─videos
  | └─scene
  |   ├─480p15
  |   | ├─SquareToCircle.mp4
  |   | └─partial_movie_files
  |   └─1080p60
  |     ├─SquareToCircle.mp4
  |     └─partial_movie_files
  ├─text
  └─Tex

使用 -s 保存最后一帧画面时,可结合不同分辨率的标记,例如 -s -ql-s -qh

分段输出

除了电影输出文件外,还可以使用分段。每个片段都有自己的输出视频。两个片段之间的切换可以这样设置:

def construct(self)# 播放第一个动画...
    # 开始时不需要章节,因为它会自动创建
    self.next_section()
    # 播放更多动画...
    self.next_section("this is an optional name that doesn't have to be unique")
    # 播放更多动画...
    self.next_section("this is a section without any animations, it will be removed")

两个剪辑之间的所有动画都会串联成一个输出视频文件。请注意,每个部分至少需要一个动画。例如,这样就无法创建输出视频:

def construct(self):
    self.next_section()
    # 此部分没有任何动画,将被移除
    # 但不会出错
    # 如果你愿意,可以随意管理你的空部分群
    self.add(Circle())
    self.next_section()

解决这个问题的方法之一是稍作等待:
要为每个部分创建视频,必须在 Manim 调用中添加 --save_sections 标记,如下所示:

manim --save_sections scene.py

这样,媒体文件夹就会变成这样:

media
├── images
│   └── simple_scenes
└── videos
    └── simple_scenes
        └── 480p15
            ├── ElaborateSceneWithSections.mp4
            ├── partial_movie_files
            │   └── ElaborateSceneWithSections
            │       ├── 2201830969_104169243_1331664314.mp4
            │       ├── 2201830969_398514950_125983425.mp4
            │       ├── 2201830969_398514950_3447021159.mp4
            │       ├── 2201830969_398514950_4144009089.mp4
            │       ├── 2201830969_4218360830_1789939690.mp4
            │       ├── 3163782288_524160878_1793580042.mp4
            │       └── partial_movie_file_list.txt
            └── sections
                ├── ElaborateSceneWithSections_0000.mp4
                ├── ElaborateSceneWithSections_0001.mp4
                ├── ElaborateSceneWithSections_0002.mp4
                └── ElaborateSceneWithSections.json

如您所见,每个部分都会在 sections 目录中接收自己的输出视频。这里的 JSON 文件包含每个部分的一些有用信息。

第三方应用程序(如演示系统或自动视频编辑工具)可以使用这些数据。
您还可以跳过渲染属于该部分的所有动画:

def construct(self):
    self.next_section(skip_animations=True)
    # 播放一些应跳过的动画...
    self.next_section()
    # 播放一些不会被跳过的动画...

另一些命令行指令

执行命令时,会指定要渲染的场景。现在不需要了。当单个文件只包含一个场景类时,它将只渲染该场景类。如果单个文件包含多个场景类,manim 会让您选x择一个场景类。如果您的文件包含多个场景类,而您又想渲染所有场景类,可以使用 -a 标志。

如前所述,-ql 指定了较低的渲染质量(854x480 15FPS)。这看起来不太好,但对于快速原型设计和测试非常有用。其他指定渲染质量的选项有 -qm、-qh、-qp 和 -qk,分别代表中等(1280x720 30FPS)、高(1920x1080 60FPS)、2k(2560x1440 60FPS)和 4k 质量(3840x2160 60FPS)。

一旦动画渲染完成,-p 标志就会播放动画。如果想在动画所在位置打开文件浏览器,而不是播放动画,可以使用 -f 标志。也可以省略这两个标记。

最后,默认情况下 manim 会输出 .mp4 文件。如果你想将动画转换成 .gif 格式,请使用 --format gif 标志。输出文件将与 .mp4 文件放在同一文件夹中,文件名相同,但扩展名不同。

以上是对一些最常用的命令行标记的快速回顾。如需全面了解所有可用标记,请参阅 Manim 配置系统专题指南。thematic guide on Manim’s configuration system.

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
betterjoy_v6.3_x64汉化版是一款兼容Windows操作系统的游戏手柄驱动和汉化软件。它能够使得玩家在使用手柄进行游戏时获得更好的操控体验。 首先,betterjoy_v6.3_x64汉化版具有易于安装和使用的特点。用户只需简单地下载安装程序并按照界面提示进行操作,即可完成驱动程序的安装和手柄的连接设置。同时,软件界面提供了简明的说明和指导,使得初学者也能够轻松上手。 其次,该软件支持多种类型的手柄。不论是Xbox One手柄、Nintendo Switch Pro手柄或者PlayStation 4手柄,都可以与该驱动程序兼容,使得用户可以根据自己的喜好和需要来选择手柄类型。这对于拥有不同类型游戏主机的用户而言尤为方便。 此外,betterjoy_v6.3_x64汉化版还提供了汉化功能,可以将游戏手柄的界面和指令、游戏内部设置汉化为中文,方便中文用户的操作和理解。这对于不熟悉英文或者更喜欢使用中文的用户而言,无疑是一大福利。 最后,该软件经过专业的开发和测试,具有良好的稳定性和兼容性。它可以确保玩家在游戏过程中不会出现延迟或者不稳定的情况,保证了游戏的流畅性和乐趣性。 总之,betterjoy_v6.3_x64汉化版是一款功能全面且易于使用的游戏手柄驱动和汉化软件。它为玩家提供了更好的操控体验,尤其适合中文用户使用。无论是游戏爱好者还是新手玩家,都可以通过该软件来获得更畅快的游戏体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值