Token导航 LogoToken导航

Agent Skill · 开发

manim-animation-cn(马尼姆动画中国)

用于辅助视频生成、动画合成、脚本化剪辑或 Remotion 等视频项目开发。它适合让 Agent 组织镜头、生成素材说明、维护合成代码或排查渲染问题。使用时需要确认分辨率、时长、素材路径和导出格式;涉及外部素材、人物肖像或商业发布时,应先核对版权授权和内容审核要求。

manim-animation-cn 是开发类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为接触敏感数据;许可证为 MIT-0,第三方扫描已通过,按安装量在开发类的 21,746 个 Skill 里排第 5,641。

总安装 5,988周安装 252GitHub Stars 公开资料未说明下载 2,097核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.3

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:manim-animation-cn(马尼姆动画中国)
来源仓库:https://github.com/hzsunzixiang/manim-animation-cn
安装命令:
openclaw skills install manim-animation-cn
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install manim-animation-cn

这个 Skill 是做什么的

开发类 Skill 面向写代码、改代码和排查问题,一般会读写仓库文件,部分还会执行构建或测试命令。

使用 Manim Community 与 manim-voiceover 创建带字幕的数学动画。支持中英文双语旁白同步,适用于教育与科普视频制作。输入公式与自然语言讲解,自动生成矢量动画与时间轴对齐。涉及第三方字体与音频资源时,请确认开源许可与使用范围。

通过 clawhub 安装,运行于 OpenClaw,依赖 Python 环境与渲染引擎。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install manim-animation-cn;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

manim-animation-cn 怎么安装?

在终端执行 openclaw skills install manim-animation-cn。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

manim-animation-cn 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

manim-animation-cn 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

manim-animation-cn 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

manim-animation-cn 用的人多吗?

公开数据是累计安装 5,988 次,近一周安装 252 次,下载 2,097 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

manim-animation-cn 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理开发类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

开发类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
skill-vetter

技能审查员 · OpenClaw

8,779,018986操作浏览器MIT-0通过
ontology

本体论 · OpenClaw

6,636,960576只读MIT-0通过
entra-app-registration

内部应用程序注册 · Codex、Claude

6,631,872764接触敏感数据未明确通过
entra-app-registration

内部应用程序注册 · Codex、Claude

3,757,680201接触敏感数据未明确通过
nano-banana-pro

纳米香蕉专业版 · OpenClaw

3,526,898364接触敏感数据MIT-0有提醒
manim-animation-cn

马尼姆动画中国 · 本页

5,988—接触敏感数据MIT-0通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
manim-animation
description
Create mathematical animations with synchronized voiceover narration and subtitles using Manim Community and manim-voiceover. Use when users want to create animated videos with narration, math animations with voice, educational videos with subtitles, or any request involving Manim scene generation with TTS voiceover. Trigger phrases include: manim animation, math animation, animated video with voice, 数学动画, 动画配音, 动画字幕, manim voiceover, create animation video, or any request to generate narrated mathematical/educational animation videos.
required_tools
install
pip install manim
install
brew install ffmpeg (macOS) / apt install ffmpeg (Linux)
notes
Must include libx264 encoder and libass (for subtitle burn-in)
install
Python 3.9+ required
required_packages
network_access
purpose
Text-to-speech synthesis for voiceover narration
required
false
notes
Default TTS engine. Can be replaced with offline pyttsx3 if network is unavailable.

Manim Animation: 动画 + 配音 + 字幕 生成器

Author: ericksun(孙自翔)

概述

本技能使用 Manim Community 生成数学/教育动画,并通过 manim-voiceover 插件集成 TTS 语音旁白和同步字幕。所有处理均在本地运行,无需付费 API。

核心能力:

  • 🎬 动画生成:使用 Manim 创建数学公式、几何图形、图表等动画
  • 🎙️ 语音旁白:通过 manim-voiceover 插件集成 TTS,动画与语音自动同步
  • 📝 字幕系统:画面内字幕(Manim Text)+ SRT 外挂字幕(ffmpeg 烧录)
  • 🔄 一键流水线:描述需求 → 生成代码 → 渲染视频 → 烧录字幕

