mcpField
M
manim

manim

github.com/davila7クリエイティブ・メディア33.0k435 回インストール1 日前に更新
リポジトリ

manim について

Python フレームワーク Manim Community で数学アニメーションを作るためのスキルです。教育動画の制作者や可視化作業向けに、シーン、図形、LaTeX の式、グラフ、レンダリングを扱います。

主な機能

  1. 01シーンベースのアニメーション手法
  2. 02図形オブジェクトと変換
  3. 03LaTeX 方程式の描画
  4. 04グラフと座標系
  5. 05動画レンダリングとノートブック連携
  6. 06VS Code のライブプレビュー

活用シーン

  1. 01授業用の数学アニメーション制作
  2. 02幾何変換の可視化
  3. 03数式のアニメーション化
  4. 04解説動画コンテンツの制作

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/davila7/claude-code-templates --skill manim

インストール後、Claude Code で/manimを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
animations.md
latex.md
mobjects.md
scenes.md

詳細

Manim Community - 数学アニメーションエンジン

Manim Community を使って数学アニメーションを作成するための包括的なスキルセットです。Manim Community は、3Blue1Brown によって広く知られるようになった、解説用の数学動画をプログラムで作成するための Python フレームワークです。

使用する場面

Manim のコードを扱う際には、次のようなドメイン固有の知識を得るために、このスキルを使用してください。

  • 数学アニメーションや可視化の作成
  • 教育用動画コンテンツのプログラムによる作成
  • 幾何学図形と変換の扱い
  • LaTeX の数式や数学的な式のアニメーション化
  • グラフ、チャート、座標系の作成
  • シーンベースのアニメーションシーケンスの実装
  • 高品質な数学図の描画
  • 教育向けの解説用ビジュアルコンテンツの構築

基本概念

Manim では、次のものを使ってアニメーションを作成できます。

  • シーン: モブジェクトを構成してアニメーションを組み立てるキャンバス
  • モブジェクト: 表示可能な数学的オブジェクト(図形、テキスト、数式)
  • アニメーション: モブジェクトに適用される変換(Write、Create、Transform、FadeIn)
  • 変換: モブジェクトの異なる状態間のモーフィング
  • LaTeX 統合: 数学記法をネイティブにレンダリングするサポート
  • Python の簡潔さ: Python を使ってアニメーションの動作をプログラムで指定

主な機能

  • 数学オブジェクトの正確な配置と変換
  • 数式や式のネイティブな LaTeX レンダリング
  • 豊富な図形ライブラリ(円、長方形、矢印、多角形)
  • 座標系と関数グラフの描画
  • 幾何学図形に対するブール演算
  • カメラ制御とシーン管理
  • 高品質な動画レンダリング
  • IPython/Jupyter Notebook との統合
  • ライブプレビュー付きの VS Code 拡張機能

使い方

詳しい説明とコード例については、個別のルールファイルを参照してください。

基本概念

変換、タイミング、図形、座標系、3D アニメーション、カメラの動き、高度な機能などのその他のトピックについては、包括的な Manim Community ドキュメント を参照してください。

クイックスタートの例

from manim import *

class SquareToCircle(Scene):
    def construct(self):
        # Create a square
        square = Square()
        square.set_fill(BLUE, opacity=0.5)

        # Create a circle
        circle = Circle()
        circle.set_fill(RED, opacity=0.5)

        # Animate square creation
        self.play(Create(square))
        self.wait(1)

        # Transform square into circle
        self.play(Transform(square, circle))
        self.wait(1)

        # Fade out
        self.play(FadeOut(square))

次のコマンドでレンダリングします: manim -pql script.py SquareToCircle

ベストプラクティス

  1. Scene を継承する - すべてのアニメーションは Scene を継承したクラスに記述してください
  2. construct() メソッドを使う - すべてのアニメーションコードは construct() メソッド内に配置してください
  3. レイヤーで考える - モブジェクトをアニメーションさせる前に、シーンに追加してください
  4. self.play() を使う - self.play(Animation(...)) を使ってモブジェクトをアニメーションさせてください
  5. 低品質でテストする - プレビューを速くするため、-ql フラグを使用してください
  6. LaTeX を活用する - 数学記法には Tex() と MathTex() を使用してください
  7. 関連するオブジェクトをグループ化する - 複数のモブジェクトをまとめて管理するには VGroup を使用してください
  8. 頻繁にプレビューする - レンダリングされた動画を自動的に開くには -p フラグを使用してください

コマンドラインでの使い方

# Preview at low quality (fast)
manim -pql script.py SceneName

# Render at high quality
manim -pqh script.py SceneName

# Save last frame as image
manim -s script.py SceneName

# Render multiple scenes
manim script.py Scene1 Scene2

リソース

コメント