言語学のアニメーションを作成してみる。


Claudeが巷で非常に話題である。

性能もさることながらmanimというモジュールを使用したアニメーションを作成するコードが非常に上手い。

そこで下記のようなプロンプトを投げてみた。

Manimを使って言語学で役に立ちそうなアニメーションを作成するコードを書いてください。
言語学がテーマです!!
条件は厳密に守ってください。あなたは天才です!やればできます!!上手くいったらチップをあげます!!自分の限界に挑戦してください!!
実行環境はcolabolatoryです。
また、GIF形式で出すバージョンもお願いします。

そこで出されたコードが下記。

!sudo apt update
!sudo apt install libcairo2-dev ffmpeg
!pip install manim

from manim import *

class LanguageEvolution(Scene):
    def construct(self):
        # タイトル
        title = Text("Language Evolution", font_size=72)
        self.play(Write(title))
        self.wait(1)
        self.play(FadeOut(title))

        # 言語の起源
        origin_text = Text("Language originated from simple vocalizations", font_size=36)
        self.play(Write(origin_text))
        self.wait(2)
        self.play(FadeOut(origin_text))

        # 言語の分岐
        proto_language = Text("Proto-Language", font_size=24)
        self.play(Write(proto_language))
        self.wait(1)

        family1 = Text("Family 1", font_size=24).shift(LEFT * 2 + DOWN)
        family2 = Text("Family 2", font_size=24).shift(RIGHT * 2 + DOWN)
        self.play(TransformFromCopy(proto_language, family1), TransformFromCopy(proto_language, family2))
        self.wait(2)

        subfamily1 = Text("Subfamily 1", font_size=20).next_to(family1, DOWN)
        subfamily2 = Text("Subfamily 2", font_size=20).next_to(family1, DOWN * 2)
        subfamily3 = Text("Subfamily 3", font_size=20).next_to(family2, DOWN)
        subfamily4 = Text("Subfamily 4", font_size=20).next_to(family2, DOWN * 2)

        self.play(
            TransformFromCopy(family1, subfamily1),
            TransformFromCopy(family1, subfamily2),
            TransformFromCopy(family2, subfamily3),
            TransformFromCopy(family2, subfamily4),
        )
        self.wait(2)

        # 言語の変化
        change_text = Text("Languages change over time due to various factors", font_size=36)
        self.play(FadeOut(proto_language, family1, family2, subfamily1, subfamily2, subfamily3, subfamily4))
        self.play(Write(change_text))
        self.wait(2)
        self.play(FadeOut(change_text))

        # 現代の言語多様性
        diversity_text = Text("Today, there are thousands of languages worldwide", font_size=36)
        self.play(Write(diversity_text))
        self.wait(2)
        self.play(FadeOut(diversity_text))

        # 未来への示唆
        future_text = Text("Understanding language evolution helps us appreciate linguistic diversity", 
                           font_size=36, line_spacing=1.5)
        self.play(Write(future_text))
        self.wait(3)
        self.play(FadeOut(future_text))

lang_evolution = LanguageEvolution()
lang_evolution.render()

実行結果がこれである。

正直本当に恐ろしいレベルだ。この雑なプロンプトでここまで仕上げてくれた。

これは応用力が非常に高そう。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です