TTS 引擎(优先 gTTS):

  • gTTS(推荐):Google 免费 TTS,支持中文,无需 API Key
  • pyttsx3(备选):离线 TTS,无需网络
  • Azure/OpenAI/ElevenLabs(高质量):需付费 API Key

前置条件

🔍 一键环境检查

首次使用前,运行环境检查脚本确认所有依赖已就绪:

python3 {SKILL_DIR}/scripts/check_environment.py

该脚本检查:

  • ✅ Manim Community 安装(manim 命令)
  • ✅ manim-voiceover + gTTS 插件
  • ✅ FFmpeg + libx264 编码器(Manim 硬编码依赖,必需)
  • ✅ FFmpeg + libass(用于 SRT 字幕烧录)
  • ✅ Python 依赖
  • ✅ 中文字体可用性

必需的系统工具

  • Manim Community:pip install manim
  • FFmpeg(含 libx264 + libass):Manim 硬编码使用 libx264 编码器渲染视频,字幕烧录需要 libass

- macOS(Homebrew):brew install ffmpeg(默认包含 x264 和 libass) - macOS(Conda):conda install x264 -c conda-forge(⚠️ conda 的 ffmpeg 默认不含 libx264) - Linux:sudo apt install ffmpeg libx264-dev libass-dev

  • Python 3.9+ 及 pip

必需的 Python 包

# Core
pip install manim

# Voiceover + TTS
pip install "manim-voiceover[gtts]"

可选(增强功能)

  • pyttsx3:离线 TTS(pip install "manim-voiceover[pyttsx3]")

⚡ 快速安装

pip install manim "manim-voiceover[gtts]"

# macOS (Homebrew) — 推荐,自带 libx264 + libass
brew install ffmpeg

# macOS (Conda) — 需额外安装 x264,否则 Manim 渲染会报错 UnknownCodecError: libx264
conda install x264 -c conda-forge

# 验证 ffmpeg 支持 libx264 和 libass
ffmpeg -codecs 2>&1 | grep libx264     # 应显示 encoders: libx264
ffmpeg -filters 2>&1 | grep subtitles  # 应显示 subtitles filter

工作流程

快速开始 — 一键运行

用户描述需求后,使用流水线脚本一键完成:

python3 {SKILL_DIR}/scripts/run_pipeline.py \
    --scene_file <场景文件.py> \
    --scene_name <SceneName> \
    --quality high \
    --burn_subtitles

常用选项:

选项默认值说明
--scene_file必需Manim 场景 Python 文件
--scene_name必需场景类名
--qualityhigh渲染质量:low/medium/high/production
--burn_subtitlesFalse是否用 ffmpeg 烧录 SRT 字幕
--speed1.35播放倍速(如 1.35 表示加速到 1.35 倍,设为 1.0 则不加速)
--previewFalse渲染后自动打开预览
--output_dir./output输出目录

完整工作流程(4 步)

步骤 1:理解用户需求并生成 Manim 场景代码

根据用户描述,生成 Manim 场景 Python 文件。场景代码需遵循以下模式:

无配音模式(纯动画):

from manim import *

class MyScene(Scene):
    def construct(self):
        title = Text("标题", font_size=48, color=BLUE)
        self.play(Write(title))
        self.wait(1)

配音模式(动画 + 语音 + 字幕):

from manim import *
from manim_voiceover import VoiceoverScene
from manim_voiceover.services.gtts import GTTSService

