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”と表示される。
マウスをドラッグすると、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/
Pingback: Flosc(Flash OpenSound Control): flashと他のプラットフォーム同士でデータを送受信するJavaサーバー | DigiTechLog Dot Com