配置¶
影片代码
import manimgx as m
m.config.pixel_width, m.config.pixel_height = 1080, 1920
class ConfigurationHero(m.Scene):
def construct(self) -> None:
frame = m.Rectangle(
width=m.config.frame_width - 0.2,
height=m.config.frame_height - 0.2,
color=m.BLUE,
)
square = m.Square(side_length=8, color=m.YELLOW).scale(0.97)
label = m.Text("1080 × 1920", font_size=56)
self.play(m.Create(frame), m.Create(square), m.Write(label))
self.wait()
m.config 持有每个场景制作时所用的内容:视频以像素计的尺寸、它的帧率、它的背景,以及帧以单位计的尺寸。在 import manimgx as m 之后、场景制作之前设置它;命令行的选项也会设置它(-r 1080x1920、--fps 30)。
帧具有视频的形状,它的短边为 8 个单位:宽视频显示约 14.2 × 8 个单位,高视频显示 8 × 14.2,而中间的 8 × 8 正方形在两者中都存在。
m.config
¶
每个场景创建与渲染所用的配置,以 m.config 访问:一个
Config。在创建场景之前设置其字段:
m.config.pixel_width, m.config.pixel_height = 1280, 720。
Config
¶
场景创建与渲染所用的配置:视频的尺寸、帧率和背景,以及画面在场景单位中的尺寸。
该配置只有一个实例:config。在创建场景之前设置其字段:
场景的摄像机以及填满画面的 mobject 在创建时从该配置获取各自的尺寸和背景,
render 在启动时获取视频的尺寸和帧率。它也可以像
Manim 代码那样以字典方式读取和设置:config["frame_width"]、
config["pixel_height"] = 720。
画面具有视频的宽高比,其短边为 8 个单位:宽屏视频(16:9)显示约 14.2 × 8 个单位, 竖屏视频(9:16)显示 8 × 14.2。因此,能放入中央 8 × 8 正方形的内容, 在两种比例下都能以相同尺寸完整显示。
pixel_width
¶
视频的宽度,以像素为单位(默认 1920)。
pixel_height
¶
视频的高度,以像素为单位(默认 1080)。对于竖屏视频(9:16),应将其设为
较大的值:config.pixel_width, config.pixel_height = 1080, 1920。
frame_rate
¶
影片每秒包含的帧数(默认 60):第 k 帧恰好在 k / frame_rate 秒处显示场景。
视频要求该值为整数。
simulation_rate
¶
模拟时钟每秒滴答的次数(默认 60)。
非流的时间更新器以模拟方式运行:它在此时钟的每次 滴答以及每次 play 和 wait 结束时步进,从不在帧上步进,因此在任何帧率下都执行 相同的步进,帧所显示的是其最后一次步进留下的状态。当更新器处于场景中时, 场景会计算每一次滴答。在每秒 60 帧时,每一帧恰好是一次滴答,因此滴答不产生 额外开销;在能整除 60 的帧率(10、12、15、20、30)下,每一帧也恰好落在 一次滴答上。
background_color
¶
背景的颜色(默认黑色)。
background_opacity
¶
背景的不透明度,取值范围 0 到 1(默认 1)。
frame_height
¶
画面的高度,以场景单位表示。除非另行设置,画面的短边为 8 个单位: 宽屏视频的画面高为 8,竖屏视频的画面在其宽为 8 时由宽高比决定高度 (9:16 时约 14.2)。画面的宽度由视频的宽高比决定。
源码
manimgx\config.py
frame_width
¶
frame_x_radius
¶
frame_y_radius
¶
top
¶
bottom
¶
right_side
¶
left_side
¶
aspect_ratio
¶
background
¶
背景的颜色,以 ManimColor 表示。