はじめに
ChatGPT 4oでは、初心者でも簡単にアニメーションGIFを作成することが出来るので、それについて解説します。アニメーションGIFは、よく目にする、繰り返し動く画像ファイルのことです。
アニメーションGIFを作成する方法は他にもありますが、今回はプロンプト1個で作る手法を紹介します。具体的には、下記のように、テキストがタイピングされるアニメーションや、ギヤが回転するようなアニメーションをお手軽に生成することが可能です。
例1:「Hello, World!」のテキストタイピング

例2:歯車が回転し続けるアニメーション

静止画のプロンプトについては下記記事で説明していますので、良かったらご覧ください。
ChatGPT 4oを使ったアニメーションGIFの作成手順
作成するためのプロンプトとしては単純です。ChatGPT 4oにおいて、下記内容をチャットに入れることで、あとはGIFアニメーションファイルを作成してくれます。〇〇〇〇の部分に、希望するアニメーション内容を記載すればOKです。
“下記のGIFアニメーションを作成してください。まずは各フレームを作成して、それをGIFアニメーションとしてください。 「〇〇〇〇のアニメーション」“
一度、生成してしまえば、同じチャット内では省略した言い方でも生成しくれます。例えば、”A flower bud opening up as animation GIF”とかでも対応してくれるようになります。
GIFアニメーションの生成例
それでは、ChatGPT 4oを用いて実際に生成した事例を見ていきましょう。ここでは用いたプロンプトとセットでGIF画像を示しています。
例:「バウンドするボールのアニメーション」

例:「フラクタル構造を生成するアニメーション」

例:「時計の針が1時間分進むアニメーション」

例:「花のつぼみが開いていくアニメーション」

どれもシンプルなアニメーションにはなりますが、たった一つの指示でGIFアニメーションが作成できるのは感動的です。複雑なアニメーションを指示するとエラーで止まったりしますが、こういったシンプルなものであっても、色々と使い道があるかと思います。
生成の仕組みについて
基本的にはpythonにて、各フレームの画像とそれらをGIFアニメーション化するcodewp作成してくれているようです。下記は、実際に生成したcodeになります。
import imageio
import numpy as np
from PIL import Image, ImageDraw
# Define the number of frames and size of the GIF
num_frames = 10
width, height = 200, 200
# Function to draw a flower bud opening up
def draw_flower_bud(frame_num, total_frames):
img = Image.new("RGB", (width, height), "white")
draw = ImageDraw.Draw(img)
# Calculate the bud opening factor
factor = frame_num / total_frames
petal_length = 60 * factor
petal_width = 20 * factor
# Center coordinates
center_x, center_y = width // 2, height // 2
# Draw petals
for angle in range(0, 360, 45):
x1 = center_x + petal_length * np.cos(np.radians(angle))
y1 = center_y + petal_length * np.sin(np.radians(angle))
draw.ellipse((x1 - petal_width, y1 - petal_width, x1 + petal_width, y1 + petal_width), fill="pink")
# Draw the bud center
draw.ellipse((center_x - 10, center_y - 10, center_x + 10, center_y + 10), fill="yellow")
return img
# Generate frames
frames = []
for i in range(num_frames):
frame = draw_flower_bud(i, num_frames)
frames.append(frame)
# Save frames as a GIF
gif_path = "/mnt/data/flower_bud_opening.gif"
frames[0].save(gif_path, save_all=True, append_images=frames[1:], optimize=False, duration=100, loop=0)
gif_path
以上のように、DALL-E3を使っているわけではないので、複雑な画像の指定はできません。グラフ化できるものか、テキストのような、比較的シンプルなGIFアニメーションに限定されるかと思われます。
まとめ
以上のように、ChatGPT 4oを使ったアニメーションGIFの作成は、非常に簡単です。プロンプト一つでシンプルなGIF画像を生成できるため、初心者でも気軽に作成できて、敷居はかなり低いと感じます。
現在は複雑なアニメーションに難がありますが、今後更に改良が進んでいけば、より高度なアニメーションGIFの作成が可能になるものと予想しています。
コメント