1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Manimの環境構築

Last updated at Posted at 2025-06-05

Manimを導入しましょう. Manimは数学などの理論的・抽象的な内容に特化したアニメーションを作成するためのPythonライブラリです.
Manim = Math + animation

環境構築

ManimはPythonのライブラリなので, システムのPythonに直接インストールできます. ですが, Manim はC拡張入りの重量級依存(ManimPango, Cairo, Numpy, Pillow…)が多いので仮想環境で隔離するのが理想的です.

(PythonはC言語で実装されています. 多くのPythonライブラリはPythonで書かれているのですが, 下部構造のC言語まで下りて独自のC言語ソースコードを持つライブラリをC拡張と言います. C拡張入りのライブラリをインストールするとき, ビルドのタイミングによって依存している外部ツールとバージョンが食い違ったり, 低レイヤに干渉できるために既存のPython環境を汚染したりするリスクがあるため, 仮想環境で隔離するのが理想とされています)

Pythonの仮想環境とは, プロジェクトフォルダの中にPython環境を構築するということです. 当然データ量は多くなりますが, 当該プロジェクトが使用するPythonやライブラリのバージョンを固定できるため, 様々なメリットがあります. Pythonには標準ライブラリにvenvというライブラリがあるので, 今回はこれを使います.

Manimを入れる前に, PCに以下を入れておきます:

  • Python3.10 ~ 3.12 (2025年5月時点)
    (Pythonのバージョンが新しすぎるとManimが対応していない場合があります.)
  • FFmpeg
  • LaTeX

venvを作成し, Manimを入れます. PowerShellで以下を順に実行してください.

# 今プロジェクトフォルダの中にいるとします.

# 仮想環境を作成 & 有効化
python -m venv .venv
.venv\Scripts\Activate.ps1
# cmd の場合は
.venv\Scripts\activate.bat

# pip を更新
python -m pip install -U pip

# Manim 本体をインストール
pip install manim

動作確認

例えば次のようなコード書きます.

# hello.py
from manim import *

class Hello(Scene):
    def construct(self):
        text = Text("Hello, Manim!")
        self.play(Write(text))
        self.wait()

レンダリングには以下を実行します:

manim -pqh hello.py Hello

-p: レンダリング後に動画を自動再生
-q: 品質 (l=低, h=高, k=4K)
hello.py: ファイル名
Hello: シーン名

出力先は media/videos/...

高度なレンダリング

コード内でデフォルトのレンダリング設定を上書きできます. また, コード内でシーンの.render()を呼び出すことで, pythonとして実行してレンダリングできます.

# hello2.py
from manim import *

# レンダリング設定
config.pixel_width          = 1920
config.pixel_height         = 1080
config.frame_rate           = 60
config.background_color     = WHITE
config.format               = "mp4"
config.quality              = "high_quality"


class Hello(Scene):
    def construct(self):
        text = Text("Hello, Manim!", color=PINK)
        self.play(Write(text))
        self.wait()

if __name__ == "__main__":
    scene = Hello()
    scene.render()
python hello2.py

configは他にも色々変えられますが, デフォルトの設定が理想的なので特に変える理由はないです.

Visual Studio Code拡張機能

-pを付けてレンダリングすると, 拡張子に対応したデフォルトのアプリでプレビューされます. Windowsの場合はメディアプレイヤーが起動すると思います. ですが, これはちょっと不便なのでもっと手軽に, 例えばLaTeXのサイドビューのように, プレビューされてほしいです. これを実現するためにVS Codeの拡張機能であるManim Sideviewを入れるのがオススメです. Manim Sideviewを入れると, 保存のたびにレンダリングされ, 最新の動画がサイドビューで再生されます(上の方にある赤いボタンを押して再生したいシーンを選択).

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?