5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Livesenseその3 Advent Calendar 2016

Day 18

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

Last updated at Posted at 2016-12-17

Happy FizzBuzz!!

今年はこのあいさつを流行らせていきたいと思います。
残り少ないですがよろしくお願いします。

この記事はリブセンスアドベントカレンダー2016 18日目 C面です。
A面 無限FizzBuzzリストでHappy FizzBuzzライフ
B面 Amazon PollyでHappy FizzBuzzオーディオライフ
もあわせてご覧ください。

ビジュアライザ

みなさんの私生活は

  • FizzBuzz映像をずっと眺めていたい
  • 一日に一回はFizzBuzzを見ないとつらい
  • FizzBuzzの映画化を楽しみにしている

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

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

FizzBuzzオーディオの準備

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

今回は英語版(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

作ってから思いましたが単調にしゃべり続けるので、
全然ビジュアライザに向いてないですね。

みなさまも、openFrameworksを使って、
HappyなFizzBuzzビジュアライズライフをお送りください。

5
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?