class MyScene(VoiceoverScene):
    def _make_subtitle(self, text_str):
        """Create subtitle with dark background at bottom of screen."""
        sub = Text(text_str, font_size=22, color=WHITE, weight=BOLD)
        # Prevent subtitle from overflowing left/right edges
        max_width = config.frame_width - 1.0  # 0.5 margin each side
        if sub.width > max_width:
            sub.scale_to_fit_width(max_width)
        sub.to_edge(DOWN, buff=0.4)
        bg = BackgroundRectangle(sub, color=BLACK, fill_opacity=0.6, buff=0.15)
        return VGroup(bg, sub)

    def construct(self):
        self.set_speech_service(GTTSService(lang="zh"))

        sub_text = "欢迎来到演示"
        with self.voiceover(text=sub_text) as tracker:
            sub = self._make_subtitle(sub_text)
            title = Text("演示", font_size=48)
            self.play(Write(title), FadeIn(sub), run_time=tracker.duration)

        self.play(FadeOut(sub))
        self.wait(0.3)

关键模式 — voiceover 上下文管理器:

with self.voiceover(text="语音文本") as tracker:
    # tracker.duration = TTS 语音时长(秒)
    # 在此块内的动画会与语音自动同步
    self.play(SomeAnimation(), run_time=tracker.duration)

with self.voiceover(text=...) as tracker 做了三件事:

  1. 调用 TTS 引擎生成语音
  2. 自动计算语音时长
  3. 提供 tracker.duration 让动画与语音同步

字幕最佳实践:

  • 画面内字幕:使用 _make_subtitle() 辅助函数,在屏幕底部显示带暗背景的白色粗体文字
  • 防止溢出:_make_subtitle() 会自动检测字幕宽度,超出画面时等比缩放(scale_to_fit_width),使用 font_size=22 以适配长文本
  • 字幕同步:在 voiceover 块内的第一个 self.play() 中就 FadeIn(sub),确保字幕与声音同步出现,不要延后
  • 每个 voiceover 块开始时 FadeIn 字幕,结束后 FadeOut
  • 字幕文本应与 voiceover text 相同

⚠️ 避免双字幕: 如果场景代码中已使用 _make_subtitle() 渲染了画面内字幕,则 不要 再用 --burn_subtitles 烧录 SRT 字幕,否则画面上会出现两层重叠的字幕。两种字幕方案只能选其一:

  • 方案 A(推荐):代码内使用 _make_subtitle() 渲染字幕,不烧录 SRT
  • 方案 B:代码内不渲染字幕,通过 --burn_subtitles 烧录 SRT
步骤 2:配置渲染参数

在场景文件同目录创建 manim.cfg:

[CLI]
quality = high_quality
preview = False

[ffmpeg]
video_codec = h264

质量对照表:

质量标志分辨率FPSmanim.cfg 值
Low-ql480p15low_quality
Medium-qm720p30medium_quality
High-qh1080p60high_quality
Production-qp2160p60production_quality
步骤 3:渲染视频
manim render <scene_file.py> <SceneName>

输出路径模式:media/videos/<file>/<resolution>/<SceneName>.mp4

步骤 4:烧录 SRT 字幕(可选)

manim-voiceover 会自动在视频同目录生成 .srt 字幕文件。使用 ffmpeg 烧录:

ffmpeg -y -i <video.mp4> \
    -vf "subtitles=<subtitle.srt>:force_style='FontSize=22,PrimaryColour=&H00FFFFFF,OutlineColour=&H00000000,Outline=2,BackColour=&H80000000,BorderStyle=4,MarginV=30'" \
    -c:a copy \
    <output_subtitled.mp4>

⚠️ 双字幕陷阱:如果场景 Python 代码中已经用 _make_subtitle() 渲染了画面内字幕,就 不要 再烧录 SRT 字幕,否则会出现两层重叠字幕。

注意:ffmpeg 需要 libass 支持。macOS 用 brew install ffmpeg 通常已包含。Conda 环境需额外安装 conda install x264 -c conda-forge。

步骤 5:加速视频(可选)

使用 ffmpeg 对视频进行倍速处理,默认加速到 1.35 倍:

SPEED=1.35
ffmpeg -y -i <input.mp4> \
    -filter_complex "[0:v]setpts=PTS/${SPEED}[v];[0:a]atempo=${SPEED}[a]" \
    -map "[v]" -map "[a]" \
    <output_fast.mp4>

