• 締切済み

GIFアニメーションを作る手法とツールについて

GIFアニメーションを作る方法についてお尋ねします。 静止画の連番ファイルが100枚(jpegとか)あってそれを1つ1つGIF形式に連番で変換し、それを取りまとめたらGIFアニメになります。 しかし、もともとのjpeg連番ファイルすらない状態なのですが、 例えば、ボール1個の位置情報のデータが時々刻々あるような場合、それを使ってボールの移動をアニメで示せないでしょうか。 例えばボールの座標が、 X, Y 1.2 1.0 1.21 1.02 1.23 1.03 ↓時間方向 ............. というように示されていた場合、(1.2,1.0)にボールの絵を書いて1.jpgとし、その次のデータ(1.21,1.02)でボールの絵を書いて2.jpg...とすると、ボールの移動が静止画として表示されます。そしてそれをgif形式に変換してgifアニメにする、という流れが考えられます。こういう風に考えると途中の画像連番ファイル(jpg, gif)はともに中間出力のものであり、後で消すのでもともと不必要なものです。 このように、もともとテキストベースの数値データから最終的なGIFアニメを自動生成する方法を教えて頂きたいのですが。中間ファイルはできてもいいですが、それを手で消すのは面倒なので自動でやってくれればいいということですが。もともとのテキストデータですが、1つのファイルではなく、時間ごとに別のファイルにすることは簡単です。とにかく、1枚1枚コツコツと作るというのはものすごい手間なのでオートマチックでやってほしいというところがポイントです。フラッシュみたいなものともちょっと違うかなと思います。元のデータはプログラムで作成するので数百ステップ分(数百個のファイル)を吐き出すことは用意です。そのあとのことなのですが。よろしくお願いします。

みんなの回答

  • Proof4
  • ベストアンサー率78% (151/192)
回答No.2

gnuplot(ニュープロット)という、グラフを作成するソフトウェアを使うと、データファイルから直接アニメーションを生成することができます。中間ファイルの生成もありません。 以下ではご提示いただいた例をもとに、ボールの動きのアニメーションを生成することを考えます。 下記のようなボールの座標を時系列で表したデータファイル"data.dat"があるとき、 [data.dat] ----------------- # X Y 1.2 1.0 1.21 1.02 1.23 1.03 ----------------- "data.dat"と同じディレクトリに置かれた下記の"example.gp"を実行するとGIFアニメーション"out.gif"が生成されます。 [example.gp] ----------------- reset set nokey # 凡例を非表示に set xrange[0:4] # X軸方向の範囲 set yrange[0:4] # Y軸方向の範囲 set size square # 出力アニメを正方形に set term gif animate size 460,460 delay 5 # アニメーションの間隔を5×1/100秒に set output "out.gif" # 出力ファイル名 end = 127 # データの個数 size = 0.25 # 球の半径 do for [row = 1:end-1]{ plot "test.dat" every 1::row::row using 1:2:(size) with circles } -----------------

参考URL:
http://www.gnuplot.info/
skmsk1941093
質問者

お礼

回答ありがとうございます。 gnuplot(グニュプロット)は大昔からあり、インストールしていました。 このソフトはgifアニメより古いからそういう機能はないかもと思っていました。ソフト上でアニメを見せる機能はあるだろうと思っていましたが、gifアニメになるということであれば軽量級(資金も容量も)で最強かもですね。

関連するQ&A