Processingで作ったビジュアルアートを動画として書き出す方法


Processingで作ったビジュアルアートはいろんな用途で利用することができますが、映像を制作するときは動画ファイルとして生成する必要があります。
ここではProcessingを動画ファイルとして生成して取り扱う方法をご紹介します。

流れとしては、saveFrame関数を使ってコマ分の静止画を生成していきます。
そして、生成した静止画を動画に変換していきます。

まずはサンプルプログラムから見ていきましょう。
今回のサンプルは簡単に、3Dで立方体のオブジェクトを回転しながら大きくなったり小さくなったりするものを用意しました。

draw関数の最後にsaveFrame関数を使って静止画を生成します。
saveFrame関数の引数には、フレームを保存するフォルダ名と「####」で連番を、最後にtifまたはpngの拡張子でファイル名設定します。

#の数は連番の桁数になります。

import processing.opengl.*;

float rotX, rotY, rotZ;
float eSize = 220;
int scaling = 1;

void setup(){
  size(1280, 720, OPENGL);
  smooth();
}

void draw(){
  background(255);
  pushMatrix();
  translate(width/2, height/2);
  fill(255, 102, 102);
  rotX += 0.007;
  rotY += 0.008;
  rotZ += 0.009;
  rotateX(rotX);
  rotateY(rotY);
  rotateZ(rotZ);
  eSize += 0.3 * scaling;
  box(eSize);
  popMatrix();
  
  if ((eSize > 300) || (eSize < 140)) {
    scaling = -scaling;
  }

  saveFrame("frames/####.tif");
  
  if (frameCount >= 1800) { // 1800コマアニメーションした時
    exit();
  }
  
}



必ずしもexit関数で終わらせる必要はなく、あるコマ数まで静止画を生成する方法をとってもいいです。

if (frameCount <= 1800) {
  saveFrame("frames/####.tif");
}



こちらのほうが動画として生成する範囲をコントロールできそうです。

実際に生成した静止画がframesフォルダ内に格納されているのが確認できます。

ProcessingのsaveFrame関数で静止画を生成



frameCount関数を利用したif文では、実行してからのフレームカウントを1800としてコマ分の静止画を生成するようにしています。

テレビの場合は1秒間に30fpsですので、このあとの動画に変換する設定でも30fpsとして生成するので、1分の動画のフレーム数を生成することになります。
ちなみにアニメは1秒間に24fpsとなります。


静止画を動画に変換


ここからは、Processingに付属しているツールを使って静止画を動画に変換します。

Tools(ツール)」から「Movie Maker(ムービーメーカー)」を選択します。

ProcessingのMovie Makerの利用



QuickTime Movie Makerの設定画面が表示されます。

Drag a folder with image files into the field below: という項目に、静止画があるフォルダのパスを指定します。「Choose(選択)」ボタンからコンピュータ内の先程生成した静止画の入っているframesフォルダを選択します。

動画の幅と高さ、フレームレートなどを変更したい場合は、「Same size as originals」のチェックを外して調整してください。
今回のサンプルはYouTubeなどでアップロードする解像度になるように、1280×720で作ってあるのでそのまま変更せず、フレームレートもテレビと同じ映像の30fpsでいくのでチェックを入れています。

QuickTime Movie Makerの設定



設定ができましたら、「Create movie(動画を作成)」を選択して、保存先とファイル名を指定して実行すれば動画ファイルとして生成します。

Processinで生成した動画ファイル(MOVファイル)は、Windowsのメディアプレーヤーでは再生ができないので、変換ツールなどを利用してMOVファイルを変換する必要がでてきます。

macOSをお使いの方は、QuickTime Playerで動画を再生しようとすると、自動で再生できる動画に変換してくれます。

Processinで生成した動画ファイルをQuickTime Playerで変換



そして、変換が終わるとQuickTime Playerで作成できる動画ファイルが完成します。
左がProcessingで生成してファイルで、右がQuickTime Playerで変換した動画ファイルです。

Processingで動画ファイルを生成



実際に出来上がったのがこちら。



Processingで映像を作る時や、また面白い作品や芸術的なアートが作れてシェアしたいときにでも動画ファイルとして共有してみてください。