注意:加速应在最终输出步骤执行。如果场景代码已有画面内字幕(_make_subtitle),加速输入应使用原始视频(非 SRT 烧录版),避免双字幕。run_pipeline.py 的 --speed 参数已自动处理此逻辑。

Manim 常用动画速查

创建/显示动画

  • Write(text) — 书写文字
  • Create(mobject) — 绘制形状
  • FadeIn(mobject) / FadeOut(mobject) — 淡入淡出
  • DrawBorderThenFill(mobject) — 先画边框再填充

变换动画

  • Transform(source, target) — 变形
  • ReplacementTransform(source, target) — 替换变形
  • TransformMatchingShapes(source, target) — 形状匹配变形

移动/缩放

  • mobject.animate.to_edge(UP) — 移动到边缘
  • mobject.animate.shift(RIGHT * 2) — 平移
  • mobject.animate.scale(2) — 缩放
  • Rotate(mobject, angle=PI) — 旋转

常用对象

  • Text("文字", font_size=48, color=BLUE) — 文字
  • MathTex(r"e^{i\pi}+1=0") — LaTeX 公式
  • Circle(radius=1, color=RED) — 圆
  • Square(side_length=2, color=GREEN) — 正方形
  • Arrow(start, end) — 箭头
  • NumberPlane() — 坐标平面
  • Axes(x_range, y_range) — 坐标轴

分组与排列

  • VGroup(obj1, obj2) — 垂直分组
  • group.arrange(RIGHT, buff=0.5) — 水平排列
  • BackgroundRectangle(obj, color=BLACK, fill_opacity=0.6) — 背景矩形

已知问题与解决方案

⚠️ libx264 编解码器缺失(最常见问题)

症状:UnknownCodecError: libx264

根因:Manim 在 scene_file_writer.py 中硬编码使用 libx264 编码器(无法通过 config/cfg 覆盖),但 conda 环境的 ffmpeg 编译时 --disable-gpl,不包含 GPL 许可的 libx264。

解决:

# Conda 环境(最常见场景)
conda install x264 -c conda-forge
# 安装后 conda-forge 的 ffmpeg 会自动重新链接 x264 库

# 验证
ffmpeg -codecs 2>&1 | grep libx264
# 应输出包含: encoders: libx264 libx264rgb

注意:brew install ffmpeg 安装的 ffmpeg 自带 x264,但 conda 环境优先使用自己安装的 ffmpeg,不会使用 Homebrew 版本。

setuptools 兼容性

manim-voiceover 依赖 pkg_resources,Python 3.12+ 可能报错:

pip install "setuptools>=69.0,<72.0"

ffmpeg 缺少 libass

SRT 字幕烧录需要 libass。macOS:

brew install ffmpeg
# 验证
ffmpeg -filters 2>&1 | grep subtitles

Linux:

sudo apt install libass-dev
# 可能需要重新编译 ffmpeg

gTTS 网络问题

gTTS 需要访问 Google TTS 服务,如网络不通可切换为 pyttsx3 离线引擎:

from manim_voiceover.services.pyttsx3 import Pyttsx3Service
self.set_speech_service(Pyttsx3Service())

中文字体

Manim 使用系统字体渲染 Text 对象,确保系统有中文字体:

  • macOS:PingFang SC(系统自带)
  • Linux:sudo apt install fonts-noto-cjk
  • 指定字体:Text("文字", font="PingFang SC")

相关资源

  • GitHub 仓库:https://github.com/hzsunzixiang/manim-animation-skill
  • Manim 技术指南:references/manim_guide.md — 详细的 Manim + voiceover + 字幕技术文档
  • 环境检查脚本:scripts/check_environment.py — 一键检查所有依赖
  • 渲染流水线脚本:scripts/run_pipeline.py — 一键渲染 + 字幕烧录

平台分布

OpenClaw

94.33%
按下载量换算1,978

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills