🗂

アニメーションツール「Manim」の紹介

に公開

Manimとは

MITライセンスのpythonを用いたアニメーションツールであるManim (Mathematical Animation Engine)について自分の環境(MacOS13.6.7)にインストールして使ってみたので、どんなアニメーションや画像が作成できるのかを紹介する。
このライブラリは、筆者がしばしば視聴しているYouTubeチャンネル "3Blue1Brown(https://www.youtube.com/channel/UCYO_jab_esuFRV4b17AJtAw)" でよく使われている。動画を拝聴し、「数式を可視化すると現象がわかりやすくなる」と感じたこと、また直感的な理解を促すのに役に立つツールであることを常々実感していることなどからぜひ自分でも使ってみたい!と感じたことが本投稿のきっかけである。また、"3Blue1Blown"は日本語訳されたチャンネル(https://www.youtube.com/@3Blue1BrownJapan) も存在し筆者はそちらも試聴している。
https://docs.manim.community/en/v0.1.1/index.html

インストール方法

Manimのインストール方法や、サンプルプログラム等は"Manim Community (https://www.manim.community/)" を参照するのが最も簡単と思う。筆者はanacondaの仮想環境上でcondaによってインストールした(https://docs.manim.community/en/stable/installation/conda.html)。
インストールに際し、参考にさせてもらったリンク(https://qiita.com/Tonoyama/items/a53d55f96008a5b8296c) などでは、pipを用いている場合が多かった。仮想環境を構築するかどうかの違いかもしれない。

conda create -n my-manim-environment
conda activate my-manim-environment
conda install -c conda-forge manim

サンプルプログラム

Manim Communityを参照すれば、サンプルプログラムを閲覧することもできる。Example Gallery(https://docs.manim.community/en/stable/examples.html) 内に、作図するためのソースコードが展開されている。今回は、試しに「点が円を描き、直線に移る」ような作図例を紹介する。

## test.py ###
from manim import *

class BraceAnnotation(Scene):
    def construct(self):
        dot = Dot([-2, -1, 0])
        dot2 = Dot([2, 1, 0])
        line = Line(dot.get_center(), dot2.get_center()).set_color(ORANGE)
        b1 = Brace(line)
        b1text = b1.get_text("Horizontal distance")
        b2 = Brace(line, direction=line.copy().rotate(PI / 2).get_unit_vector())
        b2text = b2.get_tex("x-x_1")
        self.add(line, dot, dot2, b1, b2, b1text, b2text)

上記他、開発言語はpythonである。上のスクリプトを実行すると、下記のようなアニメーションが得られる。ちなみに、"add"が静止図を呼び出す関数のような役割を果たしていて、アニメーションを作成する際には代わりに"play"を用いる。
実行 (terminal)↓↓

xx-xx-MacbookAir manim % manim test.py BraceAnnotation

実行結果 ↓↓

筆者も参照し始めたばかりで、サンプルプログラムを少しいじるくらいしか出来ていないので、これから筆者自身の興味関心ごとに並行して触ってみたい。

Discussion