Manim使用心得

manim,使用,心得 · 浏览次数 : 10

小编点评

**Python 模板代码:** ```python class TextMover(Manim.GameObject): def __init__(self, texts): self.texts = texts self.current_text_index = 0 self.current_text = None def construct(self): self.opening() for text in self.texts: self.go_to(text) self.closing() def go_to(self, text): now = self.normal_text(text) if self.current_text is None: now.move_to([0, 1, 0]) else: now.next_to(self.current_text, DOWN) def normal_text(self, text): # 自定义文本渲染函数 pass def close(self): # 动画结束清理等操作 pass ``` **使用方法:** 1. 将文本列表 `texts` 赋值给 `TextMover` 的 `texts` 属性。 2. 创建一个 `TextMover` 对象并调用 `construct` 方法。 3. 在 `go_to` 方法中,将要移动的文本的文本字符串作为参数传递给 `normal_text` 方法。 4. 使用 `play` 方法播放视频。 **注意:** * `normal_text` 方法应该返回一个 `Manim.GameObject` 对象,表示要渲染的文本。 * 你可以在 `go_to` 方法中添加任何你想在视频中执行的操作,例如改变颜色或缩放。 * 可以使用 `self.wait` 方法暂停视频,以便添加任何其他动画或事件。

正文

Manim 使用心得

manim 做视频还是挺方便的。

当然,如果你每一次都从 0 开始写,那么你会崩溃。

所以需要找到自己做视频的风格,以此总结出一套通用的 python 模板代码,然后调用。

例如:

self.clear()
prv = None
for i, text in enumerate(texts):
    now = self.normalText(text)
    if prv is None:
        now.move_to([0, 1, 0])
        self.play(Create(now))
    else:
        now.next_to(prv, DOWN)
        self.play(Create(now))
    prv = now
self.wait(2)

这是用来渲染一串文本的东西。

这样就会方便很多。写代码的时间也会大大减少。

还有固定的结构框架,例如我自己使用的结构:

def construct(self):
        self.opening()
        self.goNext()

        idx = 1
        for title in PARTS:
            self.inSubTile(idx, title)
            idx += 1
            self.__getattribute__(PARTS[title])()
            self.goNext()

        self.closing()

感觉还是非常方便的。每一次只需要修改一点点,然后还可以分块调试渲染,节约微调时间。


关于排版方面,我个人认为这是manim的一大痛点,过于复杂的排版很难搞定……

可能是其画面就只划分为几大格,没有细致的划分的原因。

但是复杂的排版是一定可以简化绕过的……所以就是说这个痛点其实并不痛。


总而说来,manim还是非常方便的。尤其是在分享一些技术的知识点的时候。界面简洁而明了,内容也不是花里胡哨的。非常的 nice。

就是配音方面,也可能是我的打开方式不对,我都是后期利用其它的视频剪辑工具再合成的(雾。

讲道理应该是有设置 background music 的方法才对……


与Manim使用心得相似的内容:

Manim使用心得

# Manim 使用心得 manim 做视频还是挺方便的。 当然,如果你每一次都从 0 开始写,那么你会崩溃。 所以需要找到自己做视频的风格,以此总结出一套通用的 python 模板代码,然后调用。 例如: ```py self.clear() prv = None for i, text in e

【manim动画教程】--目录(完结)

manim是一个生成数学教学视频的动画引擎。 它用编程的方式创建精美的数学动画,让数学更加易懂。 本教程简单介绍了 manim 的基本使用方式,基于 v0.17.2 版本 manim 安装 manim是基于python语言开发的开源框架,是由 3blue1brown 开发的。 本来是他们自己用来制作

【manim动画教程】-- 基本图形

制作数学视频时,各类几何图形是使用最频繁的。 一般来说,常用的几何图形包括:点,线,圆以及多边形。 1. 点 点是最简单图形,也是其他所有图形的基础。 绘制其他任何图形时,都是用点来定位的。 manim中生成一个点很方便,只要给定一个坐标即可。 这里的坐标包含 [x, y, z]3个维度,如果绘制二

【manim动画教程】--相机

相机(Camera)在二维的场景下使用不多,一般在3D场景中提及的比较多。 相机相当于我们看动画的视角,简单来理解的话,相当于我们的眼睛(实际情况会复杂一些,相机还有其他一些辅助功能)。 默认的相机焦点在屏幕的中心位置,相机默认是以俯视的视角查看所有的元素。 之前的介绍的常用动画效果和高级动画效果,

manim边学边做--MathTex

上一篇介绍的SingleStringMathTex主要用来显示只有一行的数学公式,对于复杂的数学公式,可以使用MathTex类。 MathTex类继承自SingleStringMathTex,在其基础之上增加了更多的功能。其实,MathTex是制作数学动画时常用的类,反而SingleStringMa

【manim】之目录动画

概要 最近,结合视频剪辑工具剪映制作短视频时, 如果不是数学相关的内容,使用视频剪辑工具配置字幕,添加图片等等比 manim更加方便。 所以,用 manim封装一个目录的动画,用来配合剪辑工具中的其他资源。 代码封装 基于manim封装一个目录显示的 class。 主要属性就是 titles,也就是

【manim动画教程】-- 文字和公式

manim中提供了两种方式来表示文字信息,一种是 Text系列,一种是 Tex系列。 从目前我自己的使用的体验来看, Text系列在显示文字信息方面,提供了更多的的属性来调整显示效果。如果有大段的文字要排版,或者对文字的显示效果要求高的话,建议使用 Text。 而 Tex系列最大的优势是支持 Lat

manim边学边做--Matrix

在代数问题中,矩阵是必不可少的工具,manim中提供了一套展示矩阵(Matrix)的模块,专门用于在动画中显示矩阵格式的数据。关于矩阵的类主要有4个: Matrix:通用的矩阵 IntegerMatrix:元素是整数的矩阵 DecimalMatrix:元素包含小数的矩阵 MobjectMatrix:

【manim】之滚动字幕

概要 manim 是一个做数学视频的 python 库,这个库功能非常强大。具体可以参考官方介绍:https://github.com/ManimCommunity/manim/ 它本身只是封装数学相关的几何体和一些基础动画,所以,制作视频时,需要进一步封装更复杂的动画来满足视频的要求。最近做的一个

【manim】之圆规动画

概要 前端时间做尺规作图相关的动画的时候,封装了一个圆规的动画,顺便研究了下 manim 库的动画函数。 manim 本身就是做动画的库,所以,基于它封装自定义的动画非常方便。 动画原理 对于单个的元素,manim本身就提供了非常多的动画函数。 比如:创建/消除的动画,移动元素的动画,旋转元素的动画