言語学のアニメーションを作成してみる。
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()
実行結果がこれである。
正直本当に恐ろしいレベルだ。この雑なプロンプトでここまで仕上げてくれた。
これは応用力が非常に高そう。