今回は数式から美しいアニメーションを作成できる
Manimのご紹介です
解説動画はこちら
Manimとは
Manim(Mathematical Animation Engine)
数学や物理を視覚的に表現するための
Pythonのアニメーションエンジンです。
Python コードで数式やグラフをアニメーションとして
動画化してくれるライブラリです。
この辺りが必要です。
関連ライブラリのインストール
インストール後の確認
hello.py というファイルでサンプルを用意しました。
実行方法は次のようになります。
サンプルの実行
ライブラリをインポートして
コンストラクタを最初に定義します。
コンストラクタを作ったら
描きたいものを定義していきます。
オブジェクトを生成して動かすサンプルも用意しました。
サンプルコード
オブジェクトを定義して配置し
アニメーション内容を書いていくことで
様々なアニメーションを作ることができます。
いろんなサンプルを見てみよう
5つの動画サンプルを用意しました。
1.正規分布のパラメータ変化
2.三角関数
3.フーリエ変換
4.ロジスティック写像
5.勾配降下法
どんなアニメーションを作れるかは
動画の方で確認してみてください。
まとめ
数学や物理系の綺麗なアニメーションを作るのは
かなりしんどいと思います。
このライブラリであれば、かなり綺麗な
アニメーションを作ることが出来るので
その道の動画を作りたい方は
試してみるのも面白いと思います。
それでは。
Manimのご紹介です
解説動画はこちら
Manimとは
Manim(Mathematical Animation Engine)
数学や物理を視覚的に表現するための
Pythonのアニメーションエンジンです。
3Blue1Brownの制作者(Grant Sanderson)によって開発
数学の教育動画で幅広く使用されています。
数学の教育動画で幅広く使用されています。
Python コードで数式やグラフをアニメーションとして
動画化してくれるライブラリです。
Manim を利用するうえで必要なこと
関連ライブラリのインストール
- FFmpeg と必須ライブラリ
- LaTeX (MacTeX)
- Manim本体
Python の知識
TeX 記法の知識
この辺りが必要です。
関連ライブラリのインストール
Manimを動かすには以下の3つが必要です。
1.FFmpeg と必須ライブラリ
1.FFmpeg と必須ライブラリ
2.LaTeX (MacTeX)
3.Manim本体
早速インストールしていきましょう。
こちらはMac用のインストールコマンドです。
(Windowsの人はMacを買うか、Macを買いましょう)
1.FFmpeg と必須ライブラリのインストール
Manimが動画を描画・出力するために必要なツールです。
3.Manim本体
早速インストールしていきましょう。
こちらはMac用のインストールコマンドです。
(Windowsの人はMacを買うか、Macを買いましょう)
1.FFmpeg と必須ライブラリのインストール
Manimが動画を描画・出力するために必要なツールです。
brew install ffmpeg py3cairo pkg-config
2.LaTeX (MacTeX) のインストール
美しい数式を描画するためのLaTeX環境です。
3.Manim のインストールbrew install --cask mactex-no-gui
pip install manim
インストール後の確認
manim --version
基本的な使い方
ファイルを作成して実行する
Pythonファイルとして作成した後
そのファイルをターミナルで実行することで
動画を作成できます。
動画を作成できます。
manim -pqh ファイル名 シーン名
- -p: レンダリング後に動画を自動再生
- -q: 品質 (l=低, h=高, k=4K)
- ファイル名 : hello.py
- シーン名 : Hello
動画ファイルの出力先は
media/videos/...
media/videos/...
になる(デフォルト)
hello.py というファイルでサンプルを用意しました。
# hello.py
from manim import *
class Hello(Scene):
def construct(self):
text = Text("どうもこんばんわ、乙pyです")
self.play(Write(text))
self.wait()
実行方法は次のようになります。
サンプルの実行
manim -pqh hello.py Hello
基本文法
インポートとコンストラクタの定義
ライブラリをインポートして
コンストラクタを最初に定義します。
from manim import *
class MyAnimation(Scene):
def construct(self):
コンストラクタを作ったら
描きたいものを定義していきます。
変数名 = オブジェクト名(引数など) self.play(): アニメーションを実行 .animate: オブジェクトのプロパティ(位置や色)を滑らかに変化 ReplacementTransform: 前の物体を消して、次の物体へモーフィング
オブジェクトを生成して動かすサンプルも用意しました。
サンプルコード
# basicflow.py
# manim -pqh basicflow.py BasicFlow
from manim import *
class BasicFlow(Scene):
def construct(self):
# 1. オブジェクトの生成
title = Text("Manimの基本操作", font_size=40)
square = Square(color=BLUE, fill_opacity=0.5)
circle = Circle(color=RED, fill_opacity=0.5)
# 2. 配置の設定
title.to_edge(UP) # 画面上端へ
# 3. アニメーションの実行
self.play(Write(title)) # 文字を書く
self.play(DrawBorderThenFill(square)) # 枠線から塗りつぶし
self.wait(1)
# 4. 移動と変形 (Transform)
self.play(
square.animate.shift(LEFT * 2), # 左に動かしながら
run_time=1
)
# 四角を円に変形させる
self.play(ReplacementTransform(square, circle))
self.play(circle.animate.shift(RIGHT * 4))
self.wait(2)
オブジェクトを定義して配置し
アニメーション内容を書いていくことで
様々なアニメーションを作ることができます。
いろんなサンプルを見てみよう
5つの動画サンプルを用意しました。
1.正規分布のパラメータ変化
2.三角関数
3.フーリエ変換
4.ロジスティック写像
5.勾配降下法
どんなアニメーションを作れるかは
動画の方で確認してみてください。
まとめ
数学や物理系の綺麗なアニメーションを作るのは
かなりしんどいと思います。
このライブラリであれば、かなり綺麗な
アニメーションを作ることが出来るので
その道の動画を作りたい方は
試してみるのも面白いと思います。
それでは。

コメントする