2019年7月21日日曜日

レーザーピアノ - Phantom of the Opera Overture

一度やってみたかったリアルレーザー連動ピアノのシステムを作ってみました。


今回の製作のきっかけはまらしぃさんの幕張ライブで見たレーザー演出でした。頭上の空間に線が浮かぶ、ある種の立体映像のような見え方があらためて面白かったので興味を持ちました。通勤電車の中で少しずつ機器や規格の情報を調べていたら、市販の機器の組み合わせで安価で実現できそうだったのでやってみることにしました。

製作を振り返って、苦労順の下位から要素を並べてみます。

3.ピアノ
ピアノは近年ますます練習不足で新曲も練習していなかったので、元々弾いたことのある曲を弾くだけにしました。ピアノはそえるだけ。

2.レーザー制御
事前にある程度調べていたので、機器が届いてからピアノに連動して光らせるまでは簡単でした。EtherDream2 というデバイスを介し、公開されているドライバを PC で叩くだけでつなげられました。
しかし、イメージしていたデザインで描くのには少々苦労しました。一般にレーザー機器が出せるレーザーの光は一本だけなので、それを高速で分身の術のように制御して図形を描きます。


しかし今回使った機器の性能的に思い通りに動いてくれないところも多く、その調整に時間がかかりました。当初考えていたデザインからいくつか妥協して現在の形に至っています。大きなライブで使われる高級な機器ならばもっと制御の幅が広がるのかも。

1.撮影 (スモーク、掃除)
レーザーは反射させるためのスモークがないと見えないので、どうするか悩みました。軽い実験は加湿器でやっていましたが撮影するには弱く、最終的には一般的なグリセリンを使ってみました。


しかしそれでも持っているカメラでは撮影は苦しく、やや期待と違う映像になってしまいました。静止画の方が良い感じです。


レーザーは足元に置いて鏡で反射させ、ピアノの正面に弦のイメージで放射しています。CG でないリアルなものを連動させるのは面白く、ちょっと新しい感じの映像になりました。
カーテンを閉め切り、煙の充満する室内でマスク着用して異様な感触の鍵盤を叩く変態が作った動画です。

2019年6月18日火曜日

SoundMage2 Ver.1.200

公開版の SoundMage2 を更新しました。1年ぶりくらいかと思ったら3年ぶりでした。



少しずつ機能が増えていたのでリリースしようと思いつつ、延び延びになっていたようです。今回の新機能は大きく3つ。

カメラ映像背景
ときどきリクエストのあった機能です。もうプロジェクションマッピング用ではないですが、生配信などで使う場合はこちらの方が向いているかもしれません。というかプロジェクタを設置して使う方の方が少数派だったと思います。
AR 動画のとき作ったカメラ部分を整えて取り込んでいます。OpenCV を静的に抱え込んで作ったのでアプリのサイズが一気に膨らみましたが、導入しやすさ重視で。

メロディトリガ
初期から対応していた、特定のメロディで演出モードが切り替わる機能の簡易版です。実は自分のソフトで一番の特徴はこれではないかと思っています。設定ファイルで自由に定義できるようにするのが面倒で今までリリース版には入れていませんでしたが、簡易的に設定できるようにしてみました。
とはいえデザインの作りこみとか設定はややこしく、使いこなす人がいるのか疑問です。

楽譜モード
最も基本的なデザインだと思いますがようやく導入。



このモード自体はだいぶ前から作っていたもので、今年に入って時々生配信で使ったりしていました。
先日まらしぃさんの幕張ライブでまたプロジェクション演出をさせていただき、この楽譜モードの一部を拡張して取り込みました。そちらは非常にお気に入りです。そのライブの前に個人的にこれを公開してしまうのはためらわれ、ちょっとリリースを待機していました。

ときどき使用動画を目にしたり相談をいただくことなどあり、嬉しいです。
よかったら遊んでください。

2019年2月17日日曜日

AR Piano 生配信

もう1年近く前ですが、ピアノにARする動画を作りました。リアルタイム合成は動画よりライブの方が活かせそうだと感じていたので、今回は環境を作って生配信をしてみました。


内容はボロボロですがアーカイブはこちらに。


位置認識用のマーカーをピアノに貼り、カメラで撮影、位置認識、映像合成、配信、の流れで処理しています。配信の際にマーカーは目立つので映像合成で雑に塗りつぶしています。



今回のソフトはこれまでプロジェクションマッピング用に使っていた SoundMage2 の機能拡張版です。カメラ入力とマーカー認識、映像出力モードを追加して、演出を3D空間に合成するようにしました。設定次第でこれまでのプロジェクションマッピング用の出力にもなります。プロジェクション用に作ってきた演出を AR 用に配置して使えるので遊びやすいのがポイントです。座標系処理はまた一段とカオスに…

システムは無計画に増築を繰り返しており、今はこんな感じです。



基本システムは映像の品質を考えたら前回 AR に使った Unity が良いかなと思いつつも、何より今手軽に遊べりゃいいやというアーキテクチャに傾き、DirectX に回帰しました。慣れた軽いシステム、画像の手軽な変更、過去資産の流用、そもそも Unity を活用した高度なデザインは自分には無理、と判断理由は色々です。


作ってみると音と映像のずれが目立ちました。PCがカメラから受け取る画像が既に100[msec] 以上遅れているようだったので限界はありますが、少しでも改善するよう対策を入れています。
  • 配信ソフトの OBS でディレイ調整。配信時は結局これで何とかなるのですが、今後の応用も想定して他の改善も検討しました。
  • マーカー検出 on/off 切り替え。位置認識は処理が重いので起動時だけおこない、その後は追跡しないようにしています。カメラ固定を前提にした簡易ARです。
  • カメラ入力をトリガにして映像処理をカメラに同期するモードを追加しました。スレッド構成などを見直して、次々と重いバグが生成されて泣きました。というかまだ残っています。
  • 速い PC やカメラの使用。本当はなるべく環境を選ばないシステムが好きなのですが。

配信中の解説用にいつもの動画と同様アイコンを使いました。せっかくなので AR空間で動かしつつ、音声合成で喋らせてみました。音声合成の入力を早くするため音声認識にも対応しています。このあたりの機能やモード切替は、使いやすいように別 PC やスマホからも操作できるようにしています。


などなど、小ネタを色々盛り込んでいてなかなか実行に移さず、当初の配信予定から何か月も遅れました。そしていざ生配信してみると無残なもので、練習不足と緊張で演奏は崩壊するしトークのテンポも最悪だったりシステムトラブルもあったり。
でも視聴者とのリアルタイムなやりとりなど今までにない楽しさがあったので、懲りずにまた遊んでみようと思います。