Processingで立方体を作るPart2
Processingの記事を書いたちょうどその日、結構前から購読させていただいている trial and error さんでもProcessing記事が執筆されていました。せっかくなので、紹介も兼ねてPart2いってみよー!
http://techno-st.net/2008/12/12/processing-videomoviemaker.html
Processingで動画を撮る
この記事を読むまで知らなかったんですが、Processingでは動画も撮れるんですね!やっぱりProcessingすごいわー。上記記事にも書いてありますが、 MovieMaker という関数があって、これは
MovieMaker(parent, width, height, filename, fps, type, quality);
ここで、
- parent:ほとんどの場合 this
- width:横の大きさ
- height:縦の大きさ
- filename:作成するファイルの名前(最悪ここまでだけでもOK)
- fps:リフレッシュレートの設定(Fresh per Secondだっけ、確か)
- type:動画の種類。どうやら、H.263以外の形式だと上手くいかないらしい。
- quality:動画の品質(WORST, LOW, MEDIUM, HIGH, BEST, LOSSLESS)
というふうに設定。あとは、addFrameしていくだけ。
import processing.opengl.*; import processing.video.*; MovieMaker mm; void setup() { size(400,400,OPENGL); mm = new MovieMaker(this,400,400,"box.mov",30,MovieMaker.H263,MovieMaker.MEDIUM); smooth(); frameRate(30); } void draw() { background(0); fill(255,0,0); translate(200,200); rotateX(map(mouseY,0,height,0,PI)); rotateY(map(mouseX,0,width,0,PI)); rotateX(frameCount * 0.01); rotateY(frameCount * 0.01); rotateZ(frameCount * 0.01); box(150); mm.addFrame(); } void keyPressed() { if(key == ' ') { mm.finish(); exit(); } }
下のkeyPressed関数はその名の通り、何かキーが押されたときに発動するイベント。ここで、key(押されたキー)が半角スペースだったらfinish関数が発動され、撮影を停止し、exitでプログラムを終了させます。
はじめてのようつべあっぷろーど
動画はやっぱり容量を食うので、どこかアップできるところに上げるのが一番・・・。と、考えていたら。あ、YouTubeがあるじゃんー・・・と思いつきアップロードしてみました。
アップロードはそこまで手間でもなく、TopからUpload,Video Fileを選択し、アップしたいビデオを選択して(今回、MyDocumentのProcessingのフォルダに動画が作成されているのでそこ)、Title,Description,Tag,Categoryを設定してしばらく待つだけ。とっても簡単でした。