openFrameworksでプロジェクション
はじめに
2014年のクリスマス前に、openFrameworksを使って、プロジェクションをやりました。 今更ながら、記事にまとめます。
個人的には、コードも含めて載せたいところですが、 今までコードを載せるための作業をしようとして、公開ができていなかったので、 この記事では、コードは載せずに簡単な解説や製作に使用したaddon、参考にしたページなどを書きたいと思います。 2年ちょっと前に開発したもので、addonなどはもっと適したaddonが出ていることもあったりすると思いますので、 そのあたりは参考程度に読んでいただいた方がよいかもしれません。
動画
簡単な解説
- 動画の下部にある、横長の窓の前を通る人の影をwebカメラで取得して、その人影をopenFrameworks内の平面に白い人影として投影している。
- 投影された人影はopenFrameworks内の物体に何かしらの影響を与える。
さらに、以下の3つのシーンをインターバルで回してバリエーションを持たせている。
- 上から落ちてくる雪の結晶を上空へ返す
- 人影が乗る半月のシーソー
- 人影のオーナメントが飾られるクリスマスツリー
使用したaddon
- ofxOpenCv → openFrameworksの標準addonだったはず。OpenCVの差分処理で、人の影の取得などに。
- ofxCv → 人の影の取得など。クリスマスツリーの影の取得は、一定時間取得された人の影をオーナメントにするという動作にするため、時間軸にもある意味の積算が必要になったので、そのようなところはこの addon を使いました。
- ofxBox2d → 雪の結晶の動きなど。
- ofxTrueTypeFontUC → 雪の結晶のシーンで、日本語の文字列を表示するのに使いました。
- ofxGui → 影の取得範囲をその場で調整できるように簡単な調整用GUIを作っていました。
- ofxTween → 半月シーソのシーンで、背景のドットの表示のイージング(アニメーション)に。
参考にしたwebページなど
Media Art II 2013 第6回:openFrameworks Addonを使う 2 – ofxOpenCV と ofxCv → 言わずと知れた田所さんの講義ノート。雪のシーンで人影から出ているパーティクルとかは例を見ながら作ったコードにちょっと手を加えたくらいでできています。
Night Lights → openFrameworksの青い本にも載っているYesYesNoの作品。影を取得してopenFrameworksの空間に持っていく作品の先駆的なものです。
- Immersive Shadow → こちらも openFrameworksの文脈でよく名前をお見かけする藤本さんの作品。当時の自分は、影は本物だと思い込んでいたのですが、今見ると投影した映像に組み込まれているようです。結果的にはこの作品のオマージュです。
エコなプロジェクション
実験的なところで、予算もかけることができなかったので、以下のようなエコな仕様で行ないました。
- 差分で影を取得するwebカメラ「BSW32KM03」 → 当時出ていたwebカメラの中で割と明るく撮れるということで購入していたような気がします。最初、窓が横長だったので、 広角な「BSW200MBK」を使ったら、 予想以上に広角すぎて、BSW32KM03にしたのを覚えています。
- 投影用のプロジェクタ「EPSONのEB-W18あたり」 → 使用したプロジェクターの型番までは覚えていないのですが、ビジネスユースの一般的なプロジェクターを使いました。 明るさを稼ぐために2台に映像をスプリットして、投影する実験もしました。ただ、当日、位置調整がうまくいかず、1台で投影しました。
人の目で見るくらいであれば、割とそのあたりに転がっているプロジェクターで壁面に投影すると、意外と見れるものだったりします。 ただ、動画や写真に撮るとやはり画が暗いな、という印象を受けます。
その他、MBAの動作中の画像など…