

はじめに
本記事では、Pythonのアニメーションライブラリ「Manim」をGoogle Colabで実行する方法を紹介します。
Manimを使うと、数式やグラフのアニメーション化やプレゼンテーションの作成などにも活用できます。
Google Colabは、Webブラウザから無料でPythonを実行できるサービスです。環境構築が不要で、GPUも使用可能です。
この記事は、プログラミング初心者でもManimを使えるようにステップバイステップで解説します。サンプルコードの実行方法とコードの説明を通して、Manimの理解を深められます。また、言語モデルClaude3を使ってManimのコードを自動生成する方法も紹介します。
プログラミングが苦手な方も、ぜひManimを体験してみてください。まずは、Google Colabの環境設定から始めましょう。
環境設定
まずは、Google Colabの設定から始めていきます。
Google Colabのホームページ(https://colab.research.google.com/)にアクセスし、「ノートブックの新規作成」をクリックします。

次に、Manimを実行するために必要なライブラリをインストールします。以下の手順で、必要なパッケージをインストールしていきます。
次に、Manimを実行するために必要なライブラリをインストールします。以下の手順で、必要なパッケージをインストールしていきます。
新しいセルを作成し、以下のコードを入力して実行します。
!apt update
!apt install build-essential python3-dev libcairo2-dev libpango1.0-dev ffmpeg

続いて、新しいセルを作成し、以下のコードを入力して実行します。
!sudo apt-get install texlive texlive-latex-extra texlive-fonts-extra
次に、新しいセルを作成し、以下のコードを入力して実行します。
!pip install manim
最後に、インストールされたManimのバージョン情報を確認するために、新しいセルを作成し、以下のコードを入力して実行します。
!pip show manim注意: Manimのインストール後、「WARNING: The following packages were previously imported in this runtime: [decorator]」というメッセージが表示され、セッションの再起動を促される場合があります。その場合は、メッセージ下部の「Restart Runtime」ボタンをクリックして、セッションを再起動してください。再起動後、新しいセルを作成し、残りの手順を続けます。

最後に、インストールされたManimのバージョン情報を確認するために、新しいセルを作成し、以下のコードを入力して実行します。
!pip show manim上記を実行して、以下のように出力されたら成功です!

注意: インストール作業は、各コードを別々のセルで実行することをおすすめします。一度に全てのコードを実行すると、クラッシュが起こる可能性があります。
これで、Google Colab上でManimを使うための環境設定が完了しました。次のセクションでは、実際にManimのコードを書いて、シンプルなアニメーションを作成してみましょう。
シンプルなManimアニメーションの作成
最初は、簡単なアニメーションを作成して、Manimの基本的な使い方を学びましょう。
新しいセルを作成し、以下のコードを入力します。
%%capture
from manim import *
class SimpleAnimation(Scene):
def construct(self):
circle = Circle()
self.play(Create(circle))
SimpleAnimation().render()
セルを実行すると、アニメーションのレンダリングが開始されます。レンダリングが完了すると、「Files」タブに mp4 ファイルが生成されます。

生成された mp4 ファイルをダウンロードするには、ファイルの右側の「:」マークからダウンロードを選択します。

ダウンロードしたファイルを再生して、アニメーションを確認しましょう。

コードの説明:
%%captureは、セル内の出力を抑制するマジックコマンドです。これにより、レンダリング中のログが表示されなくなります。
from manim import *で、Manimライブラリをインポートします。
SimpleAnimationは、アニメーションのクラス名です。constructメソッド内に、アニメーションの内容を記述します。
circle = Circle()は、円を作成します。self.play(Create(circle))は、円を描画するアニメーションを再生します。
SimpleAnimation().render()で、アニメーションをレンダリングします。
以上が、シンプルなアニメーションの作成手順です。次は、もう少し複雑なアニメーションに挑戦しましょう。
高度なManimアニメーションの作成
ここでは、「はじめに」で紹介した、少し高度なアニメーションコードを実際に実行してみましょう。
新しいセルを作成し、以下のコードを入力します。
%%capture
from manim import *
class EyeCatchingDemo(Scene):
def construct(self):
# Create a colorful title
title = Text("Welcome to Manim!",
gradient=(RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE),
font_size=90)
self.play(Write(title), run_time=2)
self.wait(1)
# Transform the title into a spiral
self.play(title.animate.scale(0.6).to_edge(UP))
spiral = VGroup(*[Square(0.5) for _ in range(50)])
spiral.arrange_in_grid(10,5)
spiral.shift(2*DOWN)
colors = color_gradient([RED, ORANGE, YELLOW, GREEN, BLUE, PURPLE], 50)
for sq, color in zip(spiral, colors):
sq.set_color(color)
self.play(TransformFromCopy(title, spiral), run_time=3)
self.wait(1)
# Create some animated equations
equations = VGroup(
MathTex(r"\int_a^b f(x) dx = F(b) - F(a)"),
MathTex(r"\frac{d}{dx} e^x = e^x"),
MathTex(r"\lim_{n \to \infty} (1 + \frac{1}{n})^n = e")
)
equations.scale(1.5)
equations.arrange(DOWN, buff=1)
for eq in equations:
self.play(FadeIn(eq, shift=RIGHT))
self.wait(1)
# Transform the equations into a 3D rotating sphere
sphere = Sphere(radius=2, resolution=(20, 20),
checkerboard_colors=[BLUE_D, BLUE_E],
stroke_width=1)
sphere.shift(2*DOWN)
self.play(*[FadeOut(eq) for eq in equations], run_time=2)
self.play(TransformFromCopy(spiral, sphere), run_time=3)
self.play(Rotate(sphere, 2*PI, axis=UP), run_time=5)
# Animate the final message
final_message = Text("Manim brings math to life!", font_size=60, color=YELLOW)
self.play(ReplacementTransform(sphere, final_message),
FadeOut(title), FadeOut(spiral), run_time=3)
self.wait(2)
EyeCatchingDemo().render()セルを実行し、レンダリングが完了したら、以下のコードを新しいセルに入力して実行し、mp4 ファイルをダウンロードします。
ダウンロードしたファイルを再生し、アニメーションを確認しましょう。

コードの解説は割愛しますが、このアニメーションでは、以下のような要素が使われています。
カラフルなテキスト
図形の変形とアニメーション
テキストのアニメーション
数式のアニメーション
3Dオブジェクトの使用
これらの要素を組み合わせることで、より印象的なアニメーションを作成できます。
Claude3にManimコードを書いてもらう
最後に、先進的な言語モデルであるClaude3を使って、Manimのコードを自動生成する方法を紹介します。
Claude3に、以下のようなプロンプトを与えます。
次のような内容のManimアニメーションを作成するコードを書いてください。
- Google Colabで実行できるようにしてください
- 「Hello, Manim!」というタイトルが表示される
- タイトルの下に、回転する立方体が現れる
- 立方体が回転しながら、「Manim is awesome!」というテキストに変化する
- コードには以下を含めてください:
%%capture
from manim import *
...
(アニメーションのクラス名).render()
Claude3が生成したコードを、新しいセルに貼り付けて実行します。
エラーが発生した場合は、エラーの文をコピーしてClaudeにエラーの解決策を聞いてみましょう。


レンダリングが完了したら、mp4ファイルをダウンロードし、アニメーションを確認します。

このように、Claude3を活用することで、プログラミングの知識が少ない人でも、簡単にManimのコードを生成できます。
Manimコード生成GPTsでManimコードを生成
本記事で紹介したManimコード生成のGPTs「Manim Professor」を作成しました。以下のリンクからアクセスできます。
https://chat.openai.com/g/g-jhfqL552a-manim-professor
「Manim Professor」は、ユーザーの要望に応じて高品質なManimコードを生成します。プログラミングが苦手な方も、このチャットボットを使えば簡単にアニメーションを作成できます。
ぜひ「Manim Professor」を使って、オリジナルのManimアニメーションを作成してみてください。
※「Manim Professor」を使用するには、ChatGPT Plusへの登録が必要です。

まとめ
本記事では、Google ColabでManimを実行する方法を紹介しました。主なポイントは以下の通りです。
Google Colabを使えば、簡単な環境構築でManimを実行できる
シンプルなアニメーションから、高度なアニメーションまで、様々な表現が可能
Claude3や、GPTsを活用すれば、プログラミングが苦手な人でもManimのコードを生成できる
Manimを使えば、数学の概念を視覚的に表現したり、プレゼンテーションを引き立てたりできます。ぜひ、本記事を参考に、Manimでオリジナルのアニメーションを作成してみてください。







