Vimeo.最近めっきり暖かくなりましたね。花粉が飛び始めたようですが、Takepepeまだ花粉症ではないのでどこ吹く風です。(花粉症の方すみません;)今回は上の動画の様なものを作りました。openFrameworksで作成した複数のiOSアプリから、openFrameworksで作成したDesktopアプリケーションを操作します。通信には前回同様、OSCを使っています。前回は1対1の一方通信でしたが、今回は1対複の通信になります。動画上では2台のiPhoneのタッチ座標を取得し、その座標をつなぐ線が描画されていますが、コード上はOSC接続している端末数に応じて点と線が増えていくものになっています。iPadやiOSシュミレーターでも確認できます。(引き出しに眠っているiPhone3GSが復活。)物理演算処理にはBox2Dを使用しています。全体の流れを詳しく説明していきます。iOS端末からDesktopアプリケーションにOSC通信iOS端末の数に応じたClientインスタンスの生成Box2Dのセッティングと円を降らす処理Clientメンバの座標間で線をひく1.iOS端末からDesktopアプリケーションにOSC通信まずはiOSアプリをopenFrameworksで作ります。アプリ単体で見ると、タッチした場所に円が描かれるだけの簡単なものになっています。);}2.iOS端末の数に応じたClientインスタンスの生成ここからはDesktopアプリケーションです。「Client」クラスを作成します。このクラスはコンストラクタにiOS端末のipアドレスを引数で渡します。update関数が呼ばれるたび、タッチ座標を変換・更新します。ip;}メインスレッドでOSCメッセージを受信した際、そのメッセージが新しい端末からの場合、Clientインスタンスが生成されるようになっています。次にBox2Dの実装です。updateでカウントアップし、circlesの数が100に達したら新しいofxBox2dCircleを作り、古いものは削除します。}}4.Clientメンバの座標間で線をひく最後にiOS端末から取得した座標でofxBox2dPolygonの線をひきます。ofPolylineに座標を追加し、ofxBox2dPolygonに代入します。画面上で線が見える様、draw関数ではofPolylineを描画しています。