PythonでYouTubeのオープニング!?manimで動画作ってみた。

どうも、Champignon(きのこ)です。

今回は、プログラミングのお話です。

この記事を読んでいただきたい方
●Pythonで動画を作りたい方
●YouTubeのオープニング動画を作りたい方

どんなオープニング動画ができるの?

今回は、とりあえず動画にするところまでを目標としますので、非常に簡素な動画です。
こんな動画ができました。

作った動画

このブログやTwitterで使っている名前を表示した後、
その下に”Champignon”という言葉の意味を表示させます。
(このとき、一気にポップアップで表示させるのではなく、動画っぽく手書きで表示されていくようにしています。)

その後、視点を引いて終了です。

使ったPythonのライブラリ

この動画は、“manim”というライブラリを使用して行いました。

私もまだ勉強中なので、凝った動画は作れないですが、
極めると、3Blue1Brownで公開されているような動画が作れるようになります!!

ドキュメントも結構充実しているので、チュートリアル通りにいじっているだけでも楽しめます。

YouTubeオープニング動画のコード

さきほどのYouTube動画で作った動画のソースコードはこんな感じです。


from manim import *

class kinoko(MovingCameraScene):
    def construct(self):
        with register_font(".\HachiMaruPop-Regular.ttf"):
            text = Text("Champignon", font="HachiMaruPop-Regular").scale(3)
            text1 = Text("~フランス語で「きのこ」という意味です~").shift(DOWN * 2)

        # テキストを表示
        self.wait(1)
        self.play(Write(text))
        self.play(Write(text1))
        self.wait(1)
        self.camera_frame.save_state()
        self.play(self.camera_frame.animate.set_width(text.get_width()*1.5))
        self.wait(1)
        self.play(FadeOut(text))
        self.play(FadeOut(text1))

意外と短いコードで簡単にできることがわかっていただけるのではないでしょうか??

簡単に補足すると、

  • 7行目までで、表示するテキストを定義します。
    具体的には、「位置」「大きさ」「文字」「フォント」を定義します。
  • それ以降で表示する順番等を記述していきます。

という感じです。

本当は、文字が表示されていくときに、「カリカリ」というペンで書いているような音を追加したいのですが、この記事を書いている時点において、
音は追加できるのですが、その音がどのくらいの時間なり続けるかを決めることはできなかったです。
従って、音をまったくいれないか、最初から最後まで「カリカリ」音を入れるかしかできませんでした。

このあたりは今後のアップデートに期待したいところです。

さいごに

いかがだったでしょうか?

Pythonで暇つぶししたい方にはちょこっと触ってみていただけると幸いです。
また、他の記事でもPythonで遊んでいる記事があります。
例えば、
YOASOBIっぽい歌詞を文豪の作品から作れる??マルコフ連鎖で文章生成【自然言語処理】

PythonとLINE Notifyで英単語暗記!レンタルサーバーで自動通知させる方法
などがあります。

ご興味があれば、覗いてみてください。

ほな、さいなら。