2013年03月03日

以前プロジェクションマッピングのプロジェクトに関わった時に
SyphonというprocessingやopenFrameworks、MAXなどの画面をアプリケーション同士で
共有するといったものがあるということを知ったので導入してみました。
とりあえずprocessingとopenFrameworksでsyphonサーバー上にスケッチを送れる
ようにしてあったのでメモ。
とくにoFの方ですこしつまずいたので今回はopenFrameworksのaddon
ofxSyhonを追加する方法を書いていこうと思います。
(すぐに手順忘れて毎回無駄な時間を過ごす自分のためにも…)



まず、syphonサーバーに送りたいプロジェクトを用意します。
今回は適当に丸がうじゃうじゃするものを書いてみました。

syphon1

そこにひとまずofxSyphonをDLしてきてaddonフォルダに入れておきます。
その後でXcode上のaddonの所で右クリック→add Files to “プロジェクト名”
クリックするとこの画面

syphon2

設定はこんな感じにしました。addon追加の時の参照とか云々は正直よく理解できてないので。
一番上のcopy items〜の所にチェック入れるとなんかプロジェクトのフォルダにも
直接addonがコピーされて嫌だったので外しましたという感じかな。

自分の知る限りだとaddonの追加はこのように終わり実行したらエラーもなく
次に移ることができるのだけどなぜかaddしただけでエラーが出てしまったので解決すべく
いろいろ調べてみました。

まず最初にやるべきことは
ofxSyphon/libs/Syphon/lib/osx/Syphon.frameworkを
TARGETSのBuild PhasesにあるCopy Filesの欄にドラック&ドロップで放り込む

syphon3

これで動くという記事をほかに見つけたんですけど自分の環境では未だ消えぬエラーが起こっています。

syphon4

という訳で次は
同じBuild PhasesにあるCompile Sourcesを開いて
4行目のmain.cppと5行目のtestApp.cppをdeleteします。

syphon5

そして実行するとエラーなくBuild Succeededできたと思います!

ここまでできたらもう簡単でプロジェクトのtestApp.hに

#include "ofxSyphon.h"


を足してpublic:の中に

ofxSyphonServer mainOutputSyphonServer;
ofxSyphonServer individualTextureSyphonServer;
ofxSyphonClient mClient;

の3行を足したら
testApp.cppの
setup()に

mainOutputSyphonServer.setName("Screen Outputh");	
mClient.setup();
mClient.setApplicationName("Simple Serverh");
mClient.setServerName("");

draw()の最後の行に

mClient.draw(50, 50);    
mainOutputSyphonServer.publishScreen();

を書けば終わりです。

無事syphonサーバーに画面が送れていると思います。
自分はこれをMadMapperという今話題のプロジェクションマッピング
を簡単にするソフトウェアに送って使いました。
こんな感じにoF上のスケッチが共有?できています。

syphon6

openFrameworks等を使えばインタラクティブ性のある
プロジェクションマッピングができたりしてわくわくしますね。

普段いきづまったときにいろいろなサイトやブログを参考にさせて頂くことが
多いのですが画像とかが多くて細かいことまで書いてくれてるサイトが
あるとすごくありがたいので今回は画像とか多めに書いてみたつもりです。
2つ目の記事でまだモチベーションがあるからかなぁ。。。

開発環境
Xcode4.6
openFramewroks v0071


コメントを残す

© Sako.log All Rights Reserved.