flosc (Flash OpenSound Control) 入門

1. はじめに

floscとは、OpenSound Controlというプロトコルを使って、flashと他のプラットフォーム(Max/MSP、Processing、C言語によるプログラムなど)同士でデータを送受信するためのJavaサーバーです。といっても、やり方さえ覚えればそんなに難しいものではありません。

例えば、
○Max/MSPで人の顔の表情を認識(cv.jitというライブラリが代表的)して、その結果をFlashに送る。ネットワークで繋がったパソコン2台を使い、それぞれの計算は1台づつのパソコンで行なう。
○グラフィックの描画はFlashで行ない、音声はMax/MSPで実行する。
○3Dグラフィックの描画はC++やCocoa(Objective-C)で行ない、音声はMax/MSPで実行する。
などといったことができます。

世の中には様々なブログラミング言語やスクリプト言語、ソフトウェアがありますが、一長一短ですし、各々の得意とする領域は異なります。このようにして、プラットフォームごとに得意な計算を行なわせれば、表現の幅は広がると言えます。

注意: 2007年7月現在、Intel Macでは動作確認が出来ていません。おそらくotudpというmaxオブジェクトが、Intel Macでは使えないのだと思います。

2. インストール

ここでは、Mac OSXにおけるMax/MSPとFlash同士の通信の解説をします。
まず、OpenSound ControlのライブラリがMax/MSPの”Cycling ’74″フォルダの中に入っていることを確認してください。ない人はOpenSoundControlのページからダウンロードしてください。関係ないオブジェクトもあるんですが、解凍したフォルダごと”Cycling ’74″フォルダに入れちゃっていいです。

OTUDP 3.0.2 for OSX/CFMをダウンロードし、”Cycling ’74″フォルダに入れて下さい。

以下のファイルをダウンロードして解凍します。どこに置いてもかまわないのですが、ここでは分かりやすいようにデスクトップに置いておきます。
flosc-0.3.1.tar.gz(全てのプラットフォーム用 – 56 KB)
flosc-0.3.1というフォルダが作成されます。

3. サーバの稼働

1. ターミナルを開く
[アプリケーション]->[ユーティリティ]->[ターミナル]を開く。ターミナルの使い方が分からない人はManiac OSXを参照のこと。
cdを打ち込んでからfloscフォルダのパスを打ち込み、Enterキーを押す。 (例 cd /Users/yourname/Desktop/flosc-0.3.1/)
このパスを打ち込む作業は、目的のフォルダをターミナルの画面にドラッグするだけでも実行される。

2. ゲートウェイを稼働させる
java Gateway 1250 3000“と打ち込み、Enter(もしくはreturn)キーを押す。
この場合、1250は外部からFlashに送られてくるデータ用のポートで、3000はFlashから外部に送るポートです。この数字でなくてもかまわないのですが、サンプルはこのポート番号で設定されているので、よく分からない人は、この数値は変更しない方がいいでしょう。

ゲートウェイを終了させるときは、Control + cです。作業が終わったら終了することを忘れないようにしましょう。

4. サンプルを使ってデータの送受信を行なう

以下のサンプルをダウンロードする。
flosc_max_sample.zip

flosc.flaとflosc.patの両方を起動する。
flosc.flaでムービープレビューを実行する。ipとportのテキストフィールドが出てくるが、この数値はそのままで赤い丸をクリックする。同じパソコンでFlashとMax/MSPを動かす場合はこれで問題ないです。
正しくfloscが稼働していれば”connected”と表示される。

flosc_max_screen.png

マウスをドラッグすると、Maxにその値が送られ、音声が変化する(RECEIVING DATA FROM FLASHの方)。
MaxのSENDING DATA TO FLASHのxPositionとyPositionのそれぞれの値を変えると、Flashファイルの円のx座標とy座標が変化する。

これで互いのコミュニケーションが成立しました!!!!!

3. 参考サイト

Floscの解説サイト(一番重要なサイト)(英語)
http://www.benchun.net/flosc/

Floscの解説サイト(少し古いけど参考にはなる)(英語)
http://transmote.com/flosc/