ikuzakの備忘録

数学関連のツールTeX,Tikz,Manim,Geogebraなどの備忘録です。

【Manim】manim-voiceoverを使いたい

実際に動画を作り始める前に、ある程度クラスやメソッドを知っておこうと思って、Manim Communityのリファレンスに目を通していたら ナレーション(Voiceover)の追加ってのが。

こ、これは…!?

しかも、自動生成されたAI音声を使用できるですって? これはなかなかに挑戦したくなるもの…。

続きを読む

【Manim】インストール

目次

Pythonのインストール

これはそんなに苦労はなかった。 自分の環境はWindows11だが, Python公式からダウンロードしてインストール。

Manimのインストール

ManimCEのDocsで、Windwosへのインストールの手段の最初の1つとして、Chocolateyとやらが。

何それ、知らない

ひとまず検索して「Chocolateyとは何ぞや?」と調べてみる。

ほーん、Windowsのパッケージマネージャーなのね。こんなのあんのかー。 ん?依存関係とかも含めて全部込みでやってくれるのはありがてぇけど、 TeXはインストール済だし、そこまでしなくてもよくね?

しかも、Pythonのインストールは上述の通り済ませちゃったし。

てことで、もういっそマニュアルでインストールを試してみるか、と。

pipでのmanimパッケージインストール

そもそもPythonを扱ったことがほぼ皆無だったので、ほぼ0知識からのスタート。 分からん単語が出てきたら、とにかく検索だった。 調べると、pipというものでPythonサードパーティ製のパッケージは管理されるんだとか。 なるほどねー。 というわけで、(Pythonにはパスが通った状態)

pip install manim

こんだけでManim本体のインストールは終了。

なんや、簡単やん。

Quickstartの例を試してみる。

インストールが問題なく、できているかのチェックにQuickstatにある例を1つコピペで試してみる。

class SquareToCircle(Scene):
    def construct(self):
        circle = Circle()  # create a circle
        circle.set_fill(PINK, opacity=0.5)  # set color and transparency

        square = Square()  # create a square
        square.rotate(PI / 4)  # rotate a certain amount

        self.play(Create(square))  # animate the creation of the square
        self.play(Transform(square, circle))  # interpolate the square into the circle
        self.play(FadeOut(square))  # fade out animation

その後、コマンドプロンプトで保存したscene.pyのあるフォルダ内まで移動して

manim -pql scene.py SquareToCircle

で実行。動画が出来上がったので基本のインストールが無事に完了した。

このブログでやりたいこと

目的

このブログではManim、TeXやTikz、Geogebraであったりなどの

  • 自分がつまづいたこと
  • こんなことができるのね

とかを備忘録として、大したことが書けないなりに、まとめていこうと考えた。 だって、TeXやGeogebraはまだしもManimは日本語のリファレンスになかなか出会えないんだもの。

事の始まり

ほんとの一番最初のきっかけはこの動画との出会い。 3Blue1BrownJapanの動画がおすすめとして流れてきた。 その動画のアニメーションの素晴らしさたるや… すぐにチャンネル登録をしておいた。

しかしながら、この動画でManimを知ったわけではなく、シリーズものとして投稿され始めた線形代数のエッセンスのどれかの概要欄をふと見たときに知ることになった。

  • まず、3Blue1BrownJapanは東大有志による日本語翻訳版であること
  • 本家の3Blue1Brownが作成したManimというツールで作成された動画であること
  • 現在では本家からフォークされ、Manim Communityにより頻繁に更新されるManim CE(Community Editionの略)で提供されていること

ふぁっ!? Pythonなのぉ!?

これが事の始まりでしたね。

/* -----codeの行番号----- */