openFrameworks
openFrameworks(オープンフレームワークス 略称oF)は、主にクリエイティブをターゲットにしたオープンソースのC++ソフトウェアフレームワーク。
最新版 |
0.11.2
/ 2021年3月24日 |
---|---|
リポジトリ | |
種別 | オープンソースツールキット |
ライセンス | MIT License |
公式サイト |
openframeworks |
MIT ライセンスで配布され、Windows、macOS、Linux、iOS、Android のプラットフォーム[1]で作動する。開発者はザック・リーバーマン(Zach Lieberman)、セオドア・ワトソン(Theodore Watson)、アルトロ・カストロ(Arturo Castro)の三人を中心とする OF コミュニティーのメンバーである[2]。"「創造的なコーディング」のためのC++のオープンソースツールキット"と称されている[3]。
概要
編集openFrameworksの開発プロジェクトは、2004年から2005年に掛けて順次開始された。現在では、音、光、映像、センサー、アクチュエータなど、多様な技術を統合して表現するための基盤として活用されている。openFrameworks自体は、各分野において著名なライブラリ(OpenGL,OpenCV,Socket等)を繋ぐグルーコードの機能のみを提供する。
「コードにまつわる様々な事柄をずっと容易にしてくれるツール」[2]と言われている。よく利用されている様々なライブラリをまとめ、またそのライブラリの使用を簡易化するため独自に開発した内容を備えた、「糊」のような存在のツールキットである。そのため、以下の様々な機能を備えている。
機能 | ライブラリ |
---|---|
グラフィックス | 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 は、様々なライブラリを取り入れるユーザビリティ、そしてそれらのライブラリを簡単に使えるための内容を含むシンプリシティを兼ねていることである[2]。そして、ユーザーが自分で 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 が挙げられる。