OpenFrameworks

openFrameworks（オープンフレームワークス 略称oF）は、主にクリエイティブをターゲットにしたオープンソースのC++ソフトウェアフレームワーク。

MIT ライセンスで配布され、Windows、macOS、Linux、iOS、Android のプラットフォームopenFrameworks ダウンロードで作動する。開発者はザック・リーバーマン（Zach Lieberman）、セオドア・ワトソン（Theodore Watson）、アルトロ・カストロ（Arturo Castro）の三人を中心とする OF コミュニティーのメンバーであるopenFrameworks about。"「創造的なコーディング」のためのC++のオープンソースツールキット"と称されている日本語版オフィシャルウェブサイト。

 概要 
openFrameworksの開発プロジェクトは、2004年から2005年に掛けて順次開始された。現在では、音、光、映像、センサー、アクチュエータなど、多様な技術を統合して表現するための基盤として活用されている。openFrameworks自体は、各分野において著名なライブラリ(OpenGL,OpenCV,Socket等)を繋ぐグルーコードの機能のみを提供する。

「コードにまつわる様々な事柄をずっと容易にしてくれるツール」と言われている。よく利用されている様々なライブラリをまとめ、またそのライブラリの使用を簡易化するため独自に開発した内容を備えた、「糊」のような存在のツールキットである。そのため、以下の様々な機能を備えている。

+ openFrameworks で利用可能なライブラリとその機能 機能  ライブラリ グラフィックス  OpenGL, GLEW, GLUT, libtess2, cairo オーディオの入／出力と分析  rtAudio, PortAudio or FMOD, Kiss FFT フォント  FreeType イメージの読込と保存  FreeImage 動画の再生と取込  QuickTime, videoInput 様々なユーティリティー  Poco

公式ウェブサイトにチュートリアルがある（すべての機能を一通り記述した完全な物とは言えないが）。GitHub での ofSite ディレクトリをフォークすることによってユーザーがチュートリアルを投稿できる。また、公式ウェブサイトにはドキュメンテーションがある（メジャーなアドオンを含む）。公式ウィキもホストされている。

 特徴 
Processingに類似したAPIを持ち、Processing同様に容易にグラフィックが扱えるように配慮されている。また、要求に応じて、独自シェーダの実装も出来るようになっている。しかし、Processingのような独自IDEは提供されず、Visual Studio、Xcode、eclipse等を用いるため開発環境の整備が煩雑であるため、ソフトウェア開発環境に関する本格的な知識が要求される。また、使用言語自体も、コンピュータ寄りの複雑な記述になりやすいC++であるため、コーディング自体に慣れておく必要もある。従って、CG表現を主対象としたメディアアートの制作環境としては初心者から独自シェーダを記述する上級者までカバーするが、プログラミング初心者向けとは言い難い。Processingのような豊富な作例が記載されたAPIリファレンスや実践的なサンプル作品も提供されていないため、Processing上の開発に慣れてからopenFrameworksに移行した方が理解しやすい。

openFrameworks はCGや画像処理の開発を効率化するために、APIが簡略化されている。openFrameworks は、様々なライブラリを取り入れるユーザビリティ、そしてそれらのライブラリを簡単に使えるための内容を含むシンプリシティを兼ねていることである。そして、ユーザーが自分で openFrameworks を拡張するためにアドオンを取り入れる、或いは作ることができることでもある。

 競合するフレームワーク 
競合するフレームワークの事例としては Cinder が挙げられる。広告代理店のThe Barbarian GroupがopenFrameworksの登場に触発されてCinderの開発を開始した。カンヌライオンズの新設部門であるInnovation Lionsの受賞が切っ掛けでCinderはアート業界で大きく注目され始めた。その際に、開発元のThe Barbarian Groupが先発のフレームワークを蔑ろにするようなプレゼンテーションを行ったため物議を醸したことも有名である。CinderはopenFrameworks程の広範な機能は含まないが、CG表現においてはopenFrameworksと機能が同等であるとされる。宣伝の結果か、openFrameworksよりも業務におけるシェアが格段に大きくなった。CinderはWindowsとmacOSに対して提供されており、Linuxに対して提供されないという違いがある。

 構造 
openFrameworks のライブラリには、以下のフォルダが含まれている：
 addons
openFrameworks 自身が備える物以外の機能を追加する「アドオン」が含まれているフォルダ。デフォルトのアドオン以外にも、ユーザーが自分でダウンロード、または自分で書いた物をコピーすることも出来る。
 apps
ユーザーのプロジェクトを入れるフォルダ。
 docs
 examples
openFrameworks の使用例が入っている。「3d」、「video」、「graphics」などと種類別に分けられている。
 export
 libs
 other
 projectGenerator
openFrameworks リンク済みの空プロジェクトを生成し、ユーザーが選択したアドオンを追加するプログラムが入っている。プログラム自身も openFrameworks を使って書かれている。これを使用しない場合、apps フォルダ内の emptyExample をコピーしなくてはならない。
 scripts
openFrameworks をコンパイルするシェルスクリプトが入っている。Visual Studio などを使用する場合は、このフォルダ内のスクリプトを実行しなくてもいい（Visual Studio 内蔵のコンパイラが自動にコンパイルしてくれる）が、Ubuntu などで Code::blocks などの IDE を使用する場合、先にコンパイルをしないとエラーが出る。

 用例 
世界中では色々なクリエイターたちが openFrameworks を使ってプロジェクトを作っている。それらのプロジェクトを掲載するサイトとして有名な例は CAN が挙げられる。

 脚注 

 関連リンク 




 openFrameworks 日本語公式ウェブサイト
 Cinder 英語公式ウェブサイト
 CAN = Creative Application Network 英語公式ウェブサイト

category:3DCGソフトウェア
category:API
category:オープンソースソフトウェア
Category:C++でプログラムされた自由ソフトウェア