こんにちは。
VJの話します……!!!
VJ(Visual Jockey)という言葉自体の流行りは、少し過ぎ去ってしまったような気がしますが、
近年、音楽と映像がより一体化するようになってきている中で、もはや、当たり前の技術になりつつあるといえるのではないでしょうか?
そんなVJを行うためのアプリケーションの有名どころの一つが**「Resolume」**です。
オランダ発のアプリケーションで、リアルタイムに映像を編集したり、プロジェクションマッピング等もできます。
他の有名なVJのツールはMacのみにしか対応していないものが多いですが、ResolumeはWinにも対応しているので、Winしか持ってない人もこれでVJがやれるわけです。
さて、今回は、Processing で作った映像をResolumeにリアルタイムで送ってみようと思います。
連動にはSyphon(Mac)、Spout(Win)を使うのですが、これはProcessing以外にもUnity、MadMapper、vvvv、openFrameworks、Processing等々、多くのアプリケーションと連携させることができます。
私は3D系のアプリをWindowsに入れており、ResolumeもWinに入っているため、Spoutを使って行きます。
SpoutはここからDownloadできます。
まずは、Processingを起動し、Spoutのライブラリ**「Spout for Processing」**をダウンロードします。
![スクリーンショット 2017-12-18 23.54.38.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F217122%2F8bf3391d-6a77-e53f-4468-b5ef2a2ffbd0.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=944cc37db2a67fc458d99cdcd6cafc8f)
まず、spoutをimportします。
import spout.*;
Spoutのクラス変数もつくっておきましょう。
Spout spout;
processingの描写のための定義を行うsetupメソッド内で、spoutのインスタンスを作成し、senderを作成しておきます。
void setup()
{
size(1920, 1080, P2D);
frameRate(30);
fill(0, 60);
.
.
省略
.
.
spout = new Spout(this);
spout.createSender("SP")
}
そして、描写内容を記述するdrawメソッド内で、送信用のメソッドを記載。
void draw()
{
・
・
省略
・
・
spout.sendTexture();
}
Processingの方のプログラムを完成させた後は、Resolumeを起動した上でProcessingのコードを実行して下さい。
そうすると、下図のようにSourcesの中で、Spoutで受信したデータを選択できるようになります。
![Res_Pro_Spout.png](https://qiita-user-contents.imgix.net/https%3A%2F%2Fqiita-image-store.s3.amazonaws.com%2F0%2F217122%2Fad335e72-8ba6-51f6-db12-22e3051805a7.png?ixlib=rb-4.0.0&auto=format&gif-q=60&q=75&s=dfbb5294a64df4f5b7e28fca57b37d21)
後は、エフェクトをかけてあげるだけ。
ではでは、今日はこの辺にて