2009年10月27日火曜日

processingでMostPixelSever

Most Pixel Sever を動かしてみます。
processing,C++版の両方があるらしいので、粒数を増やしたアプリケーションを作成する場合はC++がお勧めのようですが、今回は簡便なprocessingで。

情報元はこちら

リンク先の展示では巨大ディスプレイに映像を出力している様子ですが、よく見るとディスプレイ自体は1枚でできているものでなく、複数枚をつないでできていることが分かります。。
複数のディスプレイ間のイメージを同期させる仕組みですね。


下記のMost Pixel Severアプリでは、クリックに応じて出力される粒がランダムな方向・速度で画面に出力されます。

TCPソケットに乗せてデータの授受を行っており、各アプリケーションごとに立ち上がった画面間を、粒が飛び交うように見えます。





























DLしたファイルは下記3つ、ブログ記載時点で動かしたものです。
ここではServer,Library,Exampleの各バージョンを揃えておかないと正常に動作しませんでした。(Server_v1上でのExample_v2実行などが不可)
  • ProcessingExample_TCP_v1.zip
  • ProcessingLibrary_TCP_v1.zip
  • Server_TCP_v1.zip

サンプルの動かし方は丁寧にWikiに記載されているので、大まかに流れだけ。
  1. DLした各ファイルを解凍。
  2. Serverの.jarファイルは適当なフォルダに配置。
  3. Libraryの.jarファイルはいつものprocessingのLibrary格納場所へ。
  4. ターミナルで、項番2.でServer.jarの置いたディレクトリまで移動。
    コマンド「java -jar mpeServer.jar -debug1 -framerate30 -screens2」を実行して、Serverを起動。
  5. Sampleに含まれる、mpeTest> client0app フォルダ内のmpeTest.appおよび、mpeTest> client1appフォルダ内の同名.appを起動します。
  6. いずれかのmpeTest.appで立ち上がった画面上でクリックすると粒が出力されます。
    飛ばされた粒は画面をまたいで表示されます。

※1:
裏では、ターミナルに各粒の位置情報が書き出されますが、これは設定ファイル(mpe.ini)で出力有無を選択できるので不要であればOFFにします。

※2:
mpe.ini設定ファイルで調節できる値は以下のもの。
マスターの大きな板の上に、任意の小さな板を複数ならべ、それら板上でデータ連携を行うといった具合です。

 id=0;
 server=localhost;
 port=9002;
 localScreenSize=200,400;
 localLocation=0,0;
 masterDimensions=400,400;
 debug=1;


このライブラリは距離を隔てたディスプレイ上でのインスタレーションに利用しやすいですね。

0 件のコメント:

Blogger Syntax Highliter