msdd’s blog

deep learning勉強中。プログラム関連のこと書きます。

数学のアニメーションを作れるPythonライブラリManim

はじめに

数学のアニメーションなどを作成するライブラリとしてManimというライブラリがある。

f:id:msdd:20200505190905p:plain
Manimのロゴ(Manimより)

Manimは、pythonを使ってアニメーションを作ることができ、 3Blue1Brownでアニメーションを作るのに使われている。

例として、下の動画のアニメーションがManimで作られている。 様々なアニメーションを作れることがわかる。

今回は、このManimを動かしてみて、サンプル動画を作成してみる。

githubのリポジトリ : https://github.com/3b1b/manim

リポジトリのダウンロードと必要ライブラリのインストール

windows10で、anacondaを使ってインストールしてみる。 anacondaはインストールしてある前提である。

まず、manimのgithubリポジトリをダウンロードする。 ダウンロードの方法は、git cloneを使ったり、直接GithubからZIPでダウンロードする などの方法がある。今回は、GithubのリポジトリからZIPをダウンロードする。 Clone or donwloadから、Download ZIPを押して、リポジトリのZIPをダウンロードする。

f:id:msdd:20200505184456p:plain

ZIPファイルを解凍すると、manim-masterというフォルダーが出来ている。 さらにその中にも、manim-masterというフォルダーがあり、 その中にファイルが入っている。

f:id:msdd:20200505184506p:plain

展開が終わったら、必要なライブラリをインストールしていく。 今回は、anacondaを使い、仮想環境を作ってインストールした。 まずは、展開したフォルダーへと移動する。 cdコマンドを使って上の画像のようにファイルが置いてある所まで移動する。

cd ~/Downloads/manim-master/manim-master/

仮想環境を作り、必要なライブラリをインストールする。 environment.ymlで指定されているライブラリをインストール して仮想環境を作成した。

conda env create -f environment.yml

仮想環境を作り終わったら、仮想環境を起動する。

conda activate manim

サンプル動画作成

必要なライブラリのインストールが終わったので、試してにサンプルを動かしてみる。 サンプルファイルはenvironment.ymlが置いてあったのと同じフォルダー内にある、 example_scenes.pyである。

実行方法は、python -m manim ファイル名 クラス名で実行する。 追加でオプションを付けることができる。 下のオプションは、便利なオプションとして紹介されていたものである。 他にも、オプションがあるが、今回は使わない。

オプション 説明
-p 動画生成後に、動画プレイヤーで再生する
-l 動画の画質を低くして、動画生成を早める
python -m manim example_scenes.py SquareToCircle -p

実行してみると、./media/videosに使ったファイル名のexample_scenesというフォルダーがあり、 さらにその中に、1440p60というフォルダーが出来ている。 このフォルダーの中に、SquareToCircle.mp4と部分的な動画ファイルがpartial_movie_filesフォルダーに入っている。 生成された動画が下のもの。

オプションの-lを足して、クオリティを下げて動画を作ってみた。 実行してみると、example_scenesのフォルダーに480p15というフォルダーができて、その中に動画が入っている。 動画は、画質もfpsも落ちている。

python -m manim example_scenes.py SquareToCircle -p -l

これで、Manimに必要なライブラリをインストールして、動画を生成することが出来た。

さいごに

数学アニメーションを作成できるpythonライブラリManimをインストールして、 サンプル動画を生成してみた。 すごく簡単にアニメーション動画を作ることができる便利なライブラリだった。

次は、サンプルの中身を見ていきたい。