
manimce-best-practices
熱門觸發時機:(1) 使用者提到 "manim"、"Manim Community" 或 "ManimCE";(2) 程式碼包含 `from manim import *`;(3) 使用者執行 `manim` CLI 命令;(4) 使用 Scene、MathTex、Create() 或 ManimCE 特定的類別。 Manim 社群版(Manim Community Edition)最佳實踐指南——由社群維護的 Python 動畫引擎。內容涵蓋 Scene 結構、動畫效果、LaTeX/MathTex、使用 ThreeDScene 製作 3D 動畫、鏡頭控制、樣式設定與 CLI 用法。 不適用於 ManimGL / 3b1b 版本(該版本使用 `manimlib` 匯入與 `manimgl` CLI)。
觸發時機:(1) 使用者提到 "manim"、"Manim Community" 或 "ManimCE";(2) 程式碼包含 `from manim import *`;(3) 使用者執行 `manim` CLI 命令;(4) 使用 Scene、MathTex、Create() 或 ManimCE 特定的類別。 Manim 社群版(Manim Community Edition)最佳實踐指南——由社群維護的 Python 動畫引擎。內容涵蓋 Scene 結構、動畫效果、LaTeX/MathTex、使用 ThreeDScene 製作 3D 動畫、鏡頭控制、樣式設定與 CLI 用法。 不適用於 ManimGL / 3b1b 版本(該版本使用 `manimlib` 匯入與 `manimgl` CLI)。
使用說明
閱讀各個規則檔案以了解詳細說明與程式碼範例:
核心概念
- rules/scenes.md - Scene 結構、construct 方法與場景類型
- rules/mobjects.md - Mobject 類型、VMobject、Group 與定位
- rules/animations.md - 動畫類別、播放動畫與時間控制
建立與轉場
- rules/creation-animations.md - Create、Write、FadeIn、DrawBorderThenFill
- rules/transform-animations.md - Transform、ReplacementTransform、動態變形(morphing)
- rules/animation-groups.md - AnimationGroup、LaggedStart、Succession
文字與數學公式
- rules/text.md - Text mobject、字型與樣式設定
- rules/latex.md - MathTex、Tex、LaTeX 算式渲染與公式上色
- rules/text-animations.md - Write、AddTextLetterByLetter、TypeWithCursor
樣式與外觀
- rules/colors.md - 顏色常數、漸層與色彩操作
- rules/styling.md - 填滿(Fill)、描邊(Stroke)、透明度與視覺屬性
定位與版面配置
- rules/positioning.md - move_to、next_to、align_to、shift 等方法
- rules/grouping.md - VGroup、Group、arrange 與排版模式
座標系統與繪圖
- rules/axes.md - Axes、NumberPlane 與座標系統
- rules/graphing.md - 繪製函數圖形、參數曲線
- rules/3d.md - ThreeDScene、3D 座標軸、曲面與鏡頭視角
動畫控制
- rules/timing.md - 速率函數(Rate functions)、緩動(Easing)、run_time、lag_ratio
- rules/updaters.md - Updater 更新器、ValueTracker、動態動畫
- rules/camera.md - MovingCameraScene、縮放、平移與鏡頭畫面操作
設定與 CLI
- rules/cli.md - 命令列介面、渲染選項、畫質標記(quality flags)
- rules/config.md - 設定系統、manim.cfg 與各項設定
形狀與幾何圖形
- rules/shapes.md - Circle、Square、Rectangle、Polygon 與幾何圖形圖元
- rules/lines.md - Line、Arrow、Vector、DashedLine 與連接線
實作範例
完整且經測試的範例檔案,展示常見的開發模式:
- examples/basic_animations.py - 圖形建立、文字、交錯動畫(lagged animations)、路徑移動
- examples/math_visualization.py - LaTeX 方程式、色彩標示數學公式、公式推導
- examples/updater_patterns.py - ValueTracker、動態動畫、物理模擬
- examples/graph_plotting.py - 座標軸、函數、面積、黎曼和(Riemann sums)、極座標圖
- examples/3d_visualization.py - ThreeDScene、曲面、3D 鏡頭、參數曲線
場景範本
直接複製並修改這些範本以開啟新專案:
- templates/basic_scene.py - 標準 2D 場景範本
- templates/camera_scene.py - 支援縮放/平移的 MovingCameraScene 範本
- templates/threed_scene.py - 包含曲面與鏡頭旋轉的 3D 場景範本
快速參考
基本場景結構
from manim import *
class MyScene(Scene):
def construct(self):
# 建立 mobject 物件
circle = Circle()
# 加入場景(靜態)
self.add(circle)
# 或播放動畫
self.play(Create(circle))
# 暫停/等待
self.wait(1)
渲染命令
# 基本渲染並預覽
manim -pql scene.py MyScene
# 畫質標記(Quality flags):-ql(低畫質)、-qm(中畫質)、-qh(高畫質)、-qk(4K)
manim -pqh scene.py MyScene
與 3b1b/ManimGL 的主要差異
| 功能特性 | Manim 社群版 | 3b1b/ManimGL |
|---|---|---|
| 匯入模組 | from manim import * |
from manimlib import * |
| CLI 指令 | manim |
manimgl |
| 數學文字 | MathTex(r"\pi") |
Tex(R"\pi") |
| 場景類別 | Scene |
InteractiveScene |
| 套件名稱 | manim (PyPI) |
manimgl (PyPI) |
Jupyter Notebook 支援
使用 %%manim cell magic:
%%manim -qm MyScene
class MyScene(Scene):
def construct(self):
self.play(Create(Circle()))
應避免的常見陷阱
- 版本混淆 - 請確保您使用的是
manim(社群版),而非manimgl(3b1b 版本) - 檢查匯入敘述 -
from manim import *為 ManimCE;from manimlib import *則為 ManimGL - 過時的教學影片 - 影片教學內容可能已過時,建議以官方文件為主
- manimpango 問題 - 若文字渲染失敗,請檢查 manimpango 的安裝需求與套件依賴
- PATH 環境變數問題(Windows) - 若系統找不到
manim指令,請改用python -m manim或檢查 PATH 環境變數設定
安裝說明
# 安裝 Manim 社群版
pip install manim
# 檢查安裝狀態
manim checkhealth
實用指令
manim -pql scene.py Scene # 開發時預覽低畫質影片
manim -pqh scene.py Scene # 預覽高畫質影片
manim --format gif scene.py # 匯出為 GIF 動圖
manim checkhealth # 驗證安裝狀態
manim plugins -l # 列出外掛程式(plugins)





