3个Manim插件,搭一支60秒教学动画
【免费下载链接】manimA community-maintained Python framework for creating mathematical animations.项目地址: https://gitcode.com/GitHub_Trending/man/manim
要把一章讲稿变成能放进课件的动画,Manim——社区维护的 Python 数学动画框架——已经能把公式、坐标和几何动画写出来,缺的往往只是几类现成组件。Manim插件就是补这块缺口的:装两个,就能让魔方转起来、让图表动起来,再叠加公式标注,一支 60 秒的短片就齐了。读完这篇,你直接能装好环境、挑对插件、渲染出第一支带 3D 元素的动画。
从安装到出片的最短路径
先让动画跑起来,原因回头再看:
- 装好 Python:
uv python install(官方推荐用 uv 管依赖,装插件时uv add比pip install省心) - 准备你的场景代码,仓库里的示例可以直接参考:
git clone https://gitcode.com/GitHub_Trending/man/manim - 安装 Manim 和第一个插件:
uv add manim manim-rubikscube - 在
manim.cfg里启用插件模块:
[CLI] plugins = manim_rubikscube- 渲染并预览示例场景:
manim -pqh example_scenes/basic.py OpeningManim
画面出来之前不用研究任何配置。-p是渲染完直接弹播放,-qh是高质量输出。
按你要做的事选扩展
教学演示(Manim教学动画)
| 扩展名 | 解决什么问题 | 安装命令 | 一句话上手门槛 |
|---|---|---|---|
| manim-rubikscube | 三阶魔方的旋转、打乱、还原动画,讲群论和组合概念 | uv add manim-rubikscube | 低:造一个魔方对象就能转 |
数据可视化(Manim图表动画)
| 扩展名 | 解决什么问题 | 安装命令 | 一句话上手门槛 |
|---|---|---|---|
| manim-chart | 柱状、折线、散点等统计图表的逐个动画生成 | uv add manim-chart | 中:要熟悉基本 Scene 流程 |
公式排版
| 扩展名 | 解决什么问题 | 安装命令 | 一句话上手门槛 |
|---|---|---|---|
| manim-texenhance | 公式高亮、分步推导、交互式注解 | uv add manim-texenhance | 中:会写 Tex 就能用 |
物理仿真(Manim物理模拟)
| 扩展名 | 解决什么问题 | 安装命令 | 一句话上手门槛 |
|---|---|---|---|
| manim-physics | 重力、碰撞、弹簧关节等 2D 刚体模拟 | uv add manim-physics | 中:场景类需要继承它的物理基类 |
自建扩展
| 扩展名 | 解决什么问题 | 安装命令 | 一句话上手门槛 |
|---|---|---|---|
| manim-plugintemplate | 插件项目脚手架:目录结构、entry point、文档模板 | uv add manim-plugintemplate | 高:需要自己写 entry point 并在 manim.cfg 启用 |
选型很直接:只做一件事,就装一个。讲魔方只装 manim-rubikscube,做数据片只装 manim-chart;两个都要,manim.cfg 里逗号分隔即可(配置写法见上一步)。下面这段是魔方加图表的最小起步:
from manim import * from manim_rubikscube import Rubikscube, RotateFace from manim_chart import BarChart class Start(Scene): def construct(self): cube = Rubikscube() chart = BarChart([1, 3, 2, 5]) self.add(cube) self.play(RotateFace(cube, "U", angle=180), FadeIn(chart))三个插件串一支60秒短片
一条 60 秒科普片的叙事线:魔方抓开场、图表讲数据、公式收结尾。
- 第 0–15 秒,你看到的是:魔方转场入场,上层旋转 180° 定格,观众注意力被抓住。
- 第 15–45 秒,你看到的是:魔方缩到侧边,柱状图一根根长出来,数据对比一目了然。
- 第 45–60 秒,你看到的是:图表淡出,一行关键公式居中渐显并高亮变量,画面定格。
全程代码不长:
from manim import * from manim_rubikscube import Rubikscube, RotateFace from manim_chart import BarChart from manim_texenhance import HighlightedTex class Sixty(Scene): def construct(self): cube = Rubikscube() self.add(cube) self.play(RotateFace(cube, "U", angle=180)) self.play(cube.animate.scale(0.4).to_corner(UL), FadeIn(BarChart([1, 3, 2, 5]))) self.play(FadeOut(cube), FadeOut(BarChart([1, 3, 2, 5]))) self.play(Write(HighlightedTex(r"\int_a^b f(x)\,dx", highlight=["f(x)"])))manim.cfg 里把plugins = manim_rubikscube, manim_chart, manim_texenhance补全,然后manim -qh your_file.py Sixty,一条 1080p 的成品短片就躺在 media 目录里。
新手最容易踩的4个坑
- 🔧魔方可用、图表对象却是空的→ 渲染器不匹配 → 用
manim -pql(Cairo 渲染)跑一遍,或查manim.config.renderer后按文档切换 - ⚠️装了插件却没反应→ 配置未启用 → 确认 manim.cfg 的
[CLI]段写的是模块名,且名字和安装的一致 - 🤔import 报 ModuleNotFoundError→ 包名不等于模块名 → 别 import
manim-rubikscube,importmanim_rubikscube - 🈶中文公式渲染成方框→ 缺中文字体支持 → 换 Text 指定本机中文字体,或 LaTeX 侧补装 ctex 类宏包
下一步往哪走
- 读懂插件机制和启用规则:plugins.rst
- 想自己写插件,从脚手架模板入手:manim-plugintemplate(plugins.rst 的 Creating Plugins 一节有完整说明)
- 顺手翻翻更新日志,新插件和功能通常先出现在这里:changelog.rst
你的第一个 Manim插件,今天就能跑起来。
【免费下载链接】manimA community-maintained Python framework for creating mathematical animations.项目地址: https://gitcode.com/GitHub_Trending/man/manim
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考