2017年10月13日金曜日

FirstFantasy02を終えて 機構編その1 ~動くタイムテーブル~

前回の記事に引き続いて今回から実際の機構の件についての記事を書いていこうと思います。
今回は一番の目玉(?)である動くタイムテーブルについてまとめていこうと思います。



 こんな感じのやつね!




実際にはこんな感じで見えてました。
DJブース前面のスクリーンと、写真を撮り忘れていましたがフロア中ほどにモニターを置いて同様のものを映しています。







と、本編に入る前に一つだけ断っておきたいのですが、自分はこういったものに関しては全くの素人なので、もし本職の方が同じようなものを作ったらもっと安定してもっと軽快な動作をする代物ができると思います。
自分自身試行錯誤の最中ですので、お見苦しい点がかなり多くあるかと思いますがご了承ください。



まず前提として、イベントは6時間もの長さになります。
それだけの長さの動画を用意するのはリスキーだというのはVJの経験がある方にとってみたらすぐにお分かりかと思います。
かといってVJソフトを使って人間がポチポチと動かしていくのはそれだけでリソースを割くのでナンセンスですね。設置したらほぼ人手いらずの状況が好ましいです。
なので時間に合わせて自動で映像を生成するようなものが必要になってくるんです。

つまり、プログラミングのお時間です。

ですが、自分自身そんな経験はほとんどない(学校でやったのはhtmlの基礎とhello worldくらいですし)ので高度なものはできません…


ここでVJさんにはおなじみの映像特化のプログラミング言語「quartz composer」を使います。










これはVJソフトのエフェクトにもたまに使われてる(ちょっとオワコン気味な)ソフトで、パッチ同士を紐で繋ぐようにして作っていくものです。iTunesのビジュアライザーやスクリーンセーバーを作ることもできるようですね。
しかも、これ無料なんですよ。わーすごい。お金かからないぞ!
残念ながらMac専用なのでWinでは動かないです。みんな特に理由がなければMac買おうな!





というわけでとりあえず実際に使ったものの動作確認版をYoutubeにアップしてみました。





本番とは違ってQCを起動してから5秒置きに動作する感じになっています。
(最初と最後が上下切れちゃってるのは設定ミスです。本番は大丈夫でした)







さて、動くタイムテーブルの必要な要素について考えましょう。
前回の記事にあるようにオリジナルの物は
・各フロアのDJ名
・押し時間
・混雑状況
が表示されていたようです。
押し時間や混雑状況はいりません。いくつもフロアがあるわけでもないですし、この辺りは監視する役がいないとできませんからね…

なのでまずは
・現在のDJ名
が必須になります。ついでにアー写も表示しましょう。
あれやこれやと考えて追加で
・次のDJが始まるまでの残り時間
・前後のDJ名
の表示もさせることにしました。








ここで実際に作ってみることにします。
quartz composerのパッチの中にsystem timeというものがあります。



これは2001年1月1日朝9時を基準(JISだからですかね…)にして今の時間を秒数で吐くパッチです。
秒数変換にはこういったサイトを利用しました。
これでイベントが始まる時間を2001年1月1日朝9時から経過した秒数に変換し、Conditionalという数値比較をするパッチと組み合わせて、ある値(任意の時間)よりもsystem timeの値が大きくなったらパッチ開始といった感じで組みました。

DJ「A」さんの開始時間をa、DJ「B」さんの開始時間をbとすると、aの時間でAさんの映像が現れ、bの時間でAさんの映像が終わりBさんの映像が映る。
これを人数分用意すればいいわけですね。



あとは根気でアー写や名義(何故か左揃えできなかったのでフォトショで前もって画像を作っておきました…なんで左揃えできないんだろう…)にアニメーションをつけます。
ここでsmoothパッチを使います。




例えば時間になったら0→1に値を変化させたい場合、普通にやると一瞬で1になってしまうのですがこのパッチを使うとスムーズに0から1に変わるんですよ。どんな感じで変わるのかとか、変わるスピードを細かく設定できるので便利ですよ!
これをオブジェクトの透明度やX、Y座標に当てはめてうまいことやります。



あとはアー写のY軸にLFOを使って揺らめかせたり、左側にリールのようにして前後のDJ名義を表示したり、あとは背景の色を音に反応して変化させるようにしたり、波形を表示したりして飽きないような画づくりを心掛けました。
この辺は映像を作ってきた経験がうまくいきてきたのかなあと思います。

こんな感じで一度作ったら全員ぶんコピペすればいいわけです!






そんなこんなで完成し、実践投入しました。



ちなみに作った名義の部分だけのパッチの全体像はこうなりました。
我ながら頭の悪い組み方してるなあと思います。






良かった点
・斬新なので割とウケがよかった
→どこ行っても見たことがないものでしたし、便利だったのでいろんな方から高評価をいただきました。音に反応する背景を混ぜたことで簡易的ではありますがVJとしての役割も果たしてくれました。


悪かった点
・イベントが時間通りに動くはずがない
→反省点はこれにつきました。今回はまずスタートが20分押しの状態からだったので最初っからずれたんですよね。
イベント中にQCのエディターで1200秒プラスして、レジデントが時間調整していったので当初の予定から大幅にずれました。
やはり、まだまだ人間は必要ですね…

・再起動したら全画面にするのに時間がかかる
→VJの問題と似たようなものですが、イベント中に落ちてしまうと復帰の際に全画面にするのがとても面倒です。
今回もType-c端子のディスプレイ認識の不具合かなにかで一旦外部ディスプレイを認識しなくなったあとの復旧作業に手間取りました…
全画面ボタンを押すのが大変でした…




安定性と正確性に関する反省点は多々ありましたが、将来性はあるものができたんじゃないかなあと思います。
今後もチョイチョイイベントで使用してレベルを高めていきたいと思います。