CrouseopenFrameworksって何?openFrameworksは、シンプルで先端的なフレームワークによって創作活動を支援するためのオープンソースのC++ツールキットです。ツールキットは、以下のリストあげたよく利用されるライブラリー群をまとめて汎用的な「糊」のような役割を果たすようにデザインされています。videoInput様々なユーティリティー:Pocoコードは様々なプラットフォームで動作するように書かれています。Eclipse)をサポートしています。APIは最小限で把握し易いようデザインされています。簡単に言うと、openFrameworksはコードにまつわる様々な事柄をずっと容易にしてくれるツールなのです。わたしたちはこのツールをとても便利と感じています、きっとあなたもそうなるでしょう。Castro)を中心にして、OFコミュニティーとともに開発されています。openFramewokrsは以下2つの先駆的なプロジェクトの恩恵を受けています。aboutよりパッケージのいくつかは(例えばOpenGLのように)他のドキュメントにより詳細に説明されているものもあります。パッケージの多くは、あまり心配しなくてもバックグラウンドで勝手に動いてくれます。ライブラリのそれぞれは、独自の文法や慣習や癖を持っていたりします。openFrameworksの美点はそうしたことを気にしなくて良いところです。oFは、提供されたライブラリの機能に対する、単一の一貫したインターフェイスを提供してくれるのです。Q&Aプログラムなのですか?oFはそれ自体はプログラムや、アプリケーションではありません。oFを使用して自分自身のプログラムやアプリケーションを作成することが可能です。プログラミング言語なのですか?oFはそれ自身が独自のプログラミング言語で構成されているわけではありません。oFでプログラムを書く際に用いる言語は、C++です。ライブラリなのですか?oFは実際、多くのライブラリから構成されています。ライブラリを統合する特定の方法は「ソフトウェアフレームワーク」と呼ぶほうがより相応しいでしょう。ソフトウェアフレームワークって何?ソフトウェアフレームワークとは、プログラマーがアプリケーションに動作させたい内容を高レベルで詳細をカスタマイズできる一方で、アプリケーションに必要な全ての低レベルの機能を提供するようにデザインされた、ある種のプレハブ構造のソフトウェアの基盤のようなものです。ライブラリを使用することとフレームワークの違いの一つは、制御の反転です。ライブラリは、全般的なタスクの集合としてコードを直接コントロールします。フレームワークではイベントに対するコードの応答は、フレームワークによってコントロールされます。フレームワークは、他のライブラリの機能へのアクセスのインタフェイスとして使用されます。複雑に聞こえますか?あまり明確でないこともありますが、多くのマルチメディアオーサリング環境は実際にこの手法をとっています。大雑把なたとえで考えてみてください。あなたは映画制作会社で自身の映画を制作監督しています。制作会社は場所を用意し、全てのインフラを提供し、カメラクルーや照明監督、サウンドエンジニアなどの重要なスタッフを探してくれます。全ての人達は、あなたを含め、必要なときに時間通りに一斉に仕事をします。openFrameworksは、あなたのプログラムに対する制作会社のようなものです。openFramewroksは、事務的な部分やロジスティックな詳細はケアしてくれて、あなたを創造的な視点に集中させてくれます。前のセクションで学んだように、openFrameworks自体はプログラミング言語ではなく、C++で書かれたソフトウェアプログラムです。C++とは何でしょう?注意:この文書は、openFrameworksのガイドを目的としています。その間に、C++という言語に慣れていくでしょう。非常に深い部分からボトムアップでC++の導入をすることは、この文書の目的を越えています。この文書を読んだ後で、最後にあげた参考文献のサイトのリストを参考にすると良いでしょう。C++は、1979年にベル研究所で開発されたC言語の拡張です。これらは共に汎用的なプログラミング言語で、世界中のほとんどのコンピューティングプラットフォームで動作可能です。C++プログラムの多くは以下のような体裁をしています。programのチュートリアルを参照してください。コンパイラでビルドすると、このコードは完全な実行可能なプログラムを生成します。World!」と出力するだけです。以下のステップの手順に従って、実際に挑戦してみましょう。注意:この手順はプラットフォームに依存することがあります。実行するにはXCodeがインストールされている必要があります。C++プグラムをコンパイルする先程のコードのテキストをコピー&ペーストして、テキストファイルとしてデスクトップに「hello.cpp」という名前で保存。テキストエディットを使用している場合は、「リッチテキスト」などのフォーマットではなく、「標準テキスト」で保存するように注意してください。「アプリケーション」→「ユーティリティ」にある「ターミナル.app」を起動します。下記の記述を、各行でenterを入れながら、ターミナルのウィンドウ内にタイプしていきます。結果は下記のようになるでしょう。デスクトップには下記のようなものが出来ているでしょう。これは、普段見慣れているような、グラフィクスを使用したウィンドウを起動する派手なアイコンのプログラムとはちょっと違っているかもしれません。これもプログラムなのです。実際、あなたのコンピュータの全てのプログラムは、掘り下げてみれば、結局は今作成した「hello」プログラムのようなものなのです。※重要:現時点では、ちょっと混乱してしまう人もいるかもしれません。oFを使い初めたら、もっと刺激的な内容になります。このサンプルは、あくまでC++の基礎の低レベルな部分の説明でした。コマンドラインでコンパイルしてコマンドラインで表示するような必要はありません。IDE(統合開発環境)って何?もしFlashやProcessingのようなプログラムを使ったことがあるのなら、何かコードを書いて、その動きを観るために「再生」ボタンを押すというプロセスになじみがあるでしょう。このことを「コンパイル」と呼び、先程のセクションでやってきたことです。ビデオ編集になじみがあるのなら、コンパイルはレンダリングのようなものです。コンパイルのアイデアとは、人間が読解可能なコードをコンピュータが実行可能なものに翻訳するということです。CやC++、Java、Objective-C、Fortran、Lisp、Pascalといったプログラミング言語は皆、コンパイル言語です。それらの言語は人間に読解可能にできています。それらは人間によって書かれ、読むことができ、理解できるように作られています。どの言語で始めようと、最終的には、コンピュータが理解する何らかのものに翻訳されます。機械語が用いられます。※注:PHPやPythonのような言語は「スクリプト言語」として知られています。コンパイルが必要ですが、プログラムが実行される際に行われます。コードを機械語に翻訳する仕事をするプログラムを「コンパイラ」と呼びます。GCCは、もっとも有名なコンパイラの一つです。CGGは様々な言語をコンパイルすることが可能です。GCCはとても良いコンパイラなのですが、自分自身でやりたいこと正確にどのように正確にプログラムに伝えるのは頭の痛いフラストレーションが溜る問題です。hello.cpp"というコマンドを用いました。様々なライブラリを使用したり、プロセッサに最適化させたり、画像などのリソースを含めたアプリケーションを作成しようといったことは、全ては無効となります。複雑さのopenFramewroksのプロジェクトであっても、コンパイルの情報をCGGに伝える内容は、何百行もの難解な文法といくつものヘルパーツールが必要です。その代わり、多くの開発者はコードプロジェクトを作成し構成するためにIDE(統合開発環境)を使用しています。多くのIDEは、テキストエディター、ファイル構成機能、コンパイラ、様々なオプションやコンパイルのプロセスをカスタマイズするためのGUIインタフェイスを備えています。Studio、CodeBlocks、Eclipse、NetBeansなどが挙げられます。ほとんど全てのOSや言語にはIDEが存在します。IDEには特定の言語専用のものもあれば、多くの言語をサポートしているものもあります。Flash、Processing、VVVV、Max/MSPのような開発環境では、コンパイルに関する内容から離れていれられるかもしれません。IDEは白紙状態であるという違いがあります。IDEは特定の機能から成り立っているわけではありません。ある目的に特化した機能を搭載したツールもあります。FlashはWebで動くためのプログラムのコンパイラであり、Processingは素早くプロトタイピングするためのツールです。openFramewroksは、多くの機能から成り立っています。openFrameworksは、自前のIDEから構成されてはいないという違いがあります。技術的には、openFrameworksのプロジェクトを生成するのにどのようなIDEも使用できます。コンパイラと結びつける作業は難解です。IDEの中で様々な複雑さをもったプロジェクトを設定するプロセスは、難解で退屈です。openFrameworksの優れた点は、3つのプラットフォームでの、いくつかのIDEでのスタートポイントを提供しているところです。3つのメジャーなプラットフォームで3種類のIDEのプロジェクトテンプレートが作成済みです。ダウンロードさえすればコーディングが開始できるのです。openFramewroksでの開発を始めるにあたり、OSごとにIDEをダウンロードしてインストールする必要があるでしょう。インストールのガイドは下記を参照してください。2010設定ガイドMacXCode設定ガイドLinuxcodeblocksとmakefileoFで何ができるの?このセクションで紹介するプロジェクトは、openFrameworksで作成されたプロジェクトの種類の拡がりを描き出すことを目的としています。Watsonによるインタラクティブなインスタレーションで、前方の壁にプロジェクションされた生き物のパペット(操り人形)を、子供達が腕をつかって操作することが可能です。二重のインタラクティブな仕掛けにより、子供達がパペットと一緒に演じることも可能で、「観客」とパペットとの境界線をぼかし、空間内の子供達とパペットを操作する子供達との間に尽きることのない楽しい対話を生み出します。UDデイトン大学のアドミッションセンターの36フィートの壁が、将来の学生と大学の学生生活を紹介するビデオとを結びつけます。壁の表示は、壁の前にいる人々の動きに反応して、生成的な表現によって常にパターンを変化させています。立方体のフィールドは、活動による波によって動かされています。観客の存在が立方体を回転させ、学生生活の映像を表示します。壁の前を歩き回ることで、様々な映像の断片を探し出し探索するこごが可能です。観客が一緒に立つと、シルエットが結合してさらに多くの映像が現われます。誰もインタラクションするエリアにいなければ、ダイナミックに変化するグラフィックパターンの上で、文字によるアニメーションが表示されます。詳細な映像記録やデザインと開発の細かな内容は、ケーススタディーを参照してください。McDonaldopenFrameworksの素晴しい点の一つは、C++の様々なライブラリを簡単に取り入れられることです。libraryを、フィリップ・K・ディックの1977年の小説「暗闇のスキャナー」に登場した架空の技術にインスパイアーされて「スクランブル・スーツ」を生みだすために活用しました。これは、記憶することを不可能にすることで、装着している人のアイデンティティーを隠すマントです。openFrameworkを使うのか?openFrameworksだけが、創造的なコーディングのフレームワークというわけではありません。533109d829905cfb24a341497cd9278e9cd3b55a。