FizzBuzz
openFrameworks

oF製ビジュアライザでHappy FizzBuzzビジュアライズライフ

More than 1 year has passed since last update.


Happy FizzBuzz!!

今年はこのあいさつを流行らせていきたいと思います。

残り少ないですがよろしくお願いします。

この記事はリブセンスアドベントカレンダー2016 18日目 C面です。

A面 無限FizzBuzzリストでHappy FizzBuzzライフ

B面 Amazon PollyでHappy FizzBuzzオーディオライフ

もあわせてご覧ください。


ビジュアライザ

みなさんの私生活は


  • FizzBuzz映像をずっと眺めていたい

  • 一日に一回はFizzBuzzを見ないとつらい

  • FizzBuzzの映画化を楽しみにしている

という病に蝕まれていますか?

そう、そんなときに役立つのがoF製ビジュアライザです。


FizzBuzzオーディオの準備

まずはFizzBuzzオーディオを用意します。

https://soundcloud.com/daisuke-katsura/joannafizzbuzz

今回は英語版(Joanna)を利用しました。


ビジュアライザ

本当は「1」「2」「Fizz」とか文字が飛び出すのを作りたかったのですが、

来年もアドベントカレンダーがあるようなので、

今年はシンプルなものにしておきます。

openFrameworksでガチャガチャやります。

特に特別なことはやってないので解説は飛ばします。

ofxPostProcessing postだけアドオン使って定義してます。

//--------------------------------------------------------------

void ofApp::setup(){
ofBackground(0,0,0);
ofSetVerticalSync(true);
ofSetCircleResolution(64);
ofEnableAlphaBlending();

// Setup post-processing chain
post.init(ofGetWidth(), ofGetHeight());
post.createPass<PixelatePass>()->setEnabled(true);
post.createPass<EdgePass>()->setEnabled(true);

// Setup box positions
for (unsigned i = 0; i < NUM_BOXES; ++i) {
posns.push_back(ofVec3f(0, 0, 0));
}
boxMesh = ofMesh::box(20, 20, 20);

sound.load("fizzbuzz.mp3");
sound.setLoop(true);
sound.play();

vol = 0.0;
}

//--------------------------------------------------------------
void ofApp::update(){
float *volume = ofSoundGetSpectrum(1);
vol = volume[0]*800.0;
}

//--------------------------------------------------------------
void ofApp::draw(){
glPushAttrib(GL_ENABLE_BIT);

glEnable(GL_DEPTH_TEST);
glEnable(GL_CULL_FACE);

post.begin(cam);

for (unsigned i = 0; i < posns.size(); ++i) {
ofPushMatrix();
ofRotate(i * 10, 0, 5, 0);
ofTranslate(posns[i] + ofVec3f(vol * i, 0, 0));
boxMesh.draw();
ofPopMatrix();
}

post.end();

glPopAttrib();

}


完成品

こんな感じになりました。

fizzbuzz.png

https://drive.google.com/file/d/0B6l5wNYrO24XTWpWb0FFcEpqWEk/view?usp=sharing

作ってから思いましたが単調にしゃべり続けるので、

全然ビジュアライザに向いてないですね。

みなさまも、openFrameworksを使って、

HappyなFizzBuzzビジュアライズライフをお送